https://github.com/bgp/autopeer
https://github.com/bgp/autopeer
Last synced: 8 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/bgp/autopeer
- Owner: bgp
- License: apache-2.0
- Created: 2023-01-09T22:21:37.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-05-08T13:23:27.000Z (about 2 years ago)
- Last Synced: 2024-05-08T14:35:05.274Z (about 2 years ago)
- Size: 222 KB
- Stars: 48
- Watchers: 16
- Forks: 5
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Automated Peering API
Initial proof of concept for Automated Peering API
See [CONTRIBUTING.md](CONTRIBUTING.md)
## Introduction to the topic
This video is a recording of a presentation entitled "Peering API Automation" by Jenny Ramseyer (Meta), Matt Griswold (FullCtl), and Erica Salvaneschi (Cloudflare) given during NANOG88: https://www.youtube.com/watch?v=kMxsoplROYs The video motivates this work and shows the covered use-cases.
## Sequence Diagram
```mermaid
sequenceDiagram
participant Initiator
participant Peer
participant PeeringDB
Initiator->>PeeringDB: OIDC Authentication
PeeringDB->>Initiator: Provide auth code
Initiator->>Peer: Send auth code to Peer
Peer->>PeeringDB: Exchange auth code for token
PeeringDB->>Peer: Return token
Note left of Peer: Peer determines permissions based on token
Peer->>Initiator: Send OK back to Initiator
Initiator->>Peer: QUERY peering locations (peer type, ASN, auth code)
Peer->>Initiator: Reply with peering locations or errors (401, 406, 451, etc.)
alt 200 response from Peer
Initiator->>Peer: QUERY request status using request ID & auth code
Peer->>Initiator: Reply with session status (200, 404, 202, etc.)
loop until peering is complete
Initiator->>Peer: QUERY request status
Peer->>Initiator: Session status
end
end
```
## License
By contributing to this repo, you agree that your contributions will be
licensed under the LICENSE file in the root directory of this source tree.
Documentation is covered by the Creative Commons Attribution 4.0 (CC-BY-4.0)
license.