From bed938b427a56c6e7b14c9ca61894de4474d5d4f Mon Sep 17 00:00:00 2001 From: ch <1938389+netravnen@users.noreply.github.com> Date: Fri, 7 Aug 2026 08:28:50 +0200 Subject: [PATCH 1/9] docs(root): fix stale CentOS setup step, document disabled edit link A codebase-onboarding pass flagged two minor doc issues: README.md's CentOS setup step predates this repo's move to a venv + uv workflow, and mkdocs.yml's commented-out repo_url ("Edit on GitHub" link) had only a generic comment with no indication of whether it was disabled on purpose. Confirmed via git history that the link was deliberately removed (commit fcb252c2, "Removed the 'Edit on GitHub' link.", 2024-02-05), though that commit itself records no reason -- so this leaves it disabled and documents that provenance instead of guessing at intent either way. Changes: - README.md: CentOS install step used `yum install python-pip`, the Python 2 package name on a package manager CentOS has since moved on from; updated to `dnf install python3 python3-pip` to match the rest of the guide's python3/venv-based setup - mkdocs.yml: replace the one-line "This line adds the Edit on GitHub link" comment above the commented-out repo_url with one that records why it's off (deliberate removal, reason undocumented) so it reads as a known state, not leftover cruft Security: - N/A -- documentation only Testing: - N/A -- text-only changes; no build step to run for README.md, and mkdocs.yml's only functional line (repo_url) is unchanged, still commented out Backwards Compatibility: - N/A -- no behavior change; the Edit on GitHub link remains off, matching current site behavior Co-Authored-By: Claude Sonnet 5 --- README.md | 2 +- mkdocs.yml | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6eff67e7..8760c7eb 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ To work on and change these documents, you'll need git, python, and pip. - CentOS ```sh - sudo yum install python-pip + sudo dnf install python3 python3-pip ``` Fork the repo diff --git a/mkdocs.yml b/mkdocs.yml index 6a91e2eb..b7036dca 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,6 +1,9 @@ site_name: PeeringDB Docs site_url: https://docs.peeringdb.com/ -# This line adds the "Edit on GitHub" link +# Deliberately disabled: uncommenting repo_url adds an "Edit on GitHub" link to every +# page. It was intentionally removed in commit fcb252c2 ("Removed the 'Edit on GitHub' +# link.", 2024-02-05) -- that commit doesn't record a reason, so if you're deciding +# whether to re-enable it, treat it as an open question rather than an oversight. #repo_url: https://github.com/peeringdb/docs theme: name: mkdocs From 08c12c9abc14f774144ea9e728fbc2e0c6f76e72 Mon Sep 17 00:00:00 2001 From: ch <1938389+netravnen@users.noreply.github.com> Date: Fri, 7 Aug 2026 08:29:26 +0200 Subject: [PATCH 2/9] docs(getting-started): add role-picker, de-duplicate boilerplate, number steps The getting-started path was scattered: index.md buried the role-specific HOWTOs under 45 lines of archival material (release notes, tools, presentations, beta server, historical data), the four get-started-*.md guides each repeated an identical 370+ word "About PeeringDB" paragraph, and their setup steps were an unordered list that read more like notes than instructions. This restructures the front door so a new user hits a role picker first and each guide gets straight to numbered steps. Changes: - docs/index.md: move "Getting started" to the second section (after the intro video, before Policies); consolidate Release notes/Tools/Presentations/Open source/Beta/Historical data into a compact "Learn more" bullet list; move the tutorial/workshop list out to presentations.md; trimmed from 123 to 92 lines - docs/howtos.md: add a "New here? Start with your role" intro linking the four get-started guides, and list query_the_api.md alongside search.md - docs/howto/get-started-{operator,exchange,facility,carrier}.md: replace the duplicated "About PeeringDB" boilerplate with a single pointer to index.md; number the setup steps (create account, create org, create the role-specific object, follow-up step); standardize the "Why should I add my network?" heading to "Why?" to match the other three guides; add the missing "More information" section to get-started-carrier.md so all four guides match - docs/presentations.md: add "Tutorials and workshops" section at top with the 7 entries moved from index.md Security: - N/A -- documentation only Testing: - mkdocs build --strict passes with 0 warnings; internal links between index.md, howtos.md, and the four get-started guides verified to resolve Backwards Compatibility: - N/A -- no URLs or anchors removed; index.md's #mailing-lists anchor (linked from 60+ blog posts) is unchanged Co-Authored-By: Claude Sonnet 5 --- docs/howto/get-started-carrier.md | 18 +++++---- docs/howto/get-started-exchange.md | 15 ++++--- docs/howto/get-started-facility.md | 16 ++++---- docs/howto/get-started-operator.md | 17 ++++---- docs/howtos.md | 12 +++--- docs/index.md | 64 +++++++++--------------------- docs/presentations.md | 12 ++++++ 7 files changed, 70 insertions(+), 84 deletions(-) diff --git a/docs/howto/get-started-carrier.md b/docs/howto/get-started-carrier.md index a4ee5d3f..9b64dbe6 100644 --- a/docs/howto/get-started-carrier.md +++ b/docs/howto/get-started-carrier.md @@ -1,10 +1,6 @@ # HOWTO: Get Started with PeeringDB as a Carrier Operator -## About PeeringDB - -PeeringDB, as the name suggests, was set up to facilitate peering between networks and peering coordinators. In recent years, the vision of PeeringDB has developed to keep up with the speed and diverse manner in which the Internet is growing. The database is no longer just for peering and peering related information. It now includes all types of interconnection data for networks, clouds, services, and enterprise, as well as interconnection facilities that are developing at the edge of the Internet. - -We believe in, and rely on the community to grow and improve the PeeringDB database. The volunteers who run the database are passionate about security, privacy, integrity, and validation of the data in the database. Even though PeeringDB is a freely available and public tool, users strictly adhere to the acceptable use policy, which prevents the database from being used for commercial purposes and discourages unsolicited communications. This is largely policed by the community and has been very effective since PeeringDB was launched. +New to PeeringDB? See [About PeeringDB](../index.md) for background on what it is and who runs it. ## Why? @@ -36,7 +32,9 @@ You can look at the information shared by other PeeringDB users to work out what ## Database records to create -### User +Follow these steps in order — each object depends on the one before it. + +### 1. Create a user account The `org` is the parent for the carrier but you will need to start the process by creating a user account. @@ -46,7 +44,7 @@ You can associate more than one address with your account when you've created it If you use a role account for a PeeringDB user you should update the password when people who had access to the role account leave your organization. If you use a ticketing system, please make sure it does not auto-respond in a way that generates a slew of new tickets. -### Org +### 2. Create your org The `org` object is your organization’s core record in PeeringDB. All it needs is an organization name but you can add extra value by including information about where your organization is located. You could specify as little as a country name or as much as a full postal address. @@ -54,7 +52,7 @@ Your `org` object will be assigned a numeric identifier, called its `id`. This i ![Excellent Example Org Object](images/excellent-example-org.png) -### Carrier +### 3. Create your carrier Once you have created your organization you may add the `carrier` object. You do this by using the Add Carrier tab in the “Manage” menu below your organization. @@ -68,6 +66,10 @@ You then click the edit button in the top right of the `carrier` screen and indi This short document describes the first steps for getting set up in PeeringDB. Once you have established your presence you should consider sharing information that would be helpful to potential new participants. +## More information + +The [PeeringDB Data Ownership Policy](https://docs.peeringdb.com/gov/misc/2020-04-06_PeeringDB_Data_Ownership_Policy_Document_v1.0.pdf) describes all the objects in PeeringDB. + ## Improving this HOWTO Please let us know how we could improve this article. Send a mail to the [Outreach Committee](mailto:outreachcom@lists.peeringdb.com). \ No newline at end of file diff --git a/docs/howto/get-started-exchange.md b/docs/howto/get-started-exchange.md index a2ddb939..af86e730 100644 --- a/docs/howto/get-started-exchange.md +++ b/docs/howto/get-started-exchange.md @@ -1,9 +1,6 @@ # HOWTO: Get Started with PeeringDB as an Exchange Operator -## About PeeringDB -PeeringDB, as the name suggests, was set up to facilitate peering between networks and peering coordinators. In recent years, the vision of PeeringDB has developed to keep up with the speed and diverse manner in which the Internet is growing. The database is no longer just for peering and peering related information. It now includes all types of interconnection data for networks, clouds, services, and enterprise, as well as interconnection facilities that are developing at the edge of the Internet. - -We believe in, and rely on the community to grow and improve the PeeringDB database. The volunteers who run the database are passionate about security, privacy, integrity, and validation of the data in the database. Even though PeeringDB is a freely available and public tool, users strictly adhere to the acceptable use policy, which prevents the database from being used for commercial purposes and discourages unsolicited communications. This is largely policed by the community and has been very effective since PeeringDB was launched. +New to PeeringDB? See [About PeeringDB](../index.md) for background on what it is and who runs it. ## Why? PeeringDB is the interconnection database. Registering information about your exchange in PeeringDB makes it visible to network operators who want to peer with others across your fabric. @@ -41,7 +38,9 @@ Software for IXPs will generate this file for you but when you have just a few p ## Database records to create -### User +Follow these steps in order — each object depends on the one before it. + +### 1. Create a user account The `org` is the parent for the IX but you will need to start the process by creating a user account. Once created, you will login using your username, password, and second factor. @@ -50,17 +49,17 @@ You can associate more than one address with your account when you've created it If you use a role account for a PeeringDB user you should update the password when people who had access to the role account leave your organization. If you use a ticketing system, please make sure it does not auto-respond in a way that generates a slew of new tickets. -### Org +### 2. Create your org The `org` object is your organization’s core record in PeeringDB. All it needs is an organization name but you can add extra value by including information about where your organization is located. You could specify as little as a country name or as much as a full postal address. Your `org` object will be assigned a numeric identifier, called its id. This is what will be referenced by any child net objects. ![Example Organization Form](images/example-organization-form.png) -### Ix +### 3. Create your ix Once you have created your organization you may add the `ix` object. You do this by using the Add Exchange tab in the “Manage” menu below your organization. You’ll be able to input either your IPv4 or IPv6 LAN prefix through this form and will then need to add the other by editing the object once it is created. -### Prefixes +### 4. Add prefixes An IPv4 or IPv6 prefix is needed to register your IX. Once your IX is approved, please also provide the other prefix. For the IPv6 prefix a /64 mask is highly recommended. Please talk to [support](mailto:support@peeringdb.com) if you would like to use another mask. The prefix information is used to verify connections from your participants. ![Add an IPv4 Prefix](images/prefixes-add-ipv4.png) diff --git a/docs/howto/get-started-facility.md b/docs/howto/get-started-facility.md index 8a595856..1e534f9d 100644 --- a/docs/howto/get-started-facility.md +++ b/docs/howto/get-started-facility.md @@ -1,9 +1,6 @@ # HOWTO: Get Started with PeeringDB as a Facility or Campus Operator -## About PeeringDB -PeeringDB, as the name suggests, was set up to facilitate peering between networks and peering coordinators. In recent years, the vision of PeeringDB has developed to keep up with the speed and diverse manner in which the Internet is growing. The database is no longer just for peering and peering related information. It now includes all types of interconnection data for networks, clouds, services, and enterprise, as well as interconnection facilities that are developing at the edge of the Internet. - -We believe in, and rely on the community to grow and improve the PeeringDB database. The volunteers who run the database are passionate about security, privacy, integrity, and validation of the data in the database. Even though PeeringDB is a freely available and public tool, users strictly adhere to the acceptable use policy, which prevents the database from being used for commercial purposes and discourages unsolicited communications. This is largely policed by the community and has been very effective since PeeringDB was launched. +New to PeeringDB? See [About PeeringDB](../index.md) for background on what it is and who runs it. ## Why? PeeringDB is the interconnection database. Registering information about your facility in PeeringDB makes it visible to network operators who want to connect to exchanges or other networks in your facility. @@ -35,7 +32,10 @@ This information is not required but is useful: You can look at the information shared by other facility managers to work out what your organization should be sharing. ## Database records to create -### User + +Follow these steps in order — each object depends on the one before it. + +### 1. Create a user account The `org` is the parent for the facility but you will need to start the process by creating a user account. Once created, you will login using your username, password, and second factor. @@ -44,19 +44,19 @@ You can associate more than one address with your account when you've created it If you use a role account for a PeeringDB user you should update the password when people who had access to the role account leave your organization. If you use a ticketing system, please make sure it does not auto-respond in a way that generates a slew of new tickets. -### Org +### 2. Create your org The `org` object is your organization’s core record in PeeringDB. All it needs is an organization name but you can add extra value by including information about where your organization is located. You could specify as little as a country name or as much as a full postal address. Your `org` object will be assigned a numeric identifier, called its `id`. This is what will be referenced by any child facility object. ![Excellent Example Org Object](images/excellent-example-org.png) -### Facility +### 3. Create your facility Once you have created your organization you may add the `facility` object. You do this by using the Add Facility tab in the “Manage” menu below your organization. ![Excellent Example Facility Object](images/excellent-example-fac.png) -### Campus +### 4. (Optional) Create a campus A `campus` is two or more facilities owned by the same organization where customers can get inter-facility cross-connects. When you have two facilities you can create a `campus` using the Add Campus tab in the “Manage” menu below your organization. diff --git a/docs/howto/get-started-operator.md b/docs/howto/get-started-operator.md index a9bea710..67f77970 100644 --- a/docs/howto/get-started-operator.md +++ b/docs/howto/get-started-operator.md @@ -1,11 +1,8 @@ # HOWTO: Get Started with PeeringDB as a Network Operator -## About PeeringDB -PeeringDB, as the name suggests, was set up to facilitate peering between networks and peering coordinators. In recent years, the vision of PeeringDB has developed to keep up with the speed and diverse manner in which the Internet is growing. The database is no longer just for peering and peering related information. It now includes all types of interconnection data for networks, clouds, services, and enterprise, as well as interconnection facilities that are developing at the edge of the Internet. +New to PeeringDB? See [About PeeringDB](../index.md) for background on what it is and who runs it. -We believe in, and rely on the community to grow and improve the PeeringDB database. The volunteers who run the database are passionate about security, privacy, integrity, and validation of the data in the database. Even though PeeringDB is a freely available and public tool, users strictly adhere to the acceptable use policy, which prevents the database from being used for commercial purposes and discourages unsolicited communications. This is largely policed by the community and has been very effective since PeeringDB was launched. - -## Why should I add my network? +## Why? Almost half of Autonomous System Numbers (ASNs) register their interconnection data in the PeeringDB database. That means, by using PeeringDB and adding your own interconnection data, you’ll be able to confidently find information about networks looking to interconnect, where and how to connect with them, and they’ll be able to find the same information about your network. Since the database is user-maintained and validated by our volunteers, you can trust that the information is accurate and up-to-date. This data will help you to accelerate the process of finding and connecting with other networks while supporting a faster and more decisive deployment of your own network expansion and development plans. @@ -37,9 +34,9 @@ This information is not required but is useful: Some networks share additional information. You can look at the information shared by your peers and potential peers to work out what your network should be sharing. ## Database records to create -Some objects have a notes field to share additional information. You can use [Markdown](https://daringfireball.net/projects/markdown/) formatting for the notes to make them more readable. +Some objects have a notes field to share additional information. You can use [Markdown](https://daringfireball.net/projects/markdown/) formatting for the notes to make them more readable. Follow these steps in order — each object depends on the one before it. -### User +### 1. Create a user account The `org` is the parent for the network but you will need to start the process by creating a user account. We recommend that you use an e-mail address that exists in the publicly available contact information for the network’s ASN so that we can automatically validate your affiliation with the network. Once created, you will login using your username, password, and second factor. @@ -48,19 +45,19 @@ You can associate more than one address with your account when you've created it If you use a role account for a PeeringDB user you should update the password when people who had access to the role account leave your organization. If you use a ticketing system, please make sure it does not auto-respond in a way that generates a slew of new tickets. -### Org +### 2. Create your org The `org` object is your organization’s core record in PeeringDB. All it needs is an organization name but you can add extra value by including information about where your organization is located. You could specify as little as a country name or as much as a full postal address. Your `org` object will be assigned a numeric identifier, called its `id`. This is what will be referenced by any child net objects. -### Net +### 3. Create your net Basic network information is automatically retrieved from the RIR or NIR’s database based on the AS Number. Brand names or other identifiers can be listed in the `aka` field. For example: `name: Example Org Legal Entity` `aka: Example Superfast Networks, Example Reliable Hosting` -### Permissions to grant +### 4. Set up contacts and permissions Once you are up and running you can create POC (Point of Contact) objects for functional contacts with your network. Not all networks need all POCs. These are: * Abuse diff --git a/docs/howtos.md b/docs/howtos.md index 02b0db2f..ead2f0ec 100644 --- a/docs/howtos.md +++ b/docs/howtos.md @@ -2,11 +2,12 @@ HOWTOs provide a beginner detailed instructions on how to get started using PeeringDB. -## Create entries -- [Get Started with PeeringDB as a Carrier Operator](howto/get-started-carrier.md) -- [Get Started with PeeringDB as a Exchange Operator](howto/get-started-exchange.md) -- [Get Started with PeeringDB as a Facility or Campus Operator](howto/get-started-facility.md) -- [Get Started with PeeringDB as a Network Operator](howto/get-started-operator.md) +## New here? Start with your role + +- [Network Operator](howto/get-started-operator.md) +- [Exchange Operator](howto/get-started-exchange.md) +- [Facility or Campus Operator](howto/get-started-facility.md) +- [Carrier Operator](howto/get-started-carrier.md) ## Manage entries - [Reclaim a Network](howto/reclaim_network.md) @@ -17,6 +18,7 @@ HOWTOs provide a beginner detailed instructions on how to get started using Peer ## Search - [Get Started with Search in PeeringDB](howto/search.md) +- [Query the PeeringDB API](howto/query_the_api.md) - [Work Within PeeringDB’s Query Limits](howto/work_within_peeringdbs_query_limits.md) - [v2 Search](howto/v2_search.md) diff --git a/docs/index.md b/docs/index.md index 3bf96aaa..debdec8e 100644 --- a/docs/index.md +++ b/docs/index.md @@ -4,17 +4,22 @@ +## Getting started + +New to PeeringDB? [Register an account](https://www.peeringdb.com/register), then follow the HOWTO for your role: + +* [Network Operator](howto/get-started-operator.md) +* [Exchange Operator](howto/get-started-exchange.md) +* [Facility or Campus Operator](howto/get-started-facility.md) +* [Carrier Operator](howto/get-started-carrier.md) + +See all [HOWTOs](howtos.md) for more guides, our [glossary](glossary.md) of PeeringDB terms, and [guides in other languages](#guides-in-other-languages) below. + ## Policies * By using this service, you agree to adhere to PeeringDB's [Acceptable Use Policy](https://www.peeringdb.com/aup). * The [Admin Committee Guidelines and Criteria for Approving Networks, IXPs, and Facilities](committee/admin/approval-guidelines/) documents PeeringDB’s registration approval process. -## Getting started - -* Several short [HOWTOs](/howtos) provide a beginner detailed instructions on how to get started using PeeringDB. -* Create an account and [register](https://www.peeringdb.com/register) in PeeringDB. -* We also have a [glossary](glossary.md) of PeeringDB terms. - ## Getting help * Please log bugs and feature requests at [GitHub](https://github.com/peeringdb/peeringdb/issues). @@ -55,11 +60,7 @@ List all via API by taking the `id` off: Local database replication is accomplished with this [command line tool](https://github.com/peeringdb/peeringdb-py), please see the [documentation](http://peeringdb.github.io/peeringdb-py/cli/#sync) for more information. -## Release notes and schedule - -The [release notes and schedule](release_notes/index.md) page lists upcoming releases, and the GitHub issues and a summary of what has changed in PeeringDB software releases. - -## Guides +## Guides in other languages - [en] [PeeringDB information registration guide and facility presence for NNI's](guide/IX.br - Guide for registering information in PeeringDB-English-Version - 2023.pdf) - Julimar Lunguinho Mendes - [es] [Guía corta para uso de peeringdb.com](guide/guia_PeeringDB.pdf) - Fabián Mejía @@ -67,41 +68,14 @@ The [release notes and schedule](release_notes/index.md) page lists upcoming rel - [pt-BR] [Guia de cadastro de Carrier no PeeringDB](guide/IX.br - Guia de cadastro de Carrier no PeeringDB-Versao-Portugues - 2025.pdf) - Julimar Lunguinho Mendes - [pt-BR] [Guia de cadastro de informações no PeeringDB e presença em facility para NNI's](guide/IX.br - Guia de cadastro de informacoes no PeeringDB-Versao-Portugues - 2023.pdf) - Julimar Lunguinho Mendes -## Tools - -The [tools](tools.md) page features tools developed by PeeringDB users. - -## Tutorials and workshops - -High-level [HOWTOs](howtos.md) provide a beginner detailed instructions on how to get started using PeeringDB. - -- [PDB 101 in 20 Minutes](presentation/20241105_PeeringAsia6_Arnold_Nipper.pdf) at [Peering Asia 6.0](https://6.peeringasia.org/agenda/tutorial) - November 5, 2024 - Arnold Nipper -- [PeeringDB Tutorial, learning the GUI and the API](presentation/20220225-Apricot-1-2-GUI-API-with-exercises.pdf) at [APRICOT 2022](https://2022.apricot.net/program/schedule-tutorial/#/day/5/introduction-to-peeringdb-a-tutorial-part-1) - February 25, 2022 - Arnold Nipper -- [The How-to Guide](presentation/20210506-Teraco_Tech_Day.pdf) at [Teraco Virtual Tech Day with PeeringDB](https://www.teraco.co.za/events/virtual-tech-days/?fbclid=IwAR310Y84fDzXnZOcfXWxnogcgkDTrWaTwfM4u0U8c5wkFPd5ihNaHuNWjzk) - May 6, 2021 - Ben Ryall -- [PeeringDB Tutorial, learning the GUI and the API](presentation/20200220-1-2-GUI-API-APRICOT2020-Arnold-Nipper.pdf) at [APRICOT 2020](https://2020.apricot.net/program/schedule/#/day/9), Melbourne, AU - February 20, 2020 - Arnold Nipper -- [How is PeeringDB organised?](presentation/20191110-1-GUI-DENOG11-Arnold-Nipper.pdf) and [The PeeringDB API](presentation/20191110-2-API-DENOG11-Arnold-Nipper.pdf) at [DENOG11](https://www.denog.de/de/meetings/denog11/workshops.html), Hamburg, DE - November 10, 2019 - Arnold Nipper -- [PeeringDB Workshop](presentation/20190820_PeeringDB_Workshop_1-2_AfPIF_2019.pdf) at [AfPIF-10](https://www.afpif.org/afpif-10/), Balaclava, MV - August 20, 2019 - Arnold Nipper ([video](https://livestream.com/internetsociety/afpif2019/videos/195303661) starts at 14:00) -- [Part 1: Intro](presentation/20190227-peeringdb-workshop-1-intro.pdf), [Part 2: Main](presentation/20190227-peeringdb-workshop-2-main.pdf), [Part 3: API](presentation/20190227-peeringdb-workshop-3-api.pdf) at [APRICOT 2019](https://2019.apricot.net/program/schedule/#/day/10/peeringdb-tutorial), Daejeon, KR - February 27, 2018 - Arnold Nipper ([video](https://www.youtube.com/watch?v=cygDlOqs9tI)) - -## Presentations - -The [presentations](presentations.md) page has a complete list of PeeringDB presentations that were given at events around the world. - -## Open source - -#### Source code audit - -PeeringDB commissioned a full audit of PeeringDB's source code in 2018. [Computest](https://www.computest.nl/) (the auditor) prepared a __Third Party Memo__, this memo provides a high level overview of the outcome of the source code audit. The report is available [here](gov/misc/2018-05-16_Computest_Source_Code_Audit_TPM.pdf). - -## Beta development - -* The [PeeringDB beta server](https://beta.peeringdb.com/) runs the latest beta software version, with full access over HTTP and the API. Note that changes made to the beta database are local to the beta server only, and are not reflected on the production servers. - -* The [latest changes to PeeringDB](https://beta.peeringdb.com/changes) automagically redirects to the list of issues on PeeringDB's GitHub repository that document all of the changes in the current beta version. - -## Historical data +## Learn more -* MySQL dumps from July, 29 2010 to March 14, 2016 are archived by CAIDA at . +* [Release notes and schedule](release_notes/index.md) — upcoming releases, and a summary of what has changed in PeeringDB software releases. +* [Tools](tools.md) — tools developed by PeeringDB users. +* [Presentations](presentations.md) — tutorials, workshops, and presentations given at events around the world. +* [Beta server](https://beta.peeringdb.com/) — runs the latest beta software, with full access over HTTP and the API. Changes made there are local to the beta server only. The [latest changes](https://beta.peeringdb.com/changes) redirects to the GitHub issues documenting them. +* [Source code audit](gov/misc/2018-05-16_Computest_Source_Code_Audit_TPM.pdf) — a Third Party Memo from a full audit of PeeringDB's source code, commissioned in 2018. +* Historical data — MySQL dumps from July 29, 2010 to March 14, 2016 are archived by CAIDA at . ## How you can help diff --git a/docs/presentations.md b/docs/presentations.md index 9b3885d4..9e69e20a 100644 --- a/docs/presentations.md +++ b/docs/presentations.md @@ -1,5 +1,17 @@ # Presentations +## Tutorials and workshops + +Hands-on tutorial and workshop materials, as opposed to the conference update talks listed below. + +- [PDB 101 in 20 Minutes](presentation/20241105_PeeringAsia6_Arnold_Nipper.pdf) at [Peering Asia 6.0](https://6.peeringasia.org/agenda/tutorial) - November 5, 2024 - Arnold Nipper +- [PeeringDB Tutorial, learning the GUI and the API](presentation/20220225-Apricot-1-2-GUI-API-with-exercises.pdf) at [APRICOT 2022](https://2022.apricot.net/program/schedule-tutorial/#/day/5/introduction-to-peeringdb-a-tutorial-part-1) - February 25, 2022 - Arnold Nipper +- [The How-to Guide](presentation/20210506-Teraco_Tech_Day.pdf) at [Teraco Virtual Tech Day with PeeringDB](https://www.teraco.co.za/events/virtual-tech-days/?fbclid=IwAR310Y84fDzXnZOcfXWxnogcgkDTrWaTwfM4u0U8c5wkFPd5ihNaHuNWjzk) - May 6, 2021 - Ben Ryall +- [PeeringDB Tutorial, learning the GUI and the API](presentation/20200220-1-2-GUI-API-APRICOT2020-Arnold-Nipper.pdf) at [APRICOT 2020](https://2020.apricot.net/program/schedule/#/day/9), Melbourne, AU - February 20, 2020 - Arnold Nipper +- [How is PeeringDB organised?](presentation/20191110-1-GUI-DENOG11-Arnold-Nipper.pdf) and [The PeeringDB API](presentation/20191110-2-API-DENOG11-Arnold-Nipper.pdf) at [DENOG11](https://www.denog.de/de/meetings/denog11/workshops.html), Hamburg, DE - November 10, 2019 - Arnold Nipper +- [PeeringDB Workshop](presentation/20190820_PeeringDB_Workshop_1-2_AfPIF_2019.pdf) at [AfPIF-10](https://www.afpif.org/afpif-10/), Balaclava, MV - August 20, 2019 - Arnold Nipper ([video](https://livestream.com/internetsociety/afpif2019/videos/195303661) starts at 14:00) +- [Part 1: Intro](presentation/20190227-peeringdb-workshop-1-intro.pdf), [Part 2: Main](presentation/20190227-peeringdb-workshop-2-main.pdf), [Part 3: API](presentation/20190227-peeringdb-workshop-3-api.pdf) at [APRICOT 2019](https://2019.apricot.net/program/schedule/#/day/10/peeringdb-tutorial), Daejeon, KR - February 27, 2018 - Arnold Nipper ([video](https://www.youtube.com/watch?v=cygDlOqs9tI)) + ## 2026 - [PeeringDB Updates (YoY) & Engaging with the Product Committee](presentation/20260421_ITNOG10_Morina_Livio.pdf) at [ITNOG10](https://www.itnog.it/itnog10/), Bologna, IT - April 21, 2025 - Livio Morina From 05527b6390c1e3d79079288120c3fd899121ea30 Mon Sep 17 00:00:00 2001 From: ch <1938389+netravnen@users.noreply.github.com> Date: Fri, 7 Aug 2026 08:30:05 +0200 Subject: [PATCH 3/9] docs(howto): split API reference out of search.md, expand MFA guide search.md had grown to 355 lines serving two audiences at once: a beginner walkthrough of UI/browser-extension search, and a full API reference (object types, authentication, curl/Python/jq examples). Separately, authenticate.md's MFA section was four sentences with three screenshots sitting unused in the images directory, leaving users to figure out setup and org-level enforcement on their own. Changes: - docs/howto/query_the_api.md: new file (175 lines) with the API reference content moved from search.md -- object types (basic/derived), API key authentication, making requests, GET operations on single/multiple objects, nested sets/objects, and real-world query examples using curl, Python, and jq - docs/howto/search.md: trimmed from 355 to 189 lines, now focused on UI/extension search; replaced the removed content with a pointer to query_the_api.md - docs/howto/authenticate.md: expanded the MFA section into a full walkthrough with two new subsections ("Setting up your second factor", "Requiring MFA for your organization"), wiring in the three previously orphaned screenshots (Location_of_MFA_button.png, MFA_management.png, require_users_to_enable_2fa.png) with captions - docs/howto/work_within_peeringdbs_query_limits.md, docs/release_notes/release_notes_2023.md: update cross-references from /howto/search to /howto/query_the_api/ to match the split Security: - N/A -- documentation only Testing: - mkdocs build --strict passes with 0 warnings; verified query_the_api.md anchors referenced by other pages resolve Backwards Compatibility: - search.md's URL is unchanged; only its content and length changed, so existing external links to /howto/search/ still resolve, just to a narrower page Co-Authored-By: Claude Sonnet 5 --- docs/howto/authenticate.md | 20 +- docs/howto/query_the_api.md | 175 ++++++++++++++++++ docs/howto/search.md | 170 +---------------- .../work_within_peeringdbs_query_limits.md | 2 +- docs/release_notes/release_notes_2023.md | 2 +- 5 files changed, 196 insertions(+), 173 deletions(-) create mode 100644 docs/howto/query_the_api.md diff --git a/docs/howto/authenticate.md b/docs/howto/authenticate.md index 1d3a5953..c3fc3bc7 100644 --- a/docs/howto/authenticate.md +++ b/docs/howto/authenticate.md @@ -34,17 +34,31 @@ We recommend using a randomly generated password or passphrase. ## Multi-factor authentication (MFA) +MFA is mandatory: you must have a second factor configured to log in to PeeringDB. + We support three MFA methods. You can use: * A time-based one-time password, as defined in [RFC 6238](https://www.rfc-editor.org/rfc/rfc6238.html) * A [FIDO U2F](https://fidoalliance.org/specs/fido-u2f-v1.2-ps-20170411/) hardware token * A [Passkey](https://www.passkeycentral.org/introduction-to-passkeys/how-passkeys-work) -You can choose to have more than one second factor configured. +You can choose to have more than one second factor configured. + +### Setting up your second factor + +Go to your [profile](https://www.peeringdb.com/profile) and click "Manage Multi-factor Authentication" under Account Security. + +![Location of the Manage Multi-factor Authentication button on the profile page](images/Location_of_MFA_button.png) + +From there you can set up a TOTP app, register U2F hardware tokens or Passkeys, and manage the factors you've already configured. You can also download and securely store backup codes, in case a second factor is destroyed. + +![Multi-factor Authentication Management screen showing TOTP, backup tokens, and registered security keys](images/MFA_management.png) + +### Requiring MFA for your organization -You can also download and securely store backup codes, in case a second factor is destroyed. +Organization admins can require everyone affiliated with their organization to enable 2FA. This option is on the Users tab of your organization's Manage page. -You can configure these in your account profile. +![Require users in your organization to enable 2FA checkbox on the organization Users tab](images/require_users_to_enable_2fa.png) ## Account recovery diff --git a/docs/howto/query_the_api.md b/docs/howto/query_the_api.md new file mode 100644 index 00000000..20014131 --- /dev/null +++ b/docs/howto/query_the_api.md @@ -0,0 +1,175 @@ +# HOWTO: Query the PeeringDB API + +New to PeeringDB? See [Get Started with Search](search.md) for searching via the website first, or [About PeeringDB](../index.md) for background. + +## Querying with the PeeringDB API + +Throughout [our search guide](search.md), we've been talking about how to use PeeringDB to find information about potential peers, and then after peering has been arranged, using PeeringDB to obtain the peering details. The PeeringDB website is very helpful in these regards, but using the website still requires a lot of manual work. It’s also possible to use the PeeringDB API to automate some parts of this. Why use the PeeringDB API? The PeeringDB API makes it easy to integrate PeeringDB in your environment. + +The PeeringDB database can be queried using a REST API. REST allows a client to request information from a server over HTTP or HTTPS. The server then returns the requested information in JSON format. + +## Object types + +Each object has an associated shorthand tag you can use. Object types are not case sensitive and the output is an array. +For example: [https://www.peeringdb.com/api/OBJ](https://www.peeringdb.com/api/OBJ). The endpoint is: `/api/OBJ`. + +Below are the categories of objects types (OBJ) in PeeringDB: +- **Basic Objects**: org, fac, ix, net, poc +- **Derived Objects**: ixlan, ixpfx, netixlan, netfac + +### Basic objects + +Below is a description of what each of the object types mean and what information they return + +- **org**: Root object for fac, ix, net, this holds information about an organization. +- **fac**: Describes a facility / colocation record, more useful information are in derived records netfac. +- **ix**: Describes an exchange, more useful information are in derived records ixlan, ixpfx and netixlan. +- **net**: Describes a network / ASN, more useful information are in netfac and netixlan. +- **poc**: Describes various role accounts (point of contact), this is currently only for net objects. +- **as_set**: Array of all AS-SETs corresponding to a network / ASN, this was introduced recently. + +### Derived objects + +Below is a description of what each of the object types mean and what information they return. + +- **Ixlan**: Describes the LAN of an ix, one ix may have multiple ixlan. This feature may go away in PeeringDB 3.0. +- **ixpfx**: Describes the IP range (IPv4 and IPv6) for an ixlan, one ixlan may have multiple ixpfx. +- **netixlan**: Describes the presence of a network at an exchange. +- **netfac**: Describes the presence of a network at a facility. + +## Authentication + +Authentication is uses [API Keys](/howto/api_keys/). + +People who are accessing the API as a guest do not need any authentication. For example: + +`curl -sG https://www.peeringdb.com/api/net/961` + +**Note**: Access to contact information may be restricted if you are using the API as a guest without authentication. API usage is subject to [query limits](/howto/work_within_peeringdbs_query_limits/) and these are set at a lower threshold for unauthenticated users. + +## Making a request + +When making a request, the URL base is added with `/api/`, followed by the object type and, if applicable, the object primary key (if applicable). For example:`https://www.peeringdb.com/api/OBJ/id`. + +If you want to select the output format, either use the Accept: HTTP header or use the extension type parameter: +- Accept Header: `Accept: application/json` +- Extension type:`https://www.peeringdb.com/api/network/42.json` + +## Operations + +Using the GET operation you can retrieve information from the PeeringDB database. You can retrieve both a single object and multiple objects in an array. Let’s look at each of them individually. + +### Single object + +To retrieve a single object you need to use this URL:`https://www.peeringdb.com/api/OBJ/ID` with this endpoint GET: `/api/OBJ/id`. The ID is a unique identifier and should be added to the URL when retrieving a single object. Let’s look at an example: +- HTTP:`GET /api/OBJ/38` where 38 is the ID +- curl: `curl -H "Accept: application/json" -X GET https://:@www.peeringdb.com/api/OBJ/38` + +There are optional parameters you can add to your URL: +- **str**: which retrieves a comma separated list of field names - only matching fields will be returned in the data +- **int**: which retrieves two nested sets and objects + +### Nested sets and objects + +A nested set or object is any field ending in the suffix: set. For example: net_set will hold network objects. The naming schema of the field will always tell you which type of object the set is holding and will correspond with the object's endpoint on the API `_set`. So a set called `net_set` will hold network objects (API endpoint /net). + +**Note**: unlike GET multiple, `depth` here will also expand single relationships in addition to sets. So `net_id` would get expanded into a network object. + +**Unexpanded** +``` +{ + ... + "net_id" : 1 +} +``` + +**Expanded** +``` +{ + ... + "net_id" : 1 + "net" : { + ... network object ... + } +} +``` + +**Depth** +- 0: don't expand anything (default) +- 1: expand all first level sets to ids +- 2: expand all first level sets to objects + +### Multiple objects + +To retrieve a single object you need to use this URL: `https://www.peeringdb.com/api/OBJ/` with this endpoint GET: `/api/OBJ/`. Let’s look at an example: +- HTTP: `GET /api/OBJ/` which is the endpoint +- curl: `curl -H "Authorization: api-key $YOUR_API_KEY" "https://www.peeringdb.com/api/OBJ""` + +There are optional parameters you can add to your URL: +- **limit**: int limits rows in the result set +- **skip**: int skips n rows in the result set +- **depth**: int nested sets will be loaded (slow) +- **fields**: str comma separated list of field names - only matching fields will be returned in the data +- **since**: int retrieve all objects updated since specified time (unix timestamp, seconds) +- **[field_name]**: int|string queries for fields with matching value + +## Real world use cases + +We will show you different use cases on how to use the PeeringDB API. + +## How do I query by ASN? + +To query for an ASN using the PeeringDB API, you will need to use this URL: GET `https://www.peeringdb.com/api/net?asn=42`, where `asn=42` is the query parameter. + +## How do I query for an IXs in a particular state? + +To query for IXs based in a state (in countries with a state system), you will need to use a URL like this: GET `https://www.peeringdb.com/api/ixfac?fac__state=NSW`, where `fac__state` tells the API to look at the state field in the facility record and `NSW` is the normalized code for the state. In this example, NSW is the Australian state of New South Wales. + +Similarly, `https://www.peeringdb.com/api/ixfac?fac__state=NV` gets IXs in facilities in the US state of Nevada. + +### Using curl + +Use this curl example to get this specific network. Copy and paste the following to your command line interface: `curl GET https://www.peeringdb.com/api/net?asn=42`. + +### Using Python + +To make use of this Python code, first, you’ll have to first install [Python](https://www.python.org/downloads/) if you don’t have it installed. Then, install [pip](https://pip.pypa.io/en/stable/cli/pip_install/) and [requests](https://docs.python-requests.org/en/latest/user/install/). After that create a Python file and copy and paste the following code. + +``` +import requests +r = requests.get('https://www.peeringdb.com/api/net?asn=42') +print(r.text) + +with open('output.csv', 'w+') as f: + f.write(r.text) +``` + +From the above code, we make a request to the API using the request module and print out the response which would be in a JSON format. However, reading a JSON file can be quite hectic and tasking so we convert the JSON file to a CSV file. Our CSV file will open in output.csv. + +### Using jq + +You can use jq to make a request to your API and get your output in a CSV format. First, you need to install [Jq](https://stedolan.github.io/jq/download/). Next, we use this curl command to prepare our JSON file. Change to a directory and copy and paste this code on your terminal: `curl https://www.peeringdb.com/api/net?asn=42 > test.json`. + +This creates a new file named test.json. To convert the JSON input file to the CSV format, copy and paste the following command: `jq -r '(.data[0] | keys_unsorted), (.data[] | to_entries | map(.value))|@csv' test.json` + +### Using an online converter + +Alternatively you can use an online tool such as [https://www.convertcsv.com/json-to-csv.htm](https://www.convertcsv.com/json-to-csv.htm) to convert the raw JSON file to CSV. + +**Note**: For the purpose of this article we will focus on the curl method but you can conveniently try out the other proposed methods. + +## How to get all the objects owned by [https://www.peeringdb.com/net/961](https://www.peeringdb.com/net/961) and convert the data to CSV? + +To get all the objects owned by this https://www.peeringdb.com/net/961 using the PeeringDB API. Copy and paste the following to your command line interface: `curl GET https://www.peeringdb.com/net/961`. + +## I want the list of networks and their 'type' peering at MICE in Minneapolis. + +To get the list of networks and their type peering at Mice in Minneapolis, copy and paste the following command in your terminal: `curl -s -X GET https://www.peeringdb.com/api/net?ix=446&__in=Minneapolis | jq '.data[]`. + +## How to find all the exchanges where my organization has a presence? + +Use this curl example. Copy and paste the following to your command line interface: `curl -s -X GET https://www.peeringdb.com/api/netixlan\?ixlan_id=62 | jq '.data[]'`. + +## Improving this HOWTO + +Please let us know how we could improve this article. Send a mail to the [Outreach Committee](mailto:outreachcom@lists.peeringdb.com). diff --git a/docs/howto/search.md b/docs/howto/search.md index 80f2a628..94d9a9bd 100644 --- a/docs/howto/search.md +++ b/docs/howto/search.md @@ -173,183 +173,17 @@ You can search for facilities within a given radius, using the Advanced Search i -## Querying with the PeeringDB API - -Throughout this article up to this point, we have been talking on how to use PeeringDB to find information about potential peers, and then after peering has been arranged, using PeeringDB to obtain the peering details. The PeeringDB website is very helpful in these regards, but using the website still requires a lot of manual work. It’s also possible to use the PeeringDB API to automate some parts of this. Why use the PeeringDB API? The PeeringDB API makes it easy to integrate PeeringDB in your environment. - -The PeeringDB database can be queried using a REST API. REST allows a client to request information from a server over HTTP or HTTPS. The server then returns the requested information in JSON format. - ## Get an API query from a web query You can put the API query for simple and advanced searches directly into your copy buffer. Just click on the "Copy Query" button. It will present you with a screen that lets you choose that query formatted for `curl`, and a selection of programming languages. -You need to replace the placeholder with your own [API Key](/howto/api_keys/) for advanced queries. You can remove the authorization section anonymous simple queries. Note that anonymous users get a [lower query limit](/work_within_peeringdbs_query_limits/). +You need to replace the placeholder with your own [API Key](/howto/api_keys/) for advanced queries. You can remove the authorization section anonymous simple queries. Note that anonymous users get a [lower query limit](/howto/work_within_peeringdbs_query_limits/). ![Put an API query in your copy buffer](images/copy_API_query.png) ![Advanced Search copy API query](images/advanced_search_copy_api_query.png) -## Object types - -Each object has an associated shorthand tag you can use. Object types are not case sensitive and the output is an array. -For example: [https://www.peeringdb.com/api/OBJ](https://www.peeringdb.com/api/OBJ). The endpoint is: `/api/OBJ`. - -Below are the categories of objects types (OBJ) in PeeringDB: -- **Basic Objects**: org, fac, ix, net, poc -- **Derived Objects**: ixlan, ixpfx, netixlan, netfac - -### Basic objects - -Below is a description of what each of the object types mean and what information they return - -- **org**: Root object for fac, ix, net, this holds information about an organization. -- **fac**: Describes a facility / colocation record, more useful information are in derived records netfac. -- **ix**: Describes an exchange, more useful information are in derived records ixlan, ixpfx and netixlan. -- **net**: Describes a network / ASN, more useful information are in netfac and netixlan. -- **poc**: Describes various role accounts (point of contact), this is currently only for net objects. -- **as_set**: Array of all AS-SETs corresponding to a network / ASN, this was introduced recently. - -### Derived objects - -Below is a description of what each of the object types mean and what information they return. - -- **Ixlan**: Describes the LAN of an ix, one ix may have multiple ixlan. This feature may go away in PeeringDB 3.0. -- **ixpfx**: Describes the IP range (IPv4 and IPv6) for an ixlan, one ixlan may have multiple ixpfx. -- **netixlan**: Describes the presence of a network at an exchange. -- **netfac**: Describes the presence of a network at a facility. - -## Authentication - -Authentication is uses [API Keys](/howto/api_keys/). - -People who are accessing the API as a guest do not need any authentication. For example: - -`curl -sG https://www.peeringdb.com/api/net/961` - -**Note**: Access to contact information may be restricted if you are using the API as a guest without authentication. API usage is subject to [query limits](/work_within_peeringdbs_query_limits/) and these are set at a lower threshold for unauthenticated users. - -## Making a request - -When making a request, the URL base is added with `/api/`, followed by the object type and, if applicable, the object primary key (if applicable). For example:`https://www.peeringdb.com/api/OBJ/id`. - -If you want to select the output format, either use the Accept: HTTP header or use the extension type parameter: -- Accept Header: `Accept: application/json` -- Extension type:`https://www.peeringdb.com/api/network/42.json` - -## Operations - -Using the GET operation you can retrieve information from the PeeringDB database. You can retrieve both a single object and multiple objects in an array. Let’s look at each of them individually. - -### Single object - -To retrieve a single object you need to use this URL:`https://www.peeringdb.com/api/OBJ/ID` with this endpoint GET: `/api/OBJ/id`. The ID is a unique identifier and should be added to the URL when retrieving a single object. Let’s look at an example: -- HTTP:`GET /api/OBJ/38` where 38 is the ID -- curl: `curl -H "Accept: application/json" -X GET https://:@www.peeringdb.com/api/OBJ/38` - -There are optional parameters you can add to your URL: -- **str**: which retrieves a comma separated list of field names - only matching fields will be returned in the data -- **int**: which retrieves two nested sets and objects - -### Nested sets and objects - -A nested set or object is any field ending in the suffix: set. For example: net_set will hold network objects. The naming schema of the field will always tell you which type of object the set is holding and will correspond with the object's endpoint on the API `_set`. So a set called `net_set` will hold network objects (API endpoint /net). - -**Note**: unlike GET multiple, `depth` here will also expand single relationships in addition to sets. So `net_id` would get expanded into a network object. - -**Unexpanded** -``` -{ - ... - "net_id" : 1 -} -``` - -**Expanded** -``` -{ - ... - "net_id" : 1 - "net" : { - ... network object ... - } -} -``` - -**Depth** -- 0: don't expand anything (default) -- 1: expand all first level sets to ids -- 2: expand all first level sets to objects - -### Multiple objects - -To retrieve a single object you need to use this URL: `https://www.peeringdb.com/api/OBJ/` with this endpoint GET: `/api/OBJ/`. Let’s look at an example: -- HTTP: `GET /api/OBJ/` which is the endpoint -- curl: `curl -H "Authorization: api-key $YOUR_API_KEY" "https://www.peeringdb.com/api/OBJ""` - -There are optional parameters you can add to your URL: -- **limit**: int limits rows in the result set -- **skip**: int skips n rows in the result set -- **depth**: int nested sets will be loaded (slow) -- **fields**: str comma separated list of field names - only matching fields will be returned in the data -- **since**: int retrieve all objects updated since specified time (unix timestamp, seconds) -- **[field_name]**: int|string queries for fields with matching value - -## Real world use cases - -We will show you different use cases on how to use the PeeringDB API. - -## How do I query by ASN? - -To query for an ASN using the PeeringDB API, you will need to use this URL: GET `https://www.peeringdb.com/api/net?asn=42`, where `asn=42` is the query parameter. - -## How do I query for an IXs in a particular state? - -To query for IXs based in a state (in countries with a state system), you will need to use a URL like this: GET `https://www.peeringdb.com/api/ixfac?fac__state=NSW`, where `fac__state` tells the API to look at the state field in the facility record and `NSW` is the normalized code for the state. In this example, NSW is the Australian state of New South Wales. - -Similarly, `https://www.peeringdb.com/api/ixfac?fac__state=NV` gets IXs in facilities in the US state of Nevada. - -### Using curl - -Use this curl example to get this specific network. Copy and paste the following to your command line interface: `curl GET https://www.peeringdb.com/api/net?asn=42`. - -### Using Python - -To make use of this Python code, first, you’ll have to first install [Python](https://www.python.org/downloads/) if you don’t have it installed. Then, install [pip](https://pip.pypa.io/en/stable/cli/pip_install/) and [requests](https://docs.python-requests.org/en/latest/user/install/). After that create a Python file and copy and paste the following code. - -``` -import requests -r = requests.get('https://www.peeringdb.com/api/net?asn=42') -print(r.text) - -with open('output.csv', 'w+') as f: - f.write(r.text) -``` - -From the above code, we make a request to the API using the request module and print out the response which would be in a JSON format. However, reading a JSON file can be quite hectic and tasking so we convert the JSON file to a CSV file. Our CSV file will open in output.csv. - -### Using jq - -You can use jq to make a request to your API and get your output in a CSV format. First, you need to install [Jq](https://stedolan.github.io/jq/download/). Next, we use this curl command to prepare our JSON file. Change to a directory and copy and paste this code on your terminal: `curl https://www.peeringdb.com/api/net?asn=42 > test.json`. - -This creates a new file named test.json. To convert the JSON input file to the CSV format, copy and paste the following command: `jq -r '(.data[0] | keys_unsorted), (.data[] | to_entries | map(.value))|@csv' test.json` - -### Using an online converter - -Alternatively you can use an online tool such as [https://www.convertcsv.com/json-to-csv.htm](https://www.convertcsv.com/json-to-csv.htm) to convert the raw JSON file to CSV. - -**Note**: For the purpose of this article we will focus on the curl method but you can conveniently try out the other proposed methods. - -## How to get all the objects owned by [https://www.peeringdb.com/net/961](https://www.peeringdb.com/net/961) and convert the data to CSV? - -To get all the objects owned by this https://www.peeringdb.com/net/961 using the PeeringDB API. Copy and paste the following to your command line interface: `curl GET https://www.peeringdb.com/net/961`. - -## I want the list of networks and their 'type' peering at MICE in Minneapolis. - -To get the list of networks and their type peering at Mice in Minneapolis, copy and paste the following command in your terminal: `curl -s -X GET https://www.peeringdb.com/api/net?ix=446&__in=Minneapolis | jq '.data[]`. - -## How to find all the exchanges where my organization has a presence? - -Use this curl example. Copy and paste the following to your command line interface: `curl -s -X GET https://www.peeringdb.com/api/netixlan\?ixlan_id=62 | jq '.data[]'`. +For the full API reference — object types, authentication, and command-line examples using curl, Python, and jq — see [Query the PeeringDB API](query_the_api.md). ## Improving this HOWTO diff --git a/docs/howto/work_within_peeringdbs_query_limits.md b/docs/howto/work_within_peeringdbs_query_limits.md index b20bb921..e98ee33d 100644 --- a/docs/howto/work_within_peeringdbs_query_limits.md +++ b/docs/howto/work_within_peeringdbs_query_limits.md @@ -22,7 +22,7 @@ Instead of sending each ASN you want to learn about as a separate query, create `asn__in=$list_of_ASN_separated_by_comma` -We encourage sending lists of up to 150 ASNs in a single query. We have a [HOWTO article](/howto/search) describing the basics of using our API using popular command line tools such as curl, Python, and jq. +We encourage sending lists of up to 150 ASNs in a single query. We have a [HOWTO article](/howto/query_the_api/) describing the basics of using our API using popular command line tools such as curl, Python, and jq. Please use API Keys when automating queries to PeeringDB and set a User-Agent header that identifies the unique software you are using, rather than just a generic query library name. diff --git a/docs/release_notes/release_notes_2023.md b/docs/release_notes/release_notes_2023.md index 62621a21..a0424e14 100644 --- a/docs/release_notes/release_notes_2023.md +++ b/docs/release_notes/release_notes_2023.md @@ -75,7 +75,7 @@ Release Date: 19 July 2023 | **GitHub issue** | **Summary** | | ----------------- | ----------- | -| [#1344 Auto approval of new carrierfac objects](https://github.com/peeringdb/peeringdb/issues/1344) | `carrierfac` objects are now approved automatically, like [`netfac` objects](https://docs.peeringdb.com/howto/search/#querying-with-the-peeringdb-api). | +| [#1344 Auto approval of new carrierfac objects](https://github.com/peeringdb/peeringdb/issues/1344) | `carrierfac` objects are now approved automatically, like [`netfac` objects](https://docs.peeringdb.com/howto/query_the_api/#querying-with-the-peeringdb-api). | | [#1299 Alphabetize simple search results](https://github.com/peeringdb/peeringdb/issues/1299) | Exact match search now go at the top, with other results displayed alphabetically. | | [#997 Allow organizations to require affiliated users to enable 2FA](https://github.com/peeringdb/peeringdb/issues/997) | Organizations can now require their users to turn on MFA. | | [#1370 Facility Geocode not working](https://github.com/peeringdb/peeringdb/issues/1370) | Fixed a bug that meant some `fac`s did not have a geocode. | From b513915d8758a408361544635e84df9d5cd99993 Mon Sep 17 00:00:00 2001 From: ch <1938389+netravnen@users.noreply.github.com> Date: Fri, 7 Aug 2026 08:30:31 +0200 Subject: [PATCH 4/9] docs(links): fix dead links in FAQ and blog posts A link sweep across the docs site found three broken references unrelated to the getting-started or API-split work: an FAQ anchor pointing at a section that no longer exists, and two blog posts linking to HOWTO pages that were renamed or never existed. Changes: - docs/faq.md: "How do I get started?" linked to http://docs.peeringdb.com/#quick-start, an anchor that doesn't exist in index.md; replaced with a link to /howtos/ describing the role-based guides - docs/blog/mfa_mandatory.md: "second factor" linked to /howto/enable_require_2fa/, a page that was never published; redirected to /howto/authenticate/#multi-factor-authentication-mfa - docs/blog/peeringdb_2022_user_survey.md: "HOWTO documentation series" linked to /howto/ (404, missing the plural); fixed to /howtos/ Security: - N/A -- documentation only Testing: - mkdocs build --strict passes with 0 warnings; confirmed /howto/authenticate/#multi-factor-authentication-mfa resolves in the generated HTML Backwards Compatibility: - N/A -- these links were already broken; no working URLs changed Co-Authored-By: Claude Sonnet 5 --- docs/blog/mfa_mandatory.md | 2 +- docs/blog/peeringdb_2022_user_survey.md | 2 +- docs/faq.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/blog/mfa_mandatory.md b/docs/blog/mfa_mandatory.md index 3fa05e9c..4d115f4d 100644 --- a/docs/blog/mfa_mandatory.md +++ b/docs/blog/mfa_mandatory.md @@ -1,7 +1,7 @@ # PeeringDB Will Require MFA and API Keys to Log In *March 13, 2025* -You must have a [second factor](/howto/enable_require_2fa/) to log in to PeeringDB starting on 1 July 2025. If you automate updates using [our API](/api_specs/), you'll need to use an [API Key](/howto/api_keys/). +You must have a [second factor](/howto/authenticate/#multi-factor-authentication-mfa) to log in to PeeringDB starting on 1 July 2025. If you automate updates using [our API](/api_specs/), you'll need to use an [API Key](/howto/api_keys/). But anonymous usage will not be going away. You can query the website or API without authenticating. This change will impact users who make updates or need access to contact information published in PeeringDB. diff --git a/docs/blog/peeringdb_2022_user_survey.md b/docs/blog/peeringdb_2022_user_survey.md index ddb86b3c..75e7d327 100644 --- a/docs/blog/peeringdb_2022_user_survey.md +++ b/docs/blog/peeringdb_2022_user_survey.md @@ -11,7 +11,7 @@ We had about 250 responses to last year’s survey which helped guide our produc * Added FIDO U2F 2FA support to [www.peeringdb.com](https://www.peeringdb.com/) * Normalized place names -We’ve also published more documents in our [HOWTO documentation series](/howto/). +We’ve also published more documents in our [HOWTO documentation series](/howtos/). Steve McManus, PeeringDB Product Committee Chair, says: "*The 2021 survey helped us focus development where it was most needed. We used it to develop our roadmap. We are still implementing things we have learned from previous surveys but want your input on how we should adapt. Please take a few moments of their time to help us make PeeringDB a better service!*” diff --git a/docs/faq.md b/docs/faq.md index 9f91a3f5..0dfbf205 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -11,7 +11,7 @@ The database is a non-profit, community-driven initiative run and promoted by vo ### How do I get started? -See our Quick Start guide: +See our [HOWTOs](/howtos/) for step-by-step guides to get started as a Network, Exchange, Facility, or Carrier operator. ### Affiliation requests From b23b5516597eaba3531a94787510c1cabe9b559b Mon Sep 17 00:00:00 2001 From: ch <1938389+netravnen@users.noreply.github.com> Date: Fri, 7 Aug 2026 08:30:54 +0200 Subject: [PATCH 5/9] docs(committee): add Deskpro public response snippets index The Admin Committee's public-facing Deskpro response snippets (triggered via ;code shortcuts like ;net-approved) had no human-readable index, making them hard to review or reference outside the Deskpro UI itself. Changes: - docs/committee/admin/deskpro_snippets.md: new file indexing the public (non-staff-only, non-trivial) Deskpro snippets by category -- network registration & approvals, facility & carrier management, organization recovery & account verification, IP/IX-F conflict resolution, and general administrative responses -- with snippet ID, shortcut code, and full text for each Security: - N/A -- documentation only; content already public-facing via Deskpro shortcuts, this just mirrors it Testing: - mkdocs build --strict passes with 0 warnings Backwards Compatibility: - N/A -- new page, no existing links affected Co-Authored-By: Gemini 3.6 Flash --- docs/committee/admin/deskpro_snippets.md | 698 +++++++++++++++++++++++ 1 file changed, 698 insertions(+) create mode 100644 docs/committee/admin/deskpro_snippets.md diff --git a/docs/committee/admin/deskpro_snippets.md b/docs/committee/admin/deskpro_snippets.md new file mode 100644 index 00000000..969b2a8c --- /dev/null +++ b/docs/committee/admin/deskpro_snippets.md @@ -0,0 +1,698 @@ +# PeeringDB Deskpro Public Response Snippets + +This document provides a human-friendly index of **Public Response Snippets** used by the **PeeringDB Admin Committee** in Deskpro (`peeringdb.deskpro.com`). + +> [!NOTE] +> Public shortcuts can be triggered in Deskpro by typing `;code` (e.g. `;net-approved`). Internal/staff-only snippets, empty snippets, and short snippets (<=3 lines) are excluded. + +## Table of Contents + +- [1. Network Registration & Approvals](#1-network-registration-approvals) +- [2. Facility & Carrier Management](#2-facility-carrier-management) +- [3. Organization Recovery & Account Verification](#3-organization-recovery-account-verification) +- [4. IP Address & IX-F Conflict Resolution](#4-ip-address-ix-f-conflict-resolution) +- [5. General Administrative & Support Responses](#5-general-administrative-support-responses) + +--- + +## 1. Network Registration & Approvals + +### 01 Your request net has been approved + +- **Snippet ID**: `#1` +- **Shortcut Code**: `;net-approved` +- **Access Level**: 🌐 Public + +```text +Dear {{user.name}} ({{user.email}}), + +Congratulations! Your request has been approved. You will need to log out and back in for it to take effect if this is the first object you registered. To benefit most from your entry, fill in all the fields. Especially + +- All objects are editable. Hence, never delete one unless you are 100% sure  you don't need it anymore. + +- Give your network a nice name. If you have more than one ASN, add the purpose or region of each ASN + +- IRR as-set/route-set + +- Network Type, offering a variety of types + +- Number of IPv4 and IPv6 Prefixes (please note: number of prefixes, not the number of IP addresses or the prefix length mask) + +- Traffic Levels and Ratio + +- Connections to IXP (so-called Public Peering Exchange Points) + +- Presences in Colocation Facilities (so-called Private Peering Facilities) + +Don't also forget to add Contact Information. It would be best to have them when adding Public Peering Exchange Points. And don't forget that you registered to interconnect. And how to contact you if there is no Contact Information. + +Enjoy using PeeringDB! + +Best regards, + +{{agent.alias}} +``` + +### 05 How to add your network to an IXP + +- **Snippet ID**: `#3` +- **Shortcut Code**: *None* +- **Access Level**: 🌐 Public + +```text +Dear {{user.name}} ({{user.email}}), + +Adding your network to an IXP is straightforward. Let's say you want to add yourself as a member of IXP Best-IX + +- Log in to PeeringDB with an Admin account + +- Go to your network entry (either click on the menu right to your login, choose your organization, then network OR search for your network in the search field) + +- Click on edit on the right-hand side + +- Make sure you have at least one technical contact information (Technical, NOC or Policy) with visibility "Users" or "Public". If not, add one! + +- Start to type in "Best-IX" in the Exchange Field. Best-IX should pop up in the drop-down menu. If Best-IX does not show up, contact owners of Best-IX to add their IX to PeeringDB + +- Fill in all the other details + +While editing your record, please also check whether the information is up to date. + +Best regards, + +{{agent.alias}} +``` + +### 06 How to add your network to a Facility + +- **Snippet ID**: `#4` +- **Shortcut Code**: *None* +- **Access Level**: 🌐 Public + +```text +Dear {{user.name}} ({{user.email}}), + +Adding your network to a Facility is straightforward. Let's say you want to add yourself as a member of Facility Best-Fac. + +- Log in to PeeringDB with an Admin account + +- Go to your network entry (either click on the menu right to your login, choose your organization, then network OR search for your network in the search field) + +- Click on edit on the right-hand side + +- Start to type in "Best-Fac" in the Facility Field. Best-Fac should pop up in the drop-down menu. If Best-Fac does not show up, contact owners of Best-Fac to add their Facility to PeeringDB + +While editing your record, please also check whether the information is up to date + +Best regards, + +{{agent.alias}} +``` + +### 07 Your application for being listed as IXP was not approved + +- **Snippet ID**: `#5` +- **Shortcut Code**: `;ix-rejected` +- **Access Level**: 🌐 Public + +```text +Dear {{user.name}} ({{user.email}}), + +Thank you for submitting your application to be listed as an IXP in PeeringDB. However, based on the information provided, we have not yet concluded that your service meets our requirements to be listed as an Internet Exchange Point within PeeringDB. + +A widely accepted definition of an IXP is: An Internet Exchange Point (IXP) is a network facility that enables the interconnection of more than two independent Autonomous Systems to facilitate Internet traffic exchange. An IXP provides interconnection only for Autonomous Systems. It does not require Internet traffic between any pair of participating Autonomous Systems to pass through a third Autonomous System, nor does it alter or otherwise interfere with such traffic + +Please provide + +- Website: mandatory and must list the IX as a service. + +- Participant list: Mandatory and must include at least three independent participants, each with their ASN, IPv4, and IPv6 peering addresses. + +- Exchange prefixes: The globally unique IPv4 and/or IPv6 prefixes used on the exchange must have a demonstratable connection to you or your organization, via publicly visible RDAP data. + +- We expect your answer within 90 days. If we don't get an answer, your request is denied. + +Please note: The three required participants must not include route servers, route collectors, route viewers, or any other Autonomous Systems that are operated by, or affiliated with, the applicant organization, its employees, or its PeeringDB users.  + +Best regards, + +{{agent.alias}} +``` + +### 03 Your application for being listed as a Facility was not approved + +- **Snippet ID**: `#6` +- **Shortcut Code**: `;fac-rejected` +- **Access Level**: 🌐 Public + +```text +Dear {{user.name}} ({{user.email}}), + +Thank you for submitting your application for a Facility object in PeeringDB. + +Based on the information currently available, we have not yet been able to determine that this location meets our requirements for a Facility object. + +PeeringDB Facility Requirements + +For PeeringDB purposes, a Facility object is intended to represent a unique colocation or data centre facility that is owned and operated by the submitting organisation. The facility must have an accurate physical address, a public website, and must openly offer colocation or meet-me-room services to the general public as unbundled services. + +A Facility object is not intended to represent an office, a point of presence, a customer site, or a location where an organisation only hosts its own services or customer services. If your organisation is a tenant within a larger data centre, the Facility object should normally be submitted by the organisation that owns and operates that data centre facility. Similarly, ownership of a building alone is not sufficient if the submitting organisation does not operate the facility as a public colocation or interconnection site. + +What We Need to See + +To be listed as a Facility in PeeringDB, the website must clearly show that the facility offers colocation, data centre, or meet-me-room services to the public. The facility should also support network interconnection, including access to more than a single carrier option, so that networks located at the facility can interconnect with other networks. + +At present, we could not identify sufficient public information confirming that this location meets those requirements. + +Required Documentation + +Please update your website or provide a specific public URL that clearly shows: + +- the facility name and accurate physical address; + +- that your organisation owns and operates the facility; + +- that colocation, data centre, or meet-me-room services are openly available to the public as unbundled services; and + +- that the facility provides network interconnection options, including more than a single carrier option. + +Timeline + +We expect your response within 90 days. If we do not receive a response within that period, your request may be denied. + +The approval process is described in more detail here:https://docs.peeringdb.com/committee/admin/approval-guidelines/#approving-facility-fac-objects + +{{agent.alias}} +``` + +### 14 How to add a network to your Organisation + +- **Snippet ID**: `#9` +- **Shortcut Code**: *None* +- **Access Level**: 🌐 Public + +```text +Dear {{user.name}} ({{user.email}}), + +Thank you for using PeeringDB. Adding another network to your organisation is quite easy. + +- Make sure you are logging in + +- from the menu right to your username (upper right corner) chose the organisation you want the network to belong to + +- Scroll down to the "Manage" section. Click on the 2nd tab "Add network" + +- Key in all the pieces of information and press button "Submit Network" + +Best regards, + +{{agent.alias}} +``` + +### 08 You application for SUGGESTING a facility was not approved + +- **Snippet ID**: `#10` +- **Shortcut Code**: *None* +- **Access Level**: 🌐 Public + +```text +Dear {{user.name}} ({{user.email}}), + +Thank you for applying to list a Facility in PeeringDB. However, when looking at the services being offered, we conclude that the suggestion is not a Facility.  A Facility does not mean that the company has an office at this address or running a data centre to host their own services or services for their customers. To be listed as a Facility in PeeringDB we would expect that they offer colocation, data centre and/or meet-me-room services to the public. + +Please note that  + +- Website: mandatory and MUST list colocation as a service. This is missing. Please provide the URL. + +- Provide information within 90 days, please. If we don't get more information, the suggestion will be removed. + +Best regards, + +{{agent.alias}} +``` + +### 15 How to add your first network to peeringdb + +- **Snippet ID**: `#11` +- **Shortcut Code**: *None* +- **Access Level**: 🌐 Public + +```text +Dear {{user.name}} ({{user.email}}), + +Thank you for wanting to use PeeringDB. Adding your network is quite easy. + +- Make sure you are logging into PeeringDB (If you do not have an account, yet. You will need to create one) + +- Make sure to confirm your email address (if you have not already done so via the link received in an email) + +- From the menu right to your username (upper right corner) chose "profile" + +- In the "Affiliate with organization" section. Key in Organization Name and AS Number. Press button "Affiliate" + +- Await confirmation of affiliation from PeeringDB. (This step will be either fully automated or manually reviewed. Depending on fetched RIR data) + +Best regards, + +{{agent.alias}} +``` + +### 17 You application for adding non-allocated ASN was not approved + +- **Snippet ID**: `#14` +- **Shortcut Code**: *None* +- **Access Level**: 🌐 Public + +```text +Dear {{user.name}} ({{user.email}}), + +You have had tried to create a network in PeeringDB with a non-allocated ASN. + +Please note we only accept applications for networks with a valid allocated ASN. RDAP lookups always verify this to the relevant RIR entity. + +Best Regards, + +{{agent.alias}} +``` + +### 16 Your PeeringDB IRR as-set/rs-set entry + +- **Snippet ID**: `#17` +- **Shortcut Code**: *None* +- **Access Level**: 🌐 Public + +```text +Dear PeeringDB user + +The value in your IRR as-set/rs-set entry does not exist. In the worst case, that means that your peers are not accepting any prefixes from you. If you are lucky, they still will accept all the prefixes originating from your ASN. + +Generally, it's an excellent idea to have an as-set/rs-set. So, what to do + +- If you have not yet chosen a name, think about a good name. ASnnnnn:AS-ALL, where nnnnnn is the ASN is a good choice as it is unique across all IRRs + +- there are a bunch of IRRs to register your as-set/rs-set. See http://www.irr.net/ + +- where to register your ASN? The easiest is to register with your RIR as you already have an account there + +- AfriNIC: https://www.afrinic.net/services/1871-create-as-set-on-afrinic-whois-database + +- ARIN: https://www.arin.net/resources/manage/irr/templates/ + +- APNIC: https://www.apnic.net/manage-ip/using-whois/guide/as-set/ + +- LACNIC: https://lacnic.zendesk.com/hc/es/articles/360039152373-Crear-as-set + +- RIPE NCC: https://www.ripe.net/manage-ips-and-asns/db/support/documentation/creating-basic-ripe-database-objects + +See also this blog article about hierarchical as-sets https://www.manrs.org/2022/12/why-network-operators-should-use-hierarchical-as-sets/ for more information. + +Best regards + +{{agent.alias}} +``` + +### 04 Your request ix has been approved + +- **Snippet ID**: `#19` +- **Shortcut Code**: `;ix-approved` +- **Access Level**: 🌐 Public + +```text +Dear {{user.name}} ({{user.email}}), + +Congratulations! Your request has been approved. You will need to log out and back in to take effect if this is the first object registered. To benefit most from your entry, encourage your ASN customers to register with PeeringDB and list their presence at your IXP. + +Enjoy using PeeringDB! + +Best regards, + +{{agent.alias}} +``` + +### 04 Your request fac has been approved + +- **Snippet ID**: `#25` +- **Shortcut Code**: `;fac-approved` +- **Access Level**: 🌐 Public + +```text +Dear {{user.name}} ({{user.email}}), + +Congratulations! Your request has been approved. You will need to log out and back in to take effect if this is the first object registered. To benefit most from your entry, encourage your ASN, Carrier, and IXP customers to register with PeeringDB and list their presence at your facility. + +Enjoy using PeeringDB! + +Best regards, + +{{agent.alias}} +``` + +### 07 Your application for being listed as Carrier was not approved + +- **Snippet ID**: `#26` +- **Shortcut Code**: `;car-rejected` +- **Access Level**: 🌐 Public + +```text +Dear {{user.name}} ({{user.email}}), + +Thank you for submitting your application for a Carrier object in PeeringDB. + +Based on the information currently available on your website, we have not yet been able to determine that your organisation meets our requirements for a Carrier object. + +For PeeringDB purposes, a Carrier object is intended for organisations that publicly offer carrier-grade network infrastructure services such as dark fibre, wavelengths/DWDM, Ethernet transport, MPLS VPN, or similar services delivered over fibre infrastructure they own and operate. + +Internet access services alone are not sufficient for a Carrier object. Similarly, services that appear to be resold or leased from another provider, rather than delivered over infrastructure your organisation owns and operates, do not meet our requirements. + +Your website is mandatory for this review and must clearly describe the relevant carrier services your organisation provides. At present, we could not identify this information. + +Please update your website or provide a specific public URL that clearly shows the carrier services you offer, including the type of services provided and an indication that they are delivered over infrastructure your organisation owns and operates. + +We expect your response within 90 days. If we do not receive a response within that period, your request may be denied. + +Best regards, + +{{agent.alias}} +``` + +### 04 Your request carrier has been approved + +- **Snippet ID**: `#27` +- **Shortcut Code**: `;car-approved` +- **Access Level**: 🌐 Public + +```text +Dear {{user.name}} ({{user.email}}), + +Congratulations! Your request has been approved. You will need to log out and back in to take effect if this is the first object registered. To benefit most from your entry, please add all of your presences at a Facility. If a Facility is not yet in PeeringDB, suggest it first. + +Enjoy using PeeringDB! + +Best regards, + +{{agent.alias}} +``` + +### 990 Org name RIPE-NCC-END-MNT for new networks GH#1455 + +- **Snippet ID**: `#30` +- **Shortcut Code**: `;gh1455` +- **Access Level**: 🌐 Public + +```text +Dear {{user.name}} ({{user.email}}), + +We have an ongoing problem concerning this ⟶ https://github.com/peeringdb/peeringdb/issues/1455, https://github.com/peeringdb/peeringdb/issues/1520 (unrelated networks end up under the same parent ORG) + +I have moved the network to a new organization. ⟶ __INSERT_LINK_TO_NEW_ORGANIZATION__ + +Please follow the regular procedure to request affiliation (again). + +Best regards, + +{{agent.alias}} +``` + +## 2. Facility & Carrier Management + +### 20 Deletion prevented: FAC + +- **Snippet ID**: `#22` +- **Shortcut Code**: `;deletion-fac` +- **Access Level**: 🌐 Public + +```text +Dear {{user.name}} ({{user.email}}), + +You tried to delete a facility. However, as long as networks and IXP are connected to a facility, you can't delete it. + +Would you please let us know why you want to delete the facility? There might be several reasons.  + +- The facility was abandoned entirely. + +- The facility has a new owner but still is in operation. If so, who is the new owner? + +Please let us know why, and we will be happy to support you. + +Best regards and enjoy PeeringDB + +{{agent.alias}} +``` + +### 23 Deletion prevented: IXPFX + +- **Snippet ID**: `#24` +- **Shortcut Code**: `;deletion-ixpfx` +- **Access Level**: 🌐 Public + +```text +Dear {{user.name}} ({{user.email}}), + +You tried to delete an IXP Prefix. However, as long as networks are connected to an IXP, you can't delete it. This also would delete all connections to the IXP + +Would you please let us know why you want to delete the IXP Prefix? There might be several reasons.  + +- you are turning down the IXP + +- you are migrating to a new IXP Prefix + +- you are enlarging the IXP Prefix mask + +Please let us know why, and we will be happy to support you. + +Best regards and enjoy PeeringDB + +{{agent.alias}} +``` + +## 3. Organization Recovery & Account Verification + +### 02 Mismatch between company name and email address + +- **Snippet ID**: `#2` +- **Shortcut Code**: `;mismatch-email` +- **Access Level**: 🌐 Public + +```text +Dear {{user.name}} ({{user.email}}), + +We use RDAP and Whois information from the RIR to authenticate requests. To allow for minimum authentication information from RIR, your email address must match. We detected a mismatch and, therefore, are not accepting your application. Please alter your data and reply to this ticket. + +These are the email addresses we could fetch from the ASNs belonging to this organization: + +Please send a confirmation email from one of the addresses listed above. Alternatively, those on CC, please register and claim your organisation at https://www.peeringdb.com. You may also add the/an authoritative email as secondary email to the requesting account: + +Best regards, + +{{agent.alias}} +``` + +### 13 Using one user account to maintain multiple organisations + +- **Snippet ID**: `#8` +- **Shortcut Code**: *None* +- **Access Level**: 🌐 Public + +```text +Dear {{user.name}} ({{user.email}}), + +With PeeeringDB 2.0 you can maintain as many organisations / asn with just one *user* account. This really eases uses of PeeringDB as you only log in once and then you can choose the organisation from the menu right to your username in the upper right corner. + +However, if you also want to have separate user accounts, you still can do. As a user account is always bound to a certain mail address, make sure that you have proper authorisation to maintain all asn. + +Enjoy using PeeringDB! + +Best regards, + +{{agent.alias}} +``` + +### 12 Contact your PeeringDB admins + +- **Snippet ID**: `#28` +- **Shortcut Code**: `;contacts-existing-admins` +- **Access Level**: 🌐 Public + +```text +Dear {{user.name}} ({{user.email}}), + +to gain access to your PeeringDB account or to get affiliated, please contact your PeeringDB admin(s) + +Best regards and enjoy using PeeringDB + +{{agent.alias}} +``` + +## 4. IP Address & IX-F Conflict Resolution + +### 09 Your application for adding an organisation + +- **Snippet ID**: `#7` +- **Shortcut Code**: `;org-rejected` +- **Access Level**: 🌐 Public + +```text +Dear {{user.name}} ({{user.email}}), + +Thank you for sending in your request for ownership of an organization. However, PeeringDB does not store information about organizations for just this information. Organizations always are parents of other records, like networks, facilities or IXP. + +If you want to change your organisation's name, please log in as an Admin and change the name via "Edit". Otherwise, please add more information about why you want us to add your organization. + +Best regards, + +{{agent.alias}} +``` + +### 18 Actions from IX-F JSON importer needed + +- **Snippet ID**: `#18` +- **Shortcut Code**: *None* +- **Access Level**: 🌐 Public + +```text +Dear {{user.name}} ({{user.email}}), + +We have to contact you as your network record does not have a technical (Technical, NOC, Policy) contact. Please add one of these role accounts. + +The IX-F JSON importer has detected a mismatch between your data and the data published by the exchange.  + +Please log in to PeeringDB with an admin account and try to resolve the issues. Reach out to the IX, without involving PeeringDB support if in doubt. + +Best regards + +{{first_name}} {{last_name}} +``` + +## 5. General Administrative & Support Responses + +### 12 Forgot credentials + +- **Snippet ID**: `#12` +- **Shortcut Code**: `;lost-credentials` +- **Access Level**: 🌐 Public + +```text +Dear {{user.name}} ({{user.email}}), + +to recover your credentials please use + +- password: https://peeringdb.com/reset-password + +- username: https://peeringdb.com/username-retrieve + +Best regards and enjoy using PeeringDB + +{{agent.alias}} +``` + +### 10 Tickets mistakenly sent to PeeringDB Support + +- **Snippet ID**: `#13` +- **Shortcut Code**: `;wrong-support-team` +- **Access Level**: 🌐 Public + +```text +Dear {{user.name}} ({{user.email}}), + +You have written an e-mail to "PeeringDB Support" (4) with the subject line "{{subject}}" for a purpose we do not cover. + +Please contact the appropriate entity separately and drop PeeringDB from this conversation! + +Please see (0,1,2) for more information about what PeeringDB is and our mission statement (3). We can also recommend using a search engine to look for additional information about PeeringDB yourself (6). + +- https://en.wikipedia.org/wiki/PeeringDB + +- https://www.de-cix.in/blog/what-to-use-peeringdb + +- https://docs.peeringdb.com/faq/#what-is-peeringdb + +- https://www.peeringdb.com/about + +- https://www.peeringdb.com + +- What is PeeringDB: DuckDuckGo, Google, Yahoo, Bing + +Best Regards, + +{{agent.alias}} +``` + +### 19 PeeringDB Volunteer (already full) + +- **Snippet ID**: `#15` +- **Shortcut Code**: *None* +- **Access Level**: 🌐 Public + +```text +Dear {{user.name}} ({{user.email}}), + +Thank you for your interest in volunteering with PeeringDB, that means a lot to us! + +Unfortunately, we are at full capacity in all our Committees right now, but we will be happy if you come back to us once a spot opens! Usually, we will announce that on every social channel of your choice. + +Meanwhile, please join us on our public projects like the translation of PeeringDB to other languages, to enable everyone all around the world to use this great tool: https://docs.peeringdb.com/translation/ + +Best regards, + +{{agent.alias}} +``` + +### 22 Deletion prevented: POC + +- **Snippet ID**: `#21` +- **Shortcut Code**: `;deletion-poc` +- **Access Level**: 🌐 Public + +```text +Dear {{user.name}} ({{user.email}}), + +You tried to delete the last technical contact for your ASN. However, as long as you have connections to an IXP, we need a technical contact to assist in communication between you and the IXP. + +If you want to delete the contact, please remove all IXP connections or add another technical contact first. A technical contact is either a NOC, Policy or Technical role account in your ASN's "Contact Information" section. + +Best regards and enjoy PeeringDB + +{{agent.alias}} +``` + +### 09 How to register with PeeringDB + +- **Snippet ID**: `#23` +- **Shortcut Code**: *None* +- **Access Level**: 🌐 Public + +```text +Dear {{user.name}} ({{user.email}}), + +Thank you for contacting PeeringDB. From your email, we don't see which business you are in. Please let us know (URL!). You only need to register with PeeringDB if you maintain an object or are a member of a Carrier, a Facility, an IXP or a Network (aka ASN) and need more information, esp. contact information. Otherwise, you don't need an account, and we most likely will not accept your request. + +- Register via https://peeringdb.com/register + +- Once approved, affiliate yourself with an organisation via https://peeringdb.com/profile. + +- You only need one account to affiliate with many organisations. There is no need to create additional accounts. + +- If you only want to research, you will not need an account, but some point-of-contact data may be hidden. + +Best regards, + +{{agent.alias}} +``` + +### 991. Redirect feature request to GitHub + +- **Snippet ID**: `#34` +- **Shortcut Code**: *None* +- **Access Level**: 🌐 Public + +```text +Dear {{alias}} ({{email}}), + +Could I convince you to raise that as a feature request at our GitHub issue tracker? + +The support email is intended only for support related questions. And feature requests should ideally be raised at the GitHub issue tracker. ;-) + +Best, + +{{agent.alias}} +``` From 2a1e82a0d2e05a1e693140e808c62c636272779d Mon Sep 17 00:00:00 2001 From: ch <1938389+netravnen@users.noreply.github.com> Date: Fri, 7 Aug 2026 08:46:06 +0200 Subject: [PATCH 6/9] docs(getting-started): add qualification criteria and deletion-lock guidance Facility, exchange, and carrier applicants were finding out they didn't qualify only after submitting and getting rejected, because the eligibility bar for each object type lived only in the Admin Committee's Deskpro response snippets, not in the public HOWTOs. Likewise, none of the three guides warned that facility and IX prefix objects can't be deleted once other records depend on them, so operators hit that block with no context. Changes: - docs/howto/get-started-facility.md: add "Facility qualification & approval criteria" section (ownership/operation, public colocation, multi-carrier interconnection, public documentation, and explicitly ineligible site types) and a "Deleting a facility" warning admonition covering the connected-networks deletion lock - docs/howto/get-started-exchange.md: add a "3-ASN minimum" callout covering the participant threshold, route-server/affiliated-ASN exclusions, and RDAP-verifiable prefix requirements, plus a "Deleting an IX prefix" warning admonition covering the connected-networks deletion lock - docs/howto/get-started-carrier.md: add "Carrier infrastructure qualification checklist" distinguishing eligible carrier-grade services (dark fibre, DWDM/wavelengths, Ethernet transport, MPLS VPN over owned infrastructure) from ineligible resold/leased transport Content is sourced from the Admin Committee's public Deskpro snippets already indexed in committee/admin/deskpro_snippets.md (;fac-rejected, ;ix-rejected, ;car-rejected, ;deletion-fac, ;deletion-ixpfx) -- this makes criteria the committee already applies visible to applicants before they submit. Security: - N/A -- documentation only Testing: - mkdocs build --strict passes with 0 warnings; admonition blocks confirmed to render as `class="admonition warning"` / `class="admonition important"` in the generated HTML Backwards Compatibility: - N/A -- additive content only, no headings renamed or removed, no existing anchors changed Co-Authored-By: Claude Sonnet 5 Plan-By: Gemini 3.6 Flash --- docs/howto/get-started-carrier.md | 11 +++++++++++ docs/howto/get-started-exchange.md | 8 ++++++++ docs/howto/get-started-facility.md | 21 +++++++++++++++++++++ 3 files changed, 40 insertions(+) diff --git a/docs/howto/get-started-carrier.md b/docs/howto/get-started-carrier.md index 9b64dbe6..59946fd6 100644 --- a/docs/howto/get-started-carrier.md +++ b/docs/howto/get-started-carrier.md @@ -16,6 +16,17 @@ If you need additional help getting started, please contact us at: [support@peer The `carrier` object is used to describe providers offering [L1 or L2](https://en.wikipedia.org/wiki/OSI_model#Layer_1:_Physical_layer) services in a `facility`. It is different from a `net` because that describes services provided at L3 and is linked to its autonomous system number. +## Carrier infrastructure qualification checklist + +**Eligible**: carrier-grade network infrastructure services — such as dark fibre, wavelengths/DWDM, Ethernet transport, or MPLS VPN — delivered over fibre infrastructure that your organization owns and operates. + +**Not eligible**: + +* Internet access services alone +* Transport that is resold or leased from another provider, rather than delivered over infrastructure your organization owns and operates + +Your website must clearly describe the carrier services you offer and indicate that they run over infrastructure you own and operate — this is required for approval. + ## Information required You will need to create several database records, known as objects, to establish your presence in PeeringDB. diff --git a/docs/howto/get-started-exchange.md b/docs/howto/get-started-exchange.md index af86e730..5e783aa8 100644 --- a/docs/howto/get-started-exchange.md +++ b/docs/howto/get-started-exchange.md @@ -30,6 +30,9 @@ This information is not required but is useful: Some exchanges share additional information. You can look at the information shared by other exchange operators to work out what your organization should be sharing. +!!! important "The 3-ASN minimum" + An `ix` application needs at least **3 independent Autonomous Systems** ready to peer at the exchange. Route servers, route collectors, route viewers, and any ASN operated by or affiliated with the applicant organization do not count toward that minimum. Your application also needs a public website, a participant list, and globally unique IPv4 and/or IPv6 peering LAN prefixes that can be verified as belonging to your organization via [RDAP](https://about.rdap.org/). + ## Information about connected networks You can provide information about the networks that will be peering at your exchange using the [X-F Member Export JSON Schema](https://github.com/euro-ix/json-schemas). We also [support this format](https://docs.peeringdb.com/ix-f-json-import-rules/) as a way to automate updates about your exchange to PeeringDB. @@ -74,6 +77,11 @@ This short document describes the first steps for getting set up in PeeringDB. O ![LAN](images/lan.png) +## Deleting an IX prefix + +!!! warning "IX prefixes with connected networks can't be deleted" + PeeringDB blocks deletion of an IX prefix as long as networks are still connected to your exchange using it — removing it would also drop those connections. If you're turning down the exchange, migrating to a new prefix, or enlarging the prefix mask, unlink or migrate the affected networks first, or contact [support@peeringdb.com](mailto:support@peeringdb.com). + ## More information The [PeeringDB Data Ownership Policy](https://docs.peeringdb.com/gov/misc/2020-04-06_PeeringDB_Data_Ownership_Policy_Document_v1.0.pdf) describes all the objects in PeeringDB. diff --git a/docs/howto/get-started-facility.md b/docs/howto/get-started-facility.md index 1e534f9d..7906a0f7 100644 --- a/docs/howto/get-started-facility.md +++ b/docs/howto/get-started-facility.md @@ -5,6 +5,22 @@ New to PeeringDB? See [About PeeringDB](../index.md) for background on what it i ## Why? PeeringDB is the interconnection database. Registering information about your facility in PeeringDB makes it visible to network operators who want to connect to exchanges or other networks in your facility. +## Facility qualification & approval criteria + +Not every location qualifies as a `facility` object. Before you apply, make sure your facility meets all of the following: + +* **Ownership & operation** — the facility must be owned and operated by your organization. +* **Public colocation** — it must openly offer colocation or meet-me-room services to the general public as unbundled services. +* **Multi-carrier interconnection** — it must support access to more than a single carrier option, so networks located there can interconnect with each other. +* **Public documentation** — your website must explicitly list colocation or meet-me-room services and the facility's physical address. + +The following are **not** eligible as a `facility`: + +* A tenant space within a larger data center (the facility object should be submitted by the organization that owns and operates the building) +* An office or point-of-presence +* A site offering only a single carrier option +* A location that only hosts your own services or your customers' services privately, without offering colocation to the public + ## Getting started Routine use of PeeringDB can be automated using [our API](https://www.peeringdb.com/apidocs) but this document is intended to help new facility administrators get started. Facilities are set up using the web interface. Once this is done you can use the API to automate things that change regularly. This document focuses on the key steps for establishing your facility's presence in PeeringDB and assumes you are using the web interface, which is available in 14 languages. @@ -72,6 +88,11 @@ This short document describes the first steps for getting set up in PeeringDB. O * Encourage the networks and Internet Exchanges to also register with PeeringDB, and to indicate their presence in your facility. Thus making their presence visible to others and so increasing the possibility of interconnection with other networks. +## Deleting a facility + +!!! warning "Facilities with active connections can't be deleted" + PeeringDB blocks deletion of a `facility` object as long as any network or IXP still lists a presence there. If you need to remove a facility, first unlink or migrate those connections. If the facility has been abandoned or has a new owner, contact [support@peeringdb.com](mailto:support@peeringdb.com) and explain the situation. + ## More information The [PeeringDB Data Ownership Policy](https://docs.peeringdb.com/gov/misc/2020-04-06_PeeringDB_Data_Ownership_Policy_Document_v1.0.pdf) describes all the objects in PeeringDB. From 5cbd3fddd788bd262dd0e9ea351d6bd3d64735b5 Mon Sep 17 00:00:00 2001 From: ch <1938389+netravnen@users.noreply.github.com> Date: Fri, 7 Aug 2026 08:47:06 +0200 Subject: [PATCH 7/9] docs(faq): document RDAP affiliation, admin succession, and deletion locks Two recurring support patterns had no self-serve documentation: users whose account email didn't match their ASN's RDAP record had no way to learn that adding a secondary email would unblock automated affiliation approval, and users who inherited an ASN or lost contact with their org's admins had no documented path to reclaim access. Separately, faq.md's Technical section covered API and sync mechanics but nothing about why object deletion sometimes gets blocked. Changes: - docs/howto/authenticate.md: add "Organization affiliation & admin succession" section with two subsections -- "RDAP email verification" (how the RDAP match works, why adding a secondary email is faster than changing your login email) and "Claiming admin rights for an existing organization" (contacting a reachable admin first, falling back to RDAP-verifiable proof via support, and what to provide after an ASN acquisition) - docs/faq.md: add "Why can't I delete my Facility, IX Prefix, or Point of Contact?" under Technical, covering all three deletion locks and how to resolve each Content is sourced from the Admin Committee's public Deskpro snippets already indexed in committee/admin/deskpro_snippets.md (;mismatch-email, ;contacts-existing-admins, ;deletion-fac, ;deletion-ixpfx, ;deletion-poc). Security: - N/A -- documentation only; no new authentication mechanism described, just an explanation of an existing one Testing: - mkdocs build --strict passes with 0 warnings; new mailto and RDAP links verified to resolve Backwards Compatibility: - N/A -- additive content only, no headings renamed or removed Co-Authored-By: Claude Sonnet 5 Plan-By: Gemini 3.6 Flash --- docs/faq.md | 10 ++++++++++ docs/howto/authenticate.md | 14 ++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/docs/faq.md b/docs/faq.md index 0dfbf205..83111de8 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -68,6 +68,16 @@ The initial run will perform a full sync, while subsequent runs will incremental ### What does the `Never via route servers` flag mean and how does it work? With release 2.18.0 a new feature `Never via route servers` (API field `info_never_via_route_servers`) has been introduced. There is a tick box in section "Protocols Supported" to set it. If set it is a hint for an IXP to use that information to block any BGP updates where the AS_PATH matches the regular expression _ASN_. Please make sure that the IXPs you are connected to are supporting this feature. I.e. they have to check PeeringDB regularly, evaluate this field and honour the setting. +### Why can't I delete my Facility, IX Prefix, or Point of Contact? + +PeeringDB blocks deletion of certain objects while other records still depend on them, to avoid silently breaking someone else's configuration: + +* **Facility** — can't be deleted while any `net` or `ix` still lists a presence there. Remove or migrate those connections first, or contact [PeeringDB Support](mailto:support@peeringdb.com) if the facility has shut down entirely. +* **IX Prefix** — can't be deleted while networks are still connected to that exchange using it, since removing it would also drop those connections. +* **Technical Point of Contact** — your last Technical, NOC, or Policy contact can't be deleted while your network still has active IXP connections, since exchanges need a way to reach you. + +In each case, either resolve the dependency first or contact [PeeringDB Support](mailto:support@peeringdb.com) explaining why the deletion should proceed. + ## Governance and membership ### How does one become a PeeringDB member? diff --git a/docs/howto/authenticate.md b/docs/howto/authenticate.md index c3fc3bc7..b60a8b6a 100644 --- a/docs/howto/authenticate.md +++ b/docs/howto/authenticate.md @@ -66,6 +66,20 @@ You can recover your account if you forget your username or password. Just go to ![](images/lost_credentials.png) +## Organization affiliation & admin succession + +### RDAP email verification + +When you request to affiliate with an organization that doesn't yet have an admin, PeeringDB looks up the ASN's registration data via [RDAP](https://about.rdap.org/) at the relevant Regional Internet Registry (RIPE, ARIN, APNIC, LACNIC, or AFRINIC). If the email address on your PeeringDB account matches one of the email addresses published in that RDAP record, your affiliation request is approved automatically. + +If your account email doesn't match, add the RIR-registered address as a secondary email on your [profile](https://www.peeringdb.com/profile) rather than switching your primary login email. Secondary emails are checked during the same automated match, so this is usually the fastest way to unblock an affiliation request without waiting on [PeeringDB Support](mailto:support@peeringdb.com). + +### Claiming admin rights for an existing organization + +If your organization already has a `net`, `ix`, `fac`, or `carrier` record in PeeringDB but you can't reach its existing admins — for example, after staff turnover or an ASN acquisition — you have two options: + +* Ask a current admin to affiliate you and grant admin rights, if you can identify and reach one through your organization's own records. +* If no admin can be reached, contact [PeeringDB Support](mailto:support@peeringdb.com) with proof that ties you to the organization. An email address matching the RDAP/WHOIS record for the ASN is the fastest path, since it lets support verify the request the same way automated affiliation does. For ASN acquisitions, include the RIR transfer confirmation showing the ASN now belongs to your organization. ## OAuth From 01c7199cbe396da28f15762e2e993b4e6086bcb2 Mon Sep 17 00:00:00 2001 From: ch <1938389+netravnen@users.noreply.github.com> Date: Fri, 7 Aug 2026 08:47:42 +0200 Subject: [PATCH 8/9] docs(nav): register Deskpro snippets and API reference pages in site nav committee/admin/deskpro_snippets.md and howto/query_the_api.md were only reachable via inline links from their parent pages -- mkdocs build listed both as present but not included in nav. Neither is a broken build (mkdocs only warns at INFO level for this), but it meant visitors browsing the site nav tree had no way to discover either page. Changes: - mkdocs.yml: nest "Admin Committee" into "Overview" (index.md) and "Deskpro Snippets" (deskpro_snippets.md); nest "HOWTOs" into "Overview" (howtos.md) and "Query the API" (query_the_api.md) Security: - N/A -- documentation only Testing: - mkdocs build --strict passes with 0 warnings; both pages no longer appear in the "not included in nav" info listing Backwards Compatibility: - N/A -- existing page URLs are unchanged; this only adds entries to the nav tree Co-Authored-By: Claude Sonnet 5 Plan-By: Gemini 3.6 Flash --- mkdocs.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mkdocs.yml b/mkdocs.yml index b7036dca..143dc819 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -15,7 +15,9 @@ nav: - About: index.md - Governance: gov.md - Committees & Task Forces: - - Admin Committee: committee/admin/index.md + - Admin Committee: + - Overview: committee/admin/index.md + - Deskpro Snippets: committee/admin/deskpro_snippets.md - Operations Committee: committee/operations/index.md - Outreach Committee: committee/outreach/index.md - Product Committee: committee/product/index.md @@ -27,7 +29,9 @@ nav: - OAuth: oauth.md - Translations: translation.md - Developer Documentation: https://github.com/peeringdb/peeringdb/tree/master/docs - - HOWTOs: howtos.md + - HOWTOs: + - Overview: howtos.md + - Query the API: howto/query_the_api.md - FAQs: faq.md - Blogs: blogs.md From dd2b04219e57539a16ffa12924591bddfd4f48cc Mon Sep 17 00:00:00 2001 From: ch <1938389+netravnen@users.noreply.github.com> Date: Fri, 7 Aug 2026 08:55:15 +0200 Subject: [PATCH 9/9] docs(faq): add Mergers and Acquisitions guidance The FAQ had no guidance for a recurring support scenario: a company acquires another company and wants to bring the acquired organization's PeeringDB resources under its own management. Users hitting this had to file a support ticket cold, with no documented process or expectations set in advance. This also complements the "Organization affiliation & admin succession" section already added to authenticate.md, which covers the adjacent but distinct case of claiming admin rights when the original admins can't be reached. Changes: - docs/faq.md: add "Mergers and Acquisitions" under General, right after "Affiliation requests" -- covers the acquisition scenario, a worked example (Company A acquired by Company B), the support ticket process, and what speeds up review (writing from an email address that admins both organizations); cross-references authenticate.md's admin-succession guidance for the unreachable-admin case - docs/howto/authenticate.md: add a reverse cross-reference from "Claiming admin rights for an existing organization" to the new FAQ entry, for the voluntary-handoff case where the acquired organization's admins are still reachable Security: - N/A -- documentation only Testing: - mkdocs build --strict passes with 0 warnings; both cross-reference anchors (#mergers-and-acquisitions, #claiming-admin-rights-for-an-existing-organization) confirmed present in the generated HTML Backwards Compatibility: - N/A -- new content only, no existing links or anchors changed Co-Authored-By: Claude Sonnet 5 --- docs/faq.md | 16 ++++++++++++++++ docs/howto/authenticate.md | 2 ++ 2 files changed, 18 insertions(+) diff --git a/docs/faq.md b/docs/faq.md index 83111de8..293a69c2 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -31,6 +31,21 @@ A: After you have registered, go to your [profile](https://www.peeringdb.com/pro In any case you should get an answer either from your admin or [PeeringDB Support](mailto:support@peeringdb.com). If you don't get an answer within two working days, please mail [PeeringDB Support](mailto:support@peeringdb.com) providing necessary information (ASN, Organization). +### Mergers and Acquisitions + +If your company has acquired another company and you want to bring the acquired company's resources under your own management in PeeringDB, contact [PeeringDB Support](mailto:support@peeringdb.com) for assistance. + +#### Example + +1. Company A has been acquired by Company B. +2. Both A and B have their own organization (objects) in PeeringDB. +3. Company B wants to manage Company A's resources under their own PeeringDB organization. +4. Resources managed by Company A _can_ be transferred to Company B's management, if an organization merge is requested by contacting [PeeringDB Support](mailto:support@peeringdb.com). +5. Open a ticket with [PeeringDB Support](mailto:support@peeringdb.com): + * Additional information may be requested by our support staff. + * If you write from an e-mail address that is an admin for both organizations, the request is usually processed as soon as support reviews it. + +If Company A's admins can no longer be reached — rather than this being a voluntary handoff — see [Claiming admin rights for an existing organization](/howto/authenticate/#claiming-admin-rights-for-an-existing-organization) instead. ## Technical ### How do I query by ASN? @@ -98,3 +113,4 @@ No, there are not. ### To register network information in the PeeringDB, is an organization required to join as a member? No, that isn't necessary. + diff --git a/docs/howto/authenticate.md b/docs/howto/authenticate.md index b60a8b6a..96e06071 100644 --- a/docs/howto/authenticate.md +++ b/docs/howto/authenticate.md @@ -81,6 +81,8 @@ If your organization already has a `net`, `ix`, `fac`, or `carrier` record in Pe * Ask a current admin to affiliate you and grant admin rights, if you can identify and reach one through your organization's own records. * If no admin can be reached, contact [PeeringDB Support](mailto:support@peeringdb.com) with proof that ties you to the organization. An email address matching the RDAP/WHOIS record for the ASN is the fastest path, since it lets support verify the request the same way automated affiliation does. For ASN acquisitions, include the RIR transfer confirmation showing the ASN now belongs to your organization. +If the acquired organization's admins are still active and simply want to hand off management voluntarily, see the [Mergers and Acquisitions FAQ](/faq/#mergers-and-acquisitions) instead. + ## OAuth Some external services allow or require you to authenticate using your PeeringDB account. One example is networks' peering portals. They might use PeeringDB's OAuth service to ensure they can automate configuration.