From f8f12bc17279f147aa637abe186457d2b200d8b8 Mon Sep 17 00:00:00 2001 From: ghankins Date: Wed, 20 Nov 2024 07:53:40 -0500 Subject: [PATCH] Deployed 6deeeb5 with MkDocs version: 1.4.2 --- index.html | 2 +- .../20241119_RSNOG10_Livio_Morina.pdf | Bin 0 -> 2611295 bytes presentations/index.html | 1 + search/search_index.json | 2 +- sitemap.xml | 196 +++++++++--------- sitemap.xml.gz | Bin 1254 -> 1253 bytes 6 files changed, 101 insertions(+), 100 deletions(-) create mode 100644 presentation/20241119_RSNOG10_Livio_Morina.pdf diff --git a/index.html b/index.html index aa384ea2..bed01c10 100644 --- a/index.html +++ b/index.html @@ -403,5 +403,5 @@ diff --git a/presentation/20241119_RSNOG10_Livio_Morina.pdf b/presentation/20241119_RSNOG10_Livio_Morina.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d9b47709ad211e76b599abf39a63e41d6fbff5d0 GIT binary patch literal 2611295 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
  • &@G-e$0U#|!DAKXu1pT6Oog7; z4O0esmrW=^;%H9nNXvM7J(Bux2nV`(&k59$X08@C$B2QSAk<%$r5je^rTx6`-;dRXPAc|0+Za%{QcDecZ17P#B| zcUKGid2zrieRDgbe?pM4b8$2O4dFPSvV&U0Q{|Vl&~8e`Fe0oeiEQ%gYxS3h#$FF? z6~#TyTr4>#&CK4u_8?{Yz}&+3F$6V+g>t8%;c6Ap=(SPs=W*eZmgGAU#~+oVKJRq<&Z9qq2P-7)YR{bexQcu_xh9{HAvmk{H57Qntd7|g zNf5*JV2w79^7!N;S>U*MrDwxM1mWN$%&^gF(%nX@Z&JxVN^M)Ekh6?4dzLk^NYdz7 z%^?cTMRf+b$tsUd9TQEJx0LerlX&C<5$o?8pV9_xq|yyLpY@R?)gvwtc}=(6^wa#{ z{CWi~gN947wDCcG>*>2}OQV4P?;YuOPy8Q9`92UtAq0)f&%e45l=b5XKjjw*ai^^h zaqL01k_l$<3z0Soq<+x(6(Av4vX#X^VZPA)E>5WcE*^OqJePS&j5JTx zXn2&U!1~STK``a2G0FSmHxZ-NRvLKGD(AL^xX1HLwNZ0ZL0Vs~J&c;Fph0hTwMK*M zZl^sE2Ks5?1{+NS>EMUqV=1&odvT2s;#Kr~XXASr(YRxuu`I=^PQN9P`&hyWL!MFX ztK3-}gT(&`nmHTObWc_h#_ou{gE6>8l%IE~LdV%oDcU=qz=BBuO`TijHP=x~v2iduEUCHEf zR&|y#HVX3ViR;*+4t9c$jgZdK8(&E(QSk@9*q-`SFpYJ2@yKL^&6FsJER*TAHQRt1ZciOQrmhP!9H_ zV|(B4Jb)@qhG#HUanK=sG}N)3tkW+T+{O-@G~G&DO4UQ=nsrdK?eabx>D#R`Nx(q7 zSs9Cm4l-jf(SC(C+;>G|-NXtzYm9i@C(0hxIG*cjVkRUCZh*UUlOJu zf?qp;4v|^F7k{ph$bUdc#C$SI*W^r+ECo-B5+0nI7V?D}@SX7y#>x_wOaQH1zWn~i z-5{h4!A2+E1C3dI%NB%XpO1Ui@6drDfmoT@M<-gSzS26xN*`78Y{FTRTuT=j#t7wG zj*Ev!of0r?F2fS#*)?K|$UBx7s{7=nT^(t-Zy5b4BMAYO( zbt0krXw7pZ!#|l570WoR%hVAHKU=MGAomn2C4UrI>=Wc>A4u9wGbz(F35)F-@15&! z&{il`;pozbmZ06I1Zu{J^hK1$BG8XCGfD0IoMRs&=M`EY2oIKlWMVna#(S-#k|SeX zN0^Cxr22#thLcd1JLfd>14gJye@(X2)$n4H+w<)tsnMlFrViE^Uc^~Vd+wO!(NgR# zxuXYmoul+jGQP?6FKpiSWPo1^_`t(?<

    $#6A`a&R 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%0AB`VFhJBxl#G=@DxYM_SYEq$v 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 @k92hM$!c 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≷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 z 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

    4P@zx6ugsG4h&kn@mBV4Du;a%5? z=_1vRr3LxG=0{x|s$JCRW^#E`-%8Q$_9Dw5tpOvXU}DYezo^HMa8WDicitEoeQX|W zj;1fX=QumNwQU_NWCx8%Y4X^+p8vF(v=Sp+iCyZzGf{cNP-{SnnY7(!j@0+lZ(Z#N z6cpL1qcX(}Bwu{KS5O_eRkAl#L-4@UjJgeUF&t&;oktw?`&5gpP1dHTIppxCBXv7B z`rKE7iWoDa+VLU)1RZ2P9Gtx@kCAi!l{?XeIA$6f~E3+$?+9Q*F;*kVp%9?EBO)eH1~+_<6wHF8wR^Ea?2 zgSleLWyBAAgx9PO(BS&ikSX#CIby}46Dx6VFQC0w{gu_!7B(i6HE9L3Wp~}=rlN$XZ`v6(MQRm zF;91Nh~pX!e2UiABo>XfsgPO!74D6xF_Dt;eP5T$Ym%|t>x_p7eq$GGy}tR=C-?fy z-_`vZuB)ADMgnye)C`gMNWZm!Qw_RnSyNMZrUT3ODPP%Eu z2L*k^iBBCdvf)#-Nq%fpCaz%${k)E+K&Ne;fq$Dmi=-(#K#_gwqZ2~~#JEX{U;E=u z%YIJV0S+4lq)t3tZ81Jn;wkBG^D+In95OIxr4Y}Pqp1m#0Rf3nZI<&Mr`p}e*NkhX z3~a%@wxv4NGGzqwHd%K?qACD8uwAM-=$PV33+GNI_r1+>R}z|it*gvNmzH7I-0&v` zKXVH+JS{Z#V5O-EF=+feK{99?yzOigfS0H#=o3fS)yxFD2_4SSpPn-0lu&EqSr_!? zurHdG`vV1gm1ZbUmYL2GHaip2DT2i^(TalT_m0yfML}|Ql#I3|cBHyi&fGAvL|Jg% ziVyTmB>yj;xlmAV0k

    Le4($mZMd=GOw5{5$#XPTrmhJpKZJV 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�sK1c>*BUh*m}kqa!v+R62r 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≧C+&Mn92QT3Nq<2* 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

    OsZT=0p6zUg5J)O$UkcgPArUCIn_T66IlSP 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%0AyP%K*zk*F@g&Mg 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 HCu>o9w|tA=iEPpSIi;79 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

    ->woO`aIANC7HU2n=Fwkeul9>%6k%e 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

    |gH~jh9|COc2 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²D=^)>K@GAssN#y~;p(|Eb0C+`EHA3;{QIXRo!T#@PaLHI)zq33 z#Ci0$_pAPiufR$-_8W%OCK*h*r6q2CRJ|2@Ib42mDRpJZ02AMjK>Zl#&`!*dG@-gg ziA`S`ET7=*2GZne)QggwD`!%AyNs=q$h(q(f~lfe9o(}_?tps$9qp6+SBVEfU}SH> zFt>uEpa0?8|L%h22SX=5!aA04x2iv?28?O3WZsF!UVmzk&~KZ2k}*={V=c^?CdEtq zja(i;Kj$a(E-lN+>0lAyk88Nhf)9La)cZU(6enF?(V=%Tg8DkNr`}LE!jT#WyO@K9 z7Gc?6+zk4gJLnx`I3512f2U=J=i5nno447-&!|kPQKm9mYx#}@$yHx_v!#rtxw>E4 z)!DVRt-eASj-*dl)4y|e{;ag%gMxd|l`i_&xOKx&Icq@zsL+gs>qVB96-9PMw$`kv ztvhIcTp?nig0tW;Xp^{VJD5Kp5%@FJ+fL1Bu5G% zj&4bgZ@V08?!{(2R8z%NSJP|C*duOOjFT#>_72J^qSKJ+Lo>e`tMAi8g^to|)>hZh z*QFCc#Xs!i+VN7B_7SIi^~lXafq)Q*v)#W|5To2b;Gk0lB_w1|A94zBjiI*$RlSdo zKFVshbg#KTh_ngn#b@Y4oa=sTZRYj5ytv{|QnpiNXE#ksBy4p9S$m0COP|>8oHM`g z@9iB0S%psMH)&}?NJKYh)X{k%zik;-88qi*7nMApjNirdN-emFg%uJ`reLynz*X0PgoMaNqvjJDo!;U?SO*9bKizHJ_fp^;wuc?XJnvv1 znwWbcoDUKSHX|-3z1HfZo8N45KS86X@=#eBSMhOVJ~_y0LpJJa>3Z}V&EZZZrHKh3 z+(2qSy$RjslBtscDyko|wk@n*iTaG7a14A{$-d98_3T+=hjqmlY;;5%r!eYnzdI&T zFxcQi2Afq30B;9le(t-hY>WN5hl_)Su*rRK6GZ2g_jaNDCjA$R5HrK+ZAa``_y{1X z3uo2WfeNia`8`xAQ%$w)()u@asHBf6oXvCfP^j1T#U;Q;#kZZy%i-F6bdENBZ?6PA zII?qR5!iY+j*`if>*Gjkf`9Ri~@DW=AQ|lFf2{ z?6SiBqTk*9v(V6PmP1}SfIYupnh+ll-gqmXVNH~JLq07pe8lBbm+77z`7^j0coq)6uGN=rK{fE3~MH zGgGA}S}=W1WW7u|*EZ2vYq=$(TG91`cXrTqr7piEe`q0*cmjZ;^c($@lL4xRBPErIzhSo`0V6@ke~!*ah{Xo zRF0}y85YqrFbF0p@PbBT%~Vk{EBKwB+YDZ093#&LuBOQfx6Z zPRq*+p3W*`Uw`4@UI`*$LcO!QIHg{DJ5TQL+H9JNa$;f{_2S94YX1C4T?g23Mn>_R2n7WHvcE8A)}XUa_UQ zt&Me($ejlb3oK8Gt+_dn(oJy$|Kq!oYCLpAZK6bUll`~s*)$K2_~$6o=C&pYdKIfV zk9O%?3#Bg=`DV2D�yKwXM)i0P#5r`-0|AhCH) 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

    8mQyj017A5s&_3j*K2vZWc|a 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⩔Kq&( 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�(s8Iu06dw*h}>tCJt$J2IVi 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%0D)6`K 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

    O`N4ZM7ms7`ZZE4v>OdbGoX_g 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%0A^;EIJ_Nmm~) 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

    -Ru1Sk!fTK=HnSXK&G*PkTC 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


    Z!_8 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 z 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 nFZPDoe>@ig+efY3jaR<_W%f= literal 0 HcmV?d00001 diff --git a/presentations/index.html b/presentations/index.html index 04e76ee1..80f1c0ad 100644 --- a/presentations/index.html +++ b/presentations/index.html @@ -185,6 +185,7 @@

    Presentations

    2024

      +
    • What's new on PeeringDB? at RSNOG 10, Belgrade, RS - November 19, 2024 - Livio Morina
    • What's new on PeeringDB? at 8th South African Peering Forum, Cape Town, ZA - November 14, 2024 - Obinna Adumike
    • What's new on PeeringDB? at nog.fi meeting 2024.11, Helsinki, FI - November 6, 2024 - Livio Morina
    • PeeringDB Update at RIPE 89, Prague, CZ - October 31, 2024 - Leo Vegoda
    • diff --git a/search/search_index.json b/search/search_index.json index 8c91c16d..66e3f689 100644 --- a/search/search_index.json +++ b/search/search_index.json @@ -1 +1 @@ -{"config":{"indexing":"full","lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"About PeeringDB How can PeeringDB help me to interconnect? Policies By using this service, you agree to adhere to PeeringDB's Acceptable Use Policy . The Admin Committee Guidelines and Criteria for Approving Networks, IXPs, and Facilities documents PeeringDB\u2019s registration approval process. Getting started Several short HOWTOs provide a beginner detailed instructions on how to get started using PeeringDB. Create an account and register in PeeringDB. We also have a glossary of PeeringDB terms. Getting help Please log bugs and feature requests at GitHub . Questions, comments and everything else should go to support@peeringdb.com . Mailing lists We have changed the way in which PeeringDB will be announcing future enhancements, changes, maintenance windows, and other information. If you would like to be notified of certain events, or participate in certain discussions, please subscribe to one of the following email lists: PeeringDB Announce All PeeringDB administrative announcement information, such as upgrades, maintenances, outages, etc. PeeringDB Governance Discussion list for PeeringDB governance issues. This is a community-based effort, the community\u2019s input will help guide the future of the PeeringDB as it has always done. PeeringDB Technical Discussion about PeeringDB technical topics. PeeringDB Translate Discussions about PeeringDB translations. PeeringDB User-Discuss All other topics. Our goal is to give you all the information you want, and no more. Please subscribe to any of these lists you feel are appropriate, or none. You will still be able to use the database even if you are not subscribed to any lists. Quick API start PeeringDB is available at https://www.peeringdb.com/ with self-describing API docs at https://www.peeringdb.com/apidocs/ . More thorough docs are at API Specs , but in a nutshell, just prepend the URL with api/ to get that object in JSON. For example: https://www.peeringdb.com/net/1 becomes: https://www.peeringdb.com/api/net/1 List all via API by taking the id off: https://www.peeringdb.com/api/net Local database replication is accomplished with this command line tool , please see the documentation for more information. Release notes and schedule The release notes and schedule page lists upcoming releases, and the GitHub issues and a summary of what has changed in PeeringDB software releases. Guides [es] Gu\u00eda corta para uso de peeringdb.com - Fabi\u00e1n Mej\u00eda [pt-BR] Guia de cadastro de informa\u00e7\u00f5es de ASNs no PeeringDB - Julimar Lunguinho Mendes / Equipe de Engenharia [pt-BR] Guia de cadastro de informa\u00e7\u00f5es de Facilities no PeeringDB - Julimar Lunguinho Mendes / Equipe de Engenharia Tools The tools page features tools developed by PeeringDB users. Tutorials and workshops High-level HOWTOs provide a beginner detailed instructions on how to get started using PeeringDB. PDB 101 in 20 Minutes at Peering Asia 6.0 - November 5, 2024 - Arnold Nipper PeeringDB Tutorial, learning the GUI and the API at APRICOT 2022 - February 25, 2022 - Arnold Nipper The How-to Guide at Teraco Virtual Tech Day with PeeringDB - May 6, 2021 - Ben Ryall PeeringDB Tutorial, learning the GUI and the API at APRICOT 2020 , Melbourne, AU - February 20, 2020 - Arnold Nipper How is PeeringDB organised? and The PeeringDB API at DENOG11 , Hamburg, DE - November 10, 2019 - Arnold Nipper PeeringDB Workshop at AfPIF-10 , Balaclava, MV - August 20, 2019 - Arnold Nipper ( video starts at 14:00) Part 1: Intro , Part 2: Main , Part 3: API at APRICOT 2019 , Daejeon, KR - February 27, 2018 - Arnold Nipper ( video ) Presentations The presentations 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 (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 . Beta development The PeeringDB beta server 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 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 MySQL dumps from July, 29 2010 to March 14, 2016 are archived by CAIDA at http://data.caida.org/datasets/peeringdb-v1/ . How you can help Check your entries and make sure everything looks correct Port any scripts to the new API Send us feedback Improve these docs Add or improve a translation Thanks for your feedback, we look forward to hearing from you!","title":"About"},{"location":"#about-peeringdb","text":"","title":"About PeeringDB"},{"location":"#how-can-peeringdb-help-me-to-interconnect","text":"","title":"How can PeeringDB help me to interconnect?"},{"location":"#policies","text":"By using this service, you agree to adhere to PeeringDB's Acceptable Use Policy . The Admin Committee Guidelines and Criteria for Approving Networks, IXPs, and Facilities documents PeeringDB\u2019s registration approval process.","title":"Policies"},{"location":"#getting-started","text":"Several short HOWTOs provide a beginner detailed instructions on how to get started using PeeringDB. Create an account and register in PeeringDB. We also have a glossary of PeeringDB terms.","title":"Getting started"},{"location":"#getting-help","text":"Please log bugs and feature requests at GitHub . Questions, comments and everything else should go to support@peeringdb.com .","title":"Getting help"},{"location":"#mailing-lists","text":"We have changed the way in which PeeringDB will be announcing future enhancements, changes, maintenance windows, and other information. If you would like to be notified of certain events, or participate in certain discussions, please subscribe to one of the following email lists: PeeringDB Announce All PeeringDB administrative announcement information, such as upgrades, maintenances, outages, etc. PeeringDB Governance Discussion list for PeeringDB governance issues. This is a community-based effort, the community\u2019s input will help guide the future of the PeeringDB as it has always done. PeeringDB Technical Discussion about PeeringDB technical topics. PeeringDB Translate Discussions about PeeringDB translations. PeeringDB User-Discuss All other topics. Our goal is to give you all the information you want, and no more. Please subscribe to any of these lists you feel are appropriate, or none. You will still be able to use the database even if you are not subscribed to any lists.","title":"Mailing lists"},{"location":"#quick-api-start","text":"PeeringDB is available at https://www.peeringdb.com/ with self-describing API docs at https://www.peeringdb.com/apidocs/ . More thorough docs are at API Specs , but in a nutshell, just prepend the URL with api/ to get that object in JSON. For example: https://www.peeringdb.com/net/1 becomes: https://www.peeringdb.com/api/net/1 List all via API by taking the id off: https://www.peeringdb.com/api/net Local database replication is accomplished with this command line tool , please see the documentation for more information.","title":"Quick API start"},{"location":"#release-notes-and-schedule","text":"The release notes and schedule page lists upcoming releases, and the GitHub issues and a summary of what has changed in PeeringDB software releases.","title":"Release notes and schedule"},{"location":"#guides","text":"[es] Gu\u00eda corta para uso de peeringdb.com - Fabi\u00e1n Mej\u00eda [pt-BR] Guia de cadastro de informa\u00e7\u00f5es de ASNs no PeeringDB - Julimar Lunguinho Mendes / Equipe de Engenharia [pt-BR] Guia de cadastro de informa\u00e7\u00f5es de Facilities no PeeringDB - Julimar Lunguinho Mendes / Equipe de Engenharia","title":"Guides"},{"location":"#tools","text":"The tools page features tools developed by PeeringDB users.","title":"Tools"},{"location":"#tutorials-and-workshops","text":"High-level HOWTOs provide a beginner detailed instructions on how to get started using PeeringDB. PDB 101 in 20 Minutes at Peering Asia 6.0 - November 5, 2024 - Arnold Nipper PeeringDB Tutorial, learning the GUI and the API at APRICOT 2022 - February 25, 2022 - Arnold Nipper The How-to Guide at Teraco Virtual Tech Day with PeeringDB - May 6, 2021 - Ben Ryall PeeringDB Tutorial, learning the GUI and the API at APRICOT 2020 , Melbourne, AU - February 20, 2020 - Arnold Nipper How is PeeringDB organised? and The PeeringDB API at DENOG11 , Hamburg, DE - November 10, 2019 - Arnold Nipper PeeringDB Workshop at AfPIF-10 , Balaclava, MV - August 20, 2019 - Arnold Nipper ( video starts at 14:00) Part 1: Intro , Part 2: Main , Part 3: API at APRICOT 2019 , Daejeon, KR - February 27, 2018 - Arnold Nipper ( video )","title":"Tutorials and workshops"},{"location":"#presentations","text":"The presentations page has a complete list of PeeringDB presentations that were given at events around the world.","title":"Presentations"},{"location":"#open-source","text":"","title":"Open source"},{"location":"#source-code-audit","text":"PeeringDB commissioned a full audit of PeeringDB's source code in 2018. Computest (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 .","title":"Source code audit"},{"location":"#beta-development","text":"The PeeringDB beta server 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 automagically redirects to the list of issues on PeeringDB's GitHub repository that document all of the changes in the current beta version.","title":"Beta development"},{"location":"#historical-data","text":"MySQL dumps from July, 29 2010 to March 14, 2016 are archived by CAIDA at http://data.caida.org/datasets/peeringdb-v1/ .","title":"Historical data"},{"location":"#how-you-can-help","text":"Check your entries and make sure everything looks correct Port any scripts to the new API Send us feedback Improve these docs Add or improve a translation Thanks for your feedback, we look forward to hearing from you!","title":"How you can help"},{"location":"api_specs/","text":"RESTful API endpoints and specifications Object types and tags Each object has an associated short hand tag you can use, current available tags are listed at https://www.peeringdb.com/apidocs/ . Requests URL The URL base appended with /api/ , append with object type and optionally object primary key Object type is not case sensitive. For example: https://www.peeringdb.com/api/ OBJ / id Encoding To specify the output format, either use the Accept: HTTP header Accept: application/json Or use extension type https://www.peeringdb.com/api/network/42.json JSON all returns fit into object: { meta: { status: message: } data: [ {}, {} ] } meta are optional data always array Note Please let us know what serializers you'd like to see. Authentication Basic HTTP authorization In order to access the API as a guest simply omit any authentication Operations GET: multiple objects endpoint: GET /api/ OBJ optional URL parameters 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 returns array of objects HTTP: GET /api/OBJ curl: curl -X GET https://:@peeringdb.com/api/OBJ Nested data Any field ending in the suffix _set (with the exception of 'irr_as_set') is a list of objects in a relationship with the parent object, you can expand those lists with the 'depth' parameter as explained below. 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 single, 'depth' here will ONLY expand sets, no single relationships will be expanded - this is by design Depth 0: don't expand anything (default) 1: expand all first level sets to ids 2: expand all first level sets to objects curl: curl -X GET https://:@peeringdb.com/api/OBJ?depth=2 Querying examples exact: curl -X GET https://:@peeringdb.com/api/OBJ?name=something modifier: curl -X GET https://:@peeringdb.com/api/OBJ?name__contains=something Querying modifiers numeric fields: __lt, less than __lte, less than equal __gt, greater than __gte, greater than equal __in, value inside set of values (comma separated) string fields: __contains, field value contains this value __startswith, field value starts with this value __in, value inside set of values (comma separated) Since You can use the since argument with a unix timestamp (seconds) to retrieve all objects updated since then. ?since=1443414678 GET: single object endpoint: GET /api/ OBJ / id required URL parameters id int optional URL parameters depth int defaults to 2 aka. nested sets and objects will be expanded fields str comma separated list of field names - only matching fields will be returned in the data returns single object in an array HTTP: GET /api/OBJ/42 curl: curl -H \"Accept: application/json\" -X GET https://:@peeringdb.com/api/OBJ/42 Nested data Any field ending in the suffix _set (with the exception of 'irr_as_set') is a list of objects in a relationship with the parent object, you can expand those lists with the 'depth' parameter as explained below. 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 relationship 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 1 to 4: expand all sets and related objects according to level of depth specified 2 is default POST: create new object endpoint: POST /api/ OBJ required URL parameters id int fields to post in either JSON obj \"{}\" or urlencoded field=value curl: curl -H \"Content-Type: application/json\" -X POST --data \"{\\\"state\\\":\\\"active\\\"}\" https://:@peeringdb.com/api/OBJ PUT: edit object endpoint: PUT /api/ OBJ / id required URL parameters id int fields to post in either JSON obj \"{}\" or urlencoded field=value you have to provide the complete object with modified data. Retrieve data with depth=0, modify and then put up again. HTTP: PUT /api/OBJ/42 curl: curl -H \"Content-Type: application/json\" -X PUT --data \"{\\\"state\\\":\\\"active\\\"}\" https://:@peeringdb.com/api/OBJ/42 DELETE: delete object endpoint: DELETE /api/ OBJ / id required URL parameters id int HTTP: DELETE /api/OBJ/42 curl: curl -H \"Accept: application/json\" -X DELETE https://:@peeringdb.com/api/OBJ/42 Deleted objects can be retrieved by filtering on status=deleted with since > 0. Real world example Q: I'd like to search for Microsoft's, Salesforce.com's and Amazon.com's peering points in Europe. How can I do this? A: You can use the API to perform complex queries, like in this example. curl -sG https://www.peeringdb.com/api/netixlan --data-urlencode net_id__in=694,1100,1418 --data-urlencode ix_id__in=`curl -sG https://www.peeringdb.com/api/ix --data-urlencode region_continent=Europe | jq -c '[.data[].id]' | sed 's/\\[//;s/\\]//'` | jq -c '.data[] | [.ix_id, .net_id, .ipaddr4, .ipaddr6, .speed]' | sort -V The query looks for netixlan records belonging to Microsoft, Salesforce.com and Amazone.com (net_id__in=694,1100,1418) which are constrained to IXes in Europe based on the output from the embedded query. The embedded query in single quotes looks for all IXes with \"Continental Region = Europe\". We do a little massaging on the IX ids to get a comma-separated list, which we then use as input in the query. curl -sG https://www.peeringdb.com/api/ix --data-urlencode region_continent=Europe | jq -c '[.data[].id]' | sed 's/\\[//;s/\\]//'","title":"API Specs"},{"location":"api_specs/#restful-api-endpoints-and-specifications","text":"","title":"RESTful API endpoints and specifications"},{"location":"api_specs/#object-types-and-tags","text":"Each object has an associated short hand tag you can use, current available tags are listed at https://www.peeringdb.com/apidocs/ .","title":"Object types and tags"},{"location":"api_specs/#requests","text":"","title":"Requests"},{"location":"api_specs/#url","text":"The URL base appended with /api/ , append with object type and optionally object primary key Object type is not case sensitive. For example: https://www.peeringdb.com/api/ OBJ / id","title":"URL"},{"location":"api_specs/#encoding","text":"To specify the output format, either use the Accept: HTTP header Accept: application/json Or use extension type https://www.peeringdb.com/api/network/42.json JSON all returns fit into object: { meta: { status: message: } data: [ {}, {} ] } meta are optional data always array Note Please let us know what serializers you'd like to see.","title":"Encoding"},{"location":"api_specs/#authentication","text":"Basic HTTP authorization In order to access the API as a guest simply omit any authentication","title":"Authentication"},{"location":"api_specs/#operations","text":"","title":"Operations"},{"location":"api_specs/#get-multiple-objects","text":"endpoint: GET /api/ OBJ optional URL parameters 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 returns array of objects HTTP: GET /api/OBJ curl: curl -X GET https://:@peeringdb.com/api/OBJ","title":"GET: multiple objects"},{"location":"api_specs/#nested-data","text":"Any field ending in the suffix _set (with the exception of 'irr_as_set') is a list of objects in a relationship with the parent object, you can expand those lists with the 'depth' parameter as explained below. 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 single, 'depth' here will ONLY expand sets, no single relationships will be expanded - this is by design","title":"Nested data"},{"location":"api_specs/#depth","text":"0: don't expand anything (default) 1: expand all first level sets to ids 2: expand all first level sets to objects curl: curl -X GET https://:@peeringdb.com/api/OBJ?depth=2","title":"Depth"},{"location":"api_specs/#querying-examples","text":"exact: curl -X GET https://:@peeringdb.com/api/OBJ?name=something modifier: curl -X GET https://:@peeringdb.com/api/OBJ?name__contains=something","title":"Querying examples"},{"location":"api_specs/#querying-modifiers","text":"numeric fields: __lt, less than __lte, less than equal __gt, greater than __gte, greater than equal __in, value inside set of values (comma separated) string fields: __contains, field value contains this value __startswith, field value starts with this value __in, value inside set of values (comma separated)","title":"Querying modifiers"},{"location":"api_specs/#since","text":"You can use the since argument with a unix timestamp (seconds) to retrieve all objects updated since then. ?since=1443414678","title":"Since"},{"location":"api_specs/#get-single-object","text":"endpoint: GET /api/ OBJ / id required URL parameters id int optional URL parameters depth int defaults to 2 aka. nested sets and objects will be expanded fields str comma separated list of field names - only matching fields will be returned in the data returns single object in an array HTTP: GET /api/OBJ/42 curl: curl -H \"Accept: application/json\" -X GET https://:@peeringdb.com/api/OBJ/42","title":"GET: single object"},{"location":"api_specs/#nested-data_1","text":"Any field ending in the suffix _set (with the exception of 'irr_as_set') is a list of objects in a relationship with the parent object, you can expand those lists with the 'depth' parameter as explained below. 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 relationship 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 ... } }","title":"Nested data"},{"location":"api_specs/#depth_1","text":"0: don't expand anything 1 to 4: expand all sets and related objects according to level of depth specified 2 is default","title":"Depth"},{"location":"api_specs/#post-create-new-object","text":"endpoint: POST /api/ OBJ required URL parameters id int fields to post in either JSON obj \"{}\" or urlencoded field=value curl: curl -H \"Content-Type: application/json\" -X POST --data \"{\\\"state\\\":\\\"active\\\"}\" https://:@peeringdb.com/api/OBJ","title":"POST: create new object"},{"location":"api_specs/#put-edit-object","text":"endpoint: PUT /api/ OBJ / id required URL parameters id int fields to post in either JSON obj \"{}\" or urlencoded field=value you have to provide the complete object with modified data. Retrieve data with depth=0, modify and then put up again. HTTP: PUT /api/OBJ/42 curl: curl -H \"Content-Type: application/json\" -X PUT --data \"{\\\"state\\\":\\\"active\\\"}\" https://:@peeringdb.com/api/OBJ/42","title":"PUT: edit object"},{"location":"api_specs/#delete-delete-object","text":"endpoint: DELETE /api/ OBJ / id required URL parameters id int HTTP: DELETE /api/OBJ/42 curl: curl -H \"Accept: application/json\" -X DELETE https://:@peeringdb.com/api/OBJ/42 Deleted objects can be retrieved by filtering on status=deleted with since > 0.","title":"DELETE: delete object"},{"location":"api_specs/#real-world-example","text":"Q: I'd like to search for Microsoft's, Salesforce.com's and Amazon.com's peering points in Europe. How can I do this? A: You can use the API to perform complex queries, like in this example. curl -sG https://www.peeringdb.com/api/netixlan --data-urlencode net_id__in=694,1100,1418 --data-urlencode ix_id__in=`curl -sG https://www.peeringdb.com/api/ix --data-urlencode region_continent=Europe | jq -c '[.data[].id]' | sed 's/\\[//;s/\\]//'` | jq -c '.data[] | [.ix_id, .net_id, .ipaddr4, .ipaddr6, .speed]' | sort -V The query looks for netixlan records belonging to Microsoft, Salesforce.com and Amazone.com (net_id__in=694,1100,1418) which are constrained to IXes in Europe based on the output from the embedded query. The embedded query in single quotes looks for all IXes with \"Continental Region = Europe\". We do a little massaging on the IX ids to get a comma-separated list, which we then use as input in the query. curl -sG https://www.peeringdb.com/api/ix --data-urlencode region_continent=Europe | jq -c '[.data[].id]' | sed 's/\\[//;s/\\]//'","title":"Real world example"},{"location":"blogs/","text":"PeeringDB Blogs 2024 PeeringDB blogs provide deeper insight into the releases and product roadmap. October 2024 PeeringDB Product Update - October 4, 2024 Data Quality \u2014 Removing Closed Networks - September 7, 2024 Structured Data and More With PeeringDB - July 31, 2024 Containerized Deployment - July 12, 2024 Making beta.peeringdb.com, Search, and KMZ More Attractive - April 15, 2024 Better Search and Export - March 14, 2024 2023 Product Report - February 19, 2024 What happened to our web UI? - February 5, 2024 Better Data - January 19, 2024 2023 PeeringDB Whois Service to Close - November 3, 2023 Your Internal Source of Truth Can Now Push Updates to PeeringDB - November 2, 2023 See Locations in PeeringDB on a Map - October 25, 2023 Alphabetical Search Results - July 21, 2023 Network Type \u2013 What did you tell us? - July 12, 2023 We're Updating our Web UI - July 6, 2023 Network Type \u2013 Your Input Sought - June 3, 2023 New Permission: Manage Peering Sessions - May 23, 2023 Search Gets Better - May 17, 2023 PeeringDB in Your Preferred Language - March 24, 2023 User Suggestions Improve PeeringDB Usability - March 24, 2023 Do You Want Your Configuration Management System to Update PeeringDB - February 23, 2023 PeeringDB's Product Roadmap for 2023 - February 6, 2023 Carrier Objects - January 24, 2023 PeeringDB 2022 Product Report - January 9, 2023 2022 Installing peeringdb-py at NANOG 86 - November 8, 2022 Introducing Analytics - November 3, 2022 Data Quality Improvements Rolled Out - October 26, 2022 API Writes now Need an API Key - September 25, 2022 Organizational Policy Features and More - September 25, 2022 PeeringDB 2022 User Survey - September 14, 2022 Faster PeeringDB Queries - No Limits - July 26, 2022 NANOG 85 Hackathon Project - April 25, 2022 Improve Your Account Security - And Check Our URL - March 28, 2022 2021 Survey Results and 2022 Product Roadmap - February 10, 2022 PeeringDB is Developed by its Community - January 17, 2022 2021 Guidelines for Registering in PeeringDB - October 21, 2021 Your Logo Goes Here! - October 12, 2021 More Details on Facilities - September 21, 2021 Changes to Contacts Marked as Private - September 14, 2021 PeeringDB 2021 User Survey - September 7, 2021 Automating Configuration - Why We Support the IX-F Member Export Schema - August 18, 2021 Advanced Search (Part 2) - July 23, 2021 Should PeeringDB Create a New \u201cCarrier\u201d Object? - July 5, 2021 Advanced Search (Part 1) - June 23, 2021 PeeringDB Can Bring Users to Your Application - May 24, 2021 Getting the Most from PeeringDB with User Developed Tools - May 4, 2021 Geographic Search - March 24, 2021 API Keys - March 10, 2021 2020 Survey Results and 2021 Product Roadmap - March 9, 2021 2020 Contributing Code to PeeringDB Just Got Easier - December 7, 2020 PeeringDB Release v2.24.0 - November 12, 2020 PeeringDB 2020 Satisfaction Survey - November 2, 2020 PeeringDB Release v2.23.0 - October 7, 2020","title":"Blogs"},{"location":"blogs/#peeringdb-blogs","text":"","title":"PeeringDB Blogs"},{"location":"blogs/#2024","text":"PeeringDB blogs provide deeper insight into the releases and product roadmap. October 2024 PeeringDB Product Update - October 4, 2024 Data Quality \u2014 Removing Closed Networks - September 7, 2024 Structured Data and More With PeeringDB - July 31, 2024 Containerized Deployment - July 12, 2024 Making beta.peeringdb.com, Search, and KMZ More Attractive - April 15, 2024 Better Search and Export - March 14, 2024 2023 Product Report - February 19, 2024 What happened to our web UI? - February 5, 2024 Better Data - January 19, 2024","title":"2024"},{"location":"blogs/#2023","text":"PeeringDB Whois Service to Close - November 3, 2023 Your Internal Source of Truth Can Now Push Updates to PeeringDB - November 2, 2023 See Locations in PeeringDB on a Map - October 25, 2023 Alphabetical Search Results - July 21, 2023 Network Type \u2013 What did you tell us? - July 12, 2023 We're Updating our Web UI - July 6, 2023 Network Type \u2013 Your Input Sought - June 3, 2023 New Permission: Manage Peering Sessions - May 23, 2023 Search Gets Better - May 17, 2023 PeeringDB in Your Preferred Language - March 24, 2023 User Suggestions Improve PeeringDB Usability - March 24, 2023 Do You Want Your Configuration Management System to Update PeeringDB - February 23, 2023 PeeringDB's Product Roadmap for 2023 - February 6, 2023 Carrier Objects - January 24, 2023 PeeringDB 2022 Product Report - January 9, 2023","title":"2023"},{"location":"blogs/#2022","text":"Installing peeringdb-py at NANOG 86 - November 8, 2022 Introducing Analytics - November 3, 2022 Data Quality Improvements Rolled Out - October 26, 2022 API Writes now Need an API Key - September 25, 2022 Organizational Policy Features and More - September 25, 2022 PeeringDB 2022 User Survey - September 14, 2022 Faster PeeringDB Queries - No Limits - July 26, 2022 NANOG 85 Hackathon Project - April 25, 2022 Improve Your Account Security - And Check Our URL - March 28, 2022 2021 Survey Results and 2022 Product Roadmap - February 10, 2022 PeeringDB is Developed by its Community - January 17, 2022","title":"2022"},{"location":"blogs/#2021","text":"Guidelines for Registering in PeeringDB - October 21, 2021 Your Logo Goes Here! - October 12, 2021 More Details on Facilities - September 21, 2021 Changes to Contacts Marked as Private - September 14, 2021 PeeringDB 2021 User Survey - September 7, 2021 Automating Configuration - Why We Support the IX-F Member Export Schema - August 18, 2021 Advanced Search (Part 2) - July 23, 2021 Should PeeringDB Create a New \u201cCarrier\u201d Object? - July 5, 2021 Advanced Search (Part 1) - June 23, 2021 PeeringDB Can Bring Users to Your Application - May 24, 2021 Getting the Most from PeeringDB with User Developed Tools - May 4, 2021 Geographic Search - March 24, 2021 API Keys - March 10, 2021 2020 Survey Results and 2021 Product Roadmap - March 9, 2021","title":"2021"},{"location":"blogs/#2020","text":"Contributing Code to PeeringDB Just Got Easier - December 7, 2020 PeeringDB Release v2.24.0 - November 12, 2020 PeeringDB 2020 Satisfaction Survey - November 2, 2020 PeeringDB Release v2.23.0 - October 7, 2020","title":"2020"},{"location":"faq/","text":"Frequently Asked Questions General What is PeeringDB? PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions. The database is a non-profit, community-driven initiative run and promoted by volunteers. It is a public tool for the growth and good of the Internet. Join the community and support the continued development of the Internet. How do I get started? See our Quick Start guide: http://docs.peeringdb.com/#quick-start Affiliation requests Q: How does affiliation to an organization work? A: After you have registered, go to your profile . If your organization owns a network (also called AS or ASN), type in the AS number into the field ASN . Then click on the button Affiliate . If your ASN already is in PeeringDB and your org record does not yet have an admin account this request will be sent to PeeringDB Support If your organisation already has one or more admins your request is forwarded to them. They will have to approve / deny your request If your ASN is not in PeeringDB this procedure will first try to retrieve information about this ASN via RDAP to prepopulate the net record and the org record in case it also does not exist. We also use information from this query to auto approve your request if the email address in the RDAP record matches your email address. If this fails your request will be sent to PeeringDB Support You may also use the field organisation to request affiliation to an existing or new organisation. Start typing the name of your company and select from the popup or create a new organisation. Your request is sent to your admins if there is one or to PeeringDB Support otherwise In any case you should get an answer either from your admin or PeeringDB Support . If you don't get an answer within two working days, please mail PeeringDB Support providing necessary information (ASN, Organization). Technical How do I query by ASN? You may type in the ASN in the search box, or for web: http://as42.peeringdb.com https://www.peeringdb.com/net?asn=42 For API: https://www.peeringdb.com/api/net?asn=42 Using /asn used to work, what happened? Please see http://lists.peeringdb.com/pipermail/pdb-announce/2016-March/000036.html for details. How do the new permissions work? Now there is an org entity which owns the records. A record can be a facility, an exchange point, or a network. Users are added to the org entity and can then be given access to any facility, any network, any exchange point, or anything the org itself owns. Authenticating via embedded user/pass in the URL Support for this depends on the client and some browsers have stopped supporting embedded authentication in the URL So for example https://:@peeringdb.com/api/net/1 may work or it may not depending on the browser you are using. Why are dates represented as strings in the API? Date strings are ISO 8601 to keep a standard format. Comparison operations such as __gt , __lt , etc all still work as expected. For fetching records against updated timestamp, you may also use ?since= How do I sync the whole database to my local machine? You may make a full local copy with https://github.com/peeringdb/peeringdb-py , see docs at http://peeringdb.github.io/peeringdb-py/cli/ The initial run will perform a full sync, while subsequent runs will incrementally update changed records. Alternatively peeringdb-simplesync can be used to maintain a mirror in PostgreSQL. When syncing to MySQL I get 'Illegal mix of collations' Such as: django.db.utils.OperationalError: (1267, \"Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='\") We will fix that when time allows, for the time being, just run: alter database peeringdb default character set utf8 default collate utf8_unicode_ci; 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. Governance and membership How does one become a PeeringDB member? Your organization does not need to be a Member to have an active account at PeeringDB.com, but Membership is available to those that do. Per the Bylaws, Membership is determined by having an active PeeringDB.com account, and a subscription to the pdb-gov mailing list. What are the Terms and Conditions for PeeringDB membership? Please see http://docs.peeringdb.com/gov/#organizational-documents for the legal aspects of PeeringDB. The Acceptable Use Policy is at https://www.peeringdb.com/aup . Are there any membership fees required for members? No, there are no membership fees required. The organization welcomes sponsorships as its method of financial support. Please see https://www.peeringdb.com/sponsors for more information on supporting the PeeringDB. Are there any liabilities imposed on members? 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.","title":"FAQs"},{"location":"faq/#frequently-asked-questions","text":"","title":"Frequently Asked Questions"},{"location":"faq/#general","text":"","title":"General"},{"location":"faq/#what-is-peeringdb","text":"PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions. The database is a non-profit, community-driven initiative run and promoted by volunteers. It is a public tool for the growth and good of the Internet. Join the community and support the continued development of the Internet.","title":"What is PeeringDB?"},{"location":"faq/#how-do-i-get-started","text":"See our Quick Start guide: http://docs.peeringdb.com/#quick-start","title":"How do I get started?"},{"location":"faq/#affiliation-requests","text":"Q: How does affiliation to an organization work? A: After you have registered, go to your profile . If your organization owns a network (also called AS or ASN), type in the AS number into the field ASN . Then click on the button Affiliate . If your ASN already is in PeeringDB and your org record does not yet have an admin account this request will be sent to PeeringDB Support If your organisation already has one or more admins your request is forwarded to them. They will have to approve / deny your request If your ASN is not in PeeringDB this procedure will first try to retrieve information about this ASN via RDAP to prepopulate the net record and the org record in case it also does not exist. We also use information from this query to auto approve your request if the email address in the RDAP record matches your email address. If this fails your request will be sent to PeeringDB Support You may also use the field organisation to request affiliation to an existing or new organisation. Start typing the name of your company and select from the popup or create a new organisation. Your request is sent to your admins if there is one or to PeeringDB Support otherwise In any case you should get an answer either from your admin or PeeringDB Support . If you don't get an answer within two working days, please mail PeeringDB Support providing necessary information (ASN, Organization).","title":"Affiliation requests"},{"location":"faq/#technical","text":"","title":"Technical"},{"location":"faq/#how-do-i-query-by-asn","text":"You may type in the ASN in the search box, or for web: http://as42.peeringdb.com https://www.peeringdb.com/net?asn=42 For API: https://www.peeringdb.com/api/net?asn=42","title":"How do I query by ASN?"},{"location":"faq/#using-asn-used-to-work-what-happened","text":"Please see http://lists.peeringdb.com/pipermail/pdb-announce/2016-March/000036.html for details.","title":"Using /asn used to work, what happened?"},{"location":"faq/#how-do-the-new-permissions-work","text":"Now there is an org entity which owns the records. A record can be a facility, an exchange point, or a network. Users are added to the org entity and can then be given access to any facility, any network, any exchange point, or anything the org itself owns.","title":"How do the new permissions work?"},{"location":"faq/#authenticating-via-embedded-userpass-in-the-url","text":"Support for this depends on the client and some browsers have stopped supporting embedded authentication in the URL So for example https://:@peeringdb.com/api/net/1 may work or it may not depending on the browser you are using.","title":"Authenticating via embedded user/pass in the URL"},{"location":"faq/#why-are-dates-represented-as-strings-in-the-api","text":"Date strings are ISO 8601 to keep a standard format. Comparison operations such as __gt , __lt , etc all still work as expected. For fetching records against updated timestamp, you may also use ?since=","title":"Why are dates represented as strings in the API?"},{"location":"faq/#how-do-i-sync-the-whole-database-to-my-local-machine","text":"You may make a full local copy with https://github.com/peeringdb/peeringdb-py , see docs at http://peeringdb.github.io/peeringdb-py/cli/ The initial run will perform a full sync, while subsequent runs will incrementally update changed records. Alternatively peeringdb-simplesync can be used to maintain a mirror in PostgreSQL.","title":"How do I sync the whole database to my local machine?"},{"location":"faq/#when-syncing-to-mysql-i-get-illegal-mix-of-collations","text":"Such as: django.db.utils.OperationalError: (1267, \"Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='\") We will fix that when time allows, for the time being, just run: alter database peeringdb default character set utf8 default collate utf8_unicode_ci;","title":"When syncing to MySQL I get 'Illegal mix of collations'"},{"location":"faq/#what-does-the-never-via-route-servers-flag-mean-and-how-does-it-work","text":"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.","title":"What does the Never via route servers flag mean and how does it work?"},{"location":"faq/#governance-and-membership","text":"","title":"Governance and membership"},{"location":"faq/#how-does-one-become-a-peeringdb-member","text":"Your organization does not need to be a Member to have an active account at PeeringDB.com, but Membership is available to those that do. Per the Bylaws, Membership is determined by having an active PeeringDB.com account, and a subscription to the pdb-gov mailing list.","title":"How does one become a PeeringDB member?"},{"location":"faq/#what-are-the-terms-and-conditions-for-peeringdb-membership","text":"Please see http://docs.peeringdb.com/gov/#organizational-documents for the legal aspects of PeeringDB. The Acceptable Use Policy is at https://www.peeringdb.com/aup .","title":"What are the Terms and Conditions for PeeringDB membership?"},{"location":"faq/#are-there-any-membership-fees-required-for-members","text":"No, there are no membership fees required. The organization welcomes sponsorships as its method of financial support. Please see https://www.peeringdb.com/sponsors for more information on supporting the PeeringDB.","title":"Are there any membership fees required for members?"},{"location":"faq/#are-there-any-liabilities-imposed-on-members","text":"No, there are not.","title":"Are there any liabilities imposed on members?"},{"location":"faq/#to-register-network-information-in-the-peeringdb-is-an-organization-required-to-join-as-a-member","text":"No, that isn't necessary.","title":"To register network information in the PeeringDB, is an organization required to join as a member?"},{"location":"glossary/","text":"Glossary This glossary focuses on terms that are specific to PeeringDB. Other organizations provide glossaries of a wide range of Internet infrastructure terminology. These include: APNIC Euro-IX ICANN RIPE NCC The first set of definitions describes object types and the second set defines the different kinds of contacts. PeeringDB specific terms Object Name Definition fac The name of the database object representing interconnection facilities. Facility A place where networks can connect with other networks. Some interconnection facilities are data centers or suites within data centers. Others are significantly smaller. facix The name of an object derived from the intersection of a fac and an ix object. This happens when an IXP has a presence at an interconnection facility. ix The name of the database object representing IXPs. ix-f The Internet Exchange Federation is a group of four regional IXP Associations. In the context of PeeringDB, their name is applied to the import of JSON structured data that complies with the IX-F Member Export Schema . IXP An infrastructure for interconnecting three or more Autonomous Systems. net The name of the database object representing networks. netix The name of an object derived from the intersection of a net and an ix object. This happens when a network is connected to an IXP. Network An Autonomous System, as defined in RFC 1930 . PeeringDB PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions. poc A Point of Contact for a specific functional role at an organization (see below). Contact role types Not all organizations will have all contact types. For example, an academic institution might not need a sales contact. Role Description Abuse A contact address where reports of abuse can be submitted. Maintenance A contact address for the receipt of maintenance notifications, such as the scheduling of maintenance windows from peers. NOC A contact address for a Network Operations Center. This is the address to use when discussing network anomalies. Policy A contact address for peering and interconnection requests and questions. Public Relations A contact address for an organization\u2019s PR or marketing team. Sales A contact address for an organization\u2019s sales team. Technical A contact address for non-routine technical questions that aren't handled by the NOC.","title":"Glossary"},{"location":"glossary/#glossary","text":"This glossary focuses on terms that are specific to PeeringDB. Other organizations provide glossaries of a wide range of Internet infrastructure terminology. These include: APNIC Euro-IX ICANN RIPE NCC The first set of definitions describes object types and the second set defines the different kinds of contacts.","title":"Glossary"},{"location":"glossary/#peeringdb-specific-terms","text":"Object Name Definition fac The name of the database object representing interconnection facilities. Facility A place where networks can connect with other networks. Some interconnection facilities are data centers or suites within data centers. Others are significantly smaller. facix The name of an object derived from the intersection of a fac and an ix object. This happens when an IXP has a presence at an interconnection facility. ix The name of the database object representing IXPs. ix-f The Internet Exchange Federation is a group of four regional IXP Associations. In the context of PeeringDB, their name is applied to the import of JSON structured data that complies with the IX-F Member Export Schema . IXP An infrastructure for interconnecting three or more Autonomous Systems. net The name of the database object representing networks. netix The name of an object derived from the intersection of a net and an ix object. This happens when a network is connected to an IXP. Network An Autonomous System, as defined in RFC 1930 . PeeringDB PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions. poc A Point of Contact for a specific functional role at an organization (see below).","title":"PeeringDB specific terms"},{"location":"glossary/#contact-role-types","text":"Not all organizations will have all contact types. For example, an academic institution might not need a sales contact. Role Description Abuse A contact address where reports of abuse can be submitted. Maintenance A contact address for the receipt of maintenance notifications, such as the scheduling of maintenance windows from peers. NOC A contact address for a Network Operations Center. This is the address to use when discussing network anomalies. Policy A contact address for peering and interconnection requests and questions. Public Relations A contact address for an organization\u2019s PR or marketing team. Sales A contact address for an organization\u2019s sales team. Technical A contact address for non-routine technical questions that aren't handled by the NOC.","title":"Contact role types"},{"location":"gov/","text":"PeeringDB Governance Mission Statement PeeringDB, a nonprofit member-based organization, facilitates the interconnection of Internet networks globally, with user-maintained information. Organizational Documents Organizational Consent (2015-12-08) Certificate and Articles of Incorporation (2015-12-16) Bylaws (2024-05-18) Policies Acceptable Use Policy Conflict of Interest Policy Data Ownership Policy Financial Controls Policy Press Release Policy Privacy Policy Member Meetings April 18th, 2024: Agenda - Minutes - Audio - Video April 13th, 2023: Agenda - Minutes April 12th, 2022: Agenda - Minutes - Audio April 8th, 2021: Agenda - Minutes - Audio April 17th, 2020: Agenda - Minutes - Audio April 25th, 2019: Agenda - Minutes - Audio April 19th, 2018: Agenda - Minutes - Audio April 20th, 2017: Agenda - Minutes - Audio April 21st, 2016: Agenda - Minutes - Audio Board Meetings & Consents 2024: 2024-05-18 , 2024-02-27 2023: 2023-08-11 , 2023-05-18 , 2023-05-08 2022: 2022-07-29 2021: 2021-09-01 , 2021-01-13 2020: 2020-07-09 , 2020-05-08 , 2020-01-13 2019: 2019-09-27 , 2019-07-16 , 2019-05-16 , 2019-03-27 , 2019-01-29 2018: 2018-11-15 , 2018-10-09 , 2018-07-19 , 2018-05-18 , 2018-04-09 , 2018-02-08 2017: 2017-10-18 , 2017-09-20 , 2017-07-07 , 2017-05-18 , 2017-02-09 , 2017-01-13 2016: 2016-12-02 , 2016-09-22 , 2016-08-10 , 2016-07-01 , 2016-05-18 , 2016-04-06 , 2016-03-04 , 2016-02-04 , 2016-01-07 2015: 2015-12-08 Strategic Plan & Organizational Objectives 2020-2021 2019-2020 2017-2018 DRAFT Finances Finance Reports: 2023 , 2022 , 2021 , 2020 , 2019 , 2018 , 2017 , 2016 , 2015 , 2014 IRS Form 990 Tax Exempt Return: 2023 , 2022 , 2021 , 2020 , 2019 , 2018 , 2017 , 2016 , 2015 , 2014 IRS Form W-9: Request for Taxpayer Identification Number and Certification (2019-09-17) IRS Exemption Letter for 501(c)(6) (2016-02-24) IRS Form 1024: Application for Recognition of Exemption Under Section 501(c)(6) (2016-01-07) Washington State Nonprofit Corporation Annual Reports 2024-11-14 , 2023-11-03 , 2022-11-01 , 2021-11-01 , 2020-11-02 , 2019-11-01 , 2018-11-01 , 2017-12-01 , 2016-12-01 , 2016-05-18 Elections & Surveys Election Results: 2024 , 2023 , 2022 , 2021 , 2020 , 2019 , 2018 , 2017 , 2016 , 2015 Voter's Guides: 2024 , 2023 , 2022 , 2021 , 2020 , 2019 , 2018 , 2017 , 2016 , 2015 Announcement of survey results and Board election plan (2015-10-20) Survey for future of PeeringDB (2015-08) Board of Directors Seat 1 (term expires 2025): Christopher Malayter , 2021- Seat 2 (term expires 2026): Job Snijders , 2015- Seat 3 (term expires 2025): Rahul Makhija , 2023- Seat 4 (term expires 2026): Aaron Hughes , 2015- Seat 5 (term expires 2025): Livio Morina , 2023- Officers Christopher Malayter , President, 2023- Aaron Hughes , Vice President, 2023- Shawna Bong , Secretary & Treasurer, 2024- Admin Committee Please see the Admin Committee page. Operations Committee Board members Snijders (Chair) and Hughes. Outreach Committee Please see the Outreach Committee page. Product Committee Please see the Product Committee page. Alumni Chris Caputo, Secretary & Treasurer 2015-2024 Patrick W. Gilmore, Board of Directors 2015-2023, Vice President 2015-2016 Matt Griswold, Board of Directors 2015-2017 Aaron Hughes, President 2015-2023 Fredrik Korsb\u00e4ck, Board of Directors 2019-2021 Arnold Nipper, Board of Directors 2015-2019 Bijal Sanghani, Board of Directors 2017-2023 Job Snijders, Vice President 2016-2023","title":"Governance"},{"location":"gov/#peeringdb-governance","text":"","title":"PeeringDB Governance"},{"location":"gov/#mission-statement","text":"PeeringDB, a nonprofit member-based organization, facilitates the interconnection of Internet networks globally, with user-maintained information.","title":"Mission Statement"},{"location":"gov/#organizational-documents","text":"Organizational Consent (2015-12-08) Certificate and Articles of Incorporation (2015-12-16) Bylaws (2024-05-18)","title":"Organizational Documents"},{"location":"gov/#policies","text":"Acceptable Use Policy Conflict of Interest Policy Data Ownership Policy Financial Controls Policy Press Release Policy Privacy Policy","title":"Policies"},{"location":"gov/#member-meetings","text":"April 18th, 2024: Agenda - Minutes - Audio - Video April 13th, 2023: Agenda - Minutes April 12th, 2022: Agenda - Minutes - Audio April 8th, 2021: Agenda - Minutes - Audio April 17th, 2020: Agenda - Minutes - Audio April 25th, 2019: Agenda - Minutes - Audio April 19th, 2018: Agenda - Minutes - Audio April 20th, 2017: Agenda - Minutes - Audio April 21st, 2016: Agenda - Minutes - Audio","title":"Member Meetings"},{"location":"gov/#board-meetings-consents","text":"2024: 2024-05-18 , 2024-02-27 2023: 2023-08-11 , 2023-05-18 , 2023-05-08 2022: 2022-07-29 2021: 2021-09-01 , 2021-01-13 2020: 2020-07-09 , 2020-05-08 , 2020-01-13 2019: 2019-09-27 , 2019-07-16 , 2019-05-16 , 2019-03-27 , 2019-01-29 2018: 2018-11-15 , 2018-10-09 , 2018-07-19 , 2018-05-18 , 2018-04-09 , 2018-02-08 2017: 2017-10-18 , 2017-09-20 , 2017-07-07 , 2017-05-18 , 2017-02-09 , 2017-01-13 2016: 2016-12-02 , 2016-09-22 , 2016-08-10 , 2016-07-01 , 2016-05-18 , 2016-04-06 , 2016-03-04 , 2016-02-04 , 2016-01-07 2015: 2015-12-08","title":"Board Meetings & Consents"},{"location":"gov/#strategic-plan-organizational-objectives","text":"2020-2021 2019-2020 2017-2018 DRAFT","title":"Strategic Plan & Organizational Objectives"},{"location":"gov/#finances","text":"Finance Reports: 2023 , 2022 , 2021 , 2020 , 2019 , 2018 , 2017 , 2016 , 2015 , 2014 IRS Form 990 Tax Exempt Return: 2023 , 2022 , 2021 , 2020 , 2019 , 2018 , 2017 , 2016 , 2015 , 2014 IRS Form W-9: Request for Taxpayer Identification Number and Certification (2019-09-17) IRS Exemption Letter for 501(c)(6) (2016-02-24) IRS Form 1024: Application for Recognition of Exemption Under Section 501(c)(6) (2016-01-07)","title":"Finances"},{"location":"gov/#washington-state-nonprofit-corporation-annual-reports","text":"2024-11-14 , 2023-11-03 , 2022-11-01 , 2021-11-01 , 2020-11-02 , 2019-11-01 , 2018-11-01 , 2017-12-01 , 2016-12-01 , 2016-05-18","title":"Washington State Nonprofit Corporation Annual Reports"},{"location":"gov/#elections-surveys","text":"Election Results: 2024 , 2023 , 2022 , 2021 , 2020 , 2019 , 2018 , 2017 , 2016 , 2015 Voter's Guides: 2024 , 2023 , 2022 , 2021 , 2020 , 2019 , 2018 , 2017 , 2016 , 2015 Announcement of survey results and Board election plan (2015-10-20) Survey for future of PeeringDB (2015-08)","title":"Elections & Surveys"},{"location":"gov/#board-of-directors","text":"Seat 1 (term expires 2025): Christopher Malayter , 2021- Seat 2 (term expires 2026): Job Snijders , 2015- Seat 3 (term expires 2025): Rahul Makhija , 2023- Seat 4 (term expires 2026): Aaron Hughes , 2015- Seat 5 (term expires 2025): Livio Morina , 2023-","title":"Board of Directors"},{"location":"gov/#officers","text":"Christopher Malayter , President, 2023- Aaron Hughes , Vice President, 2023- Shawna Bong , Secretary & Treasurer, 2024-","title":"Officers"},{"location":"gov/#admin-committee","text":"Please see the Admin Committee page.","title":"Admin Committee"},{"location":"gov/#operations-committee","text":"Board members Snijders (Chair) and Hughes.","title":"Operations Committee"},{"location":"gov/#outreach-committee","text":"Please see the Outreach Committee page.","title":"Outreach Committee"},{"location":"gov/#product-committee","text":"Please see the Product Committee page.","title":"Product Committee"},{"location":"gov/#alumni","text":"Chris Caputo, Secretary & Treasurer 2015-2024 Patrick W. Gilmore, Board of Directors 2015-2023, Vice President 2015-2016 Matt Griswold, Board of Directors 2015-2017 Aaron Hughes, President 2015-2023 Fredrik Korsb\u00e4ck, Board of Directors 2019-2021 Arnold Nipper, Board of Directors 2015-2019 Bijal Sanghani, Board of Directors 2017-2023 Job Snijders, Vice President 2016-2023","title":"Alumni"},{"location":"howtos/","text":"PeeringDB HOWTOs HOWTOs provide a beginner detailed instructions on how to get started using PeeringDB. Create entries Get Started with PeeringDB as a Carrier Operator Get Started with PeeringDB as a Exchange Operator Get Started with PeeringDB as a Facility or Campus Operator Get Started with PeeringDB as a Network Operator Manage entries Manage Organizational Policy Manage User Permissions Search Get Started with Search in PeeringDB Work Within PeeringDB\u2019s Query Limits v2 Search Authentication and security Authenticate to PeeringDB Get Started with API Keys Report a Security Issue Turn on 2FA and Require Users to Enable It Other Become a PeeringDB Member and Vote Install peeringdb-py Get Started with Developing for PeeringDB Setup a PeeringDB Development Environment What is AS112?","title":"HOWTOs"},{"location":"howtos/#peeringdb-howtos","text":"HOWTOs provide a beginner detailed instructions on how to get started using PeeringDB.","title":"PeeringDB HOWTOs"},{"location":"howtos/#create-entries","text":"Get Started with PeeringDB as a Carrier Operator Get Started with PeeringDB as a Exchange Operator Get Started with PeeringDB as a Facility or Campus Operator Get Started with PeeringDB as a Network Operator","title":"Create entries"},{"location":"howtos/#manage-entries","text":"Manage Organizational Policy Manage User Permissions","title":"Manage entries"},{"location":"howtos/#search","text":"Get Started with Search in PeeringDB Work Within PeeringDB\u2019s Query Limits v2 Search","title":"Search"},{"location":"howtos/#authentication-and-security","text":"Authenticate to PeeringDB Get Started with API Keys Report a Security Issue Turn on 2FA and Require Users to Enable It","title":"Authentication and security"},{"location":"howtos/#other","text":"Become a PeeringDB Member and Vote Install peeringdb-py Get Started with Developing for PeeringDB Setup a PeeringDB Development Environment What is AS112?","title":"Other"},{"location":"ix-f-json-import-rules/","text":"IX-F JSON Importer PeeringDB allows networks and IXPs to update entries via the IX-F JSON import feature. General remarks The Importer abides by the recommendations of the Data Ownership Task Force and its resulting Policy Document . Most significantly, this means that unless the tick box Allow IXP Update is enabled by a network, published data will not automatically become unpublished nor will unpublished data automatically become published. For Networks There is a tick box Allow IXP Update which governs the behavior of the Importer. By default this is set to disabled. If Allow IXP Update is enabled, a network entry at an IX may automatically be created, changed, or removed. The network's IX entry is completely governed by the settings in the IX-F JSON data provided by the IX. If Allow IXP Update is disabled, differences in data provided by the IX and the network will result in the following: An email to the network with details about the differences. An email to the IX with details about the differences. Admins for the network will see hints for their network within the PeeringDB web interface. These hints may be accepted or dismissed. The network and the IX are encouraged to reach out to each other to resolve any differences. IXP Update Tools: The Preview button shows the changes that will be performed or suggested during the next IX-F import, depending on the Allow IXP Update setting. The Postmortem button shows a log of recent changes performed as a result of IX-F imports. For IXPs To enable IX-F JSON import: Make sure that your JSON file is valid . Provide a URL to your IX-F JSON data. To do so, click Edit on your IX web page and set the IX-F Member Export URL to the URL and set Enable IX-F Import to enabled. You may also set the visibility of your IX-F JSON URL. Daily at 0000 UTC, the IX-F JSON data will be retrieved and processed by the Importer. The steps above for networks will then be followed. If the IX-F JSON state field is present, settings of active , connected , or operational may be used to indicate a network is operational, while a setting of inactive will be interpreted as the network not being operational. This may be used to denote a network in the process of connecting but not yet active, or a network on hiatus. IX-F Import Preview: The Preview button shows the changes that will be performed or suggested, depending on participant Allow IXP Update settings. A JSON form of this preview is available at: https://www.peeringdb.com/import/ixlan/###/ixf/preview (replace ### with the ID that appears in the URL after /ix/ when viewing your IX page) Note : The Importer expects that you also provide IP addresses. If your IX-F JSON has an empty member_list or only contains ASNs, there will be no useful information. You might want to disable the import. Further Information August 17th, 2020 Data Ownership Policy Implementation Presentation: slides and video","title":"IX-F JSON"},{"location":"ix-f-json-import-rules/#ix-f-json-importer","text":"PeeringDB allows networks and IXPs to update entries via the IX-F JSON import feature.","title":"IX-F JSON Importer"},{"location":"ix-f-json-import-rules/#general-remarks","text":"The Importer abides by the recommendations of the Data Ownership Task Force and its resulting Policy Document . Most significantly, this means that unless the tick box Allow IXP Update is enabled by a network, published data will not automatically become unpublished nor will unpublished data automatically become published.","title":"General remarks"},{"location":"ix-f-json-import-rules/#for-networks","text":"There is a tick box Allow IXP Update which governs the behavior of the Importer. By default this is set to disabled. If Allow IXP Update is enabled, a network entry at an IX may automatically be created, changed, or removed. The network's IX entry is completely governed by the settings in the IX-F JSON data provided by the IX. If Allow IXP Update is disabled, differences in data provided by the IX and the network will result in the following: An email to the network with details about the differences. An email to the IX with details about the differences. Admins for the network will see hints for their network within the PeeringDB web interface. These hints may be accepted or dismissed. The network and the IX are encouraged to reach out to each other to resolve any differences. IXP Update Tools: The Preview button shows the changes that will be performed or suggested during the next IX-F import, depending on the Allow IXP Update setting. The Postmortem button shows a log of recent changes performed as a result of IX-F imports.","title":"For Networks"},{"location":"ix-f-json-import-rules/#for-ixps","text":"To enable IX-F JSON import: Make sure that your JSON file is valid . Provide a URL to your IX-F JSON data. To do so, click Edit on your IX web page and set the IX-F Member Export URL to the URL and set Enable IX-F Import to enabled. You may also set the visibility of your IX-F JSON URL. Daily at 0000 UTC, the IX-F JSON data will be retrieved and processed by the Importer. The steps above for networks will then be followed. If the IX-F JSON state field is present, settings of active , connected , or operational may be used to indicate a network is operational, while a setting of inactive will be interpreted as the network not being operational. This may be used to denote a network in the process of connecting but not yet active, or a network on hiatus. IX-F Import Preview: The Preview button shows the changes that will be performed or suggested, depending on participant Allow IXP Update settings. A JSON form of this preview is available at: https://www.peeringdb.com/import/ixlan/###/ixf/preview (replace ### with the ID that appears in the URL after /ix/ when viewing your IX page) Note : The Importer expects that you also provide IP addresses. If your IX-F JSON has an empty member_list or only contains ASNs, there will be no useful information. You might want to disable the import.","title":"For IXPs"},{"location":"ix-f-json-import-rules/#further-information","text":"August 17th, 2020 Data Ownership Policy Implementation Presentation: slides and video","title":"Further Information"},{"location":"oauth/","text":"OAuth PeeringDB now offers OAuth2 authentication for third-party applications to allow users to authenticate against PeeringDB. Implementation details are at Github #131 . For an example, see IXP-Manager issue #322 . What is OAuth? There is a good write up at https://aaronparecki.com/oauth-2-simplified/ . Register an application First you need to register your application at PeeringDB. : For most applications, you'll want to use the following: Client type: Confidential Authorization grant type: Authorization code Redirect uris: add your redirect URLs here An OIDC algorithm must be selected. URLs PDB_ENDPOINT = \"https://auth.peeringdb.com/\" PDB_OAUTH_ACCESS_TOKEN_URL = '{}oauth2/token/'.format(PDB_ENDPOINT) PDB_OAUTH_AUTHORIZE_URL = '{}oauth2/authorize/'.format(PDB_ENDPOINT) PDB_OAUTH_PROFILE_URL = '{}profile/v1'.format(PDB_ENDPOINT) Fields The fields are based largely on OpenID Connect. Scopes currently are defined as profile : user profile email : adds fields email and verified_email networks : add field networks The perms field is a bitmask for CRUD as the 4 least significant bits. See following: 0b0000 1 1 1 1 | | | +-- Delete | | +---- Update | +------ Read + ------- Create Example for my user: { \"id\": 3, \"name\": \"Matt Griswold\", \"given_name\": \"Matt\", \"family_name\": \"Griswold\", \"email\": \"grizz@20c.com\", \"verified_user\": true, \"verified_email\": true, \"networks\": [ { \"perms\": 15, \"asn\": 63311, \"name\": \"20C\", \"id\": 20 }, { \"perms\": 15, \"asn\": 33713, \"name\": \"United IX\", \"id\": 7889 } ] }","title":"OAuth"},{"location":"oauth/#oauth","text":"PeeringDB now offers OAuth2 authentication for third-party applications to allow users to authenticate against PeeringDB. Implementation details are at Github #131 . For an example, see IXP-Manager issue #322 .","title":"OAuth"},{"location":"oauth/#what-is-oauth","text":"There is a good write up at https://aaronparecki.com/oauth-2-simplified/ .","title":"What is OAuth?"},{"location":"oauth/#register-an-application","text":"First you need to register your application at PeeringDB. : For most applications, you'll want to use the following: Client type: Confidential Authorization grant type: Authorization code Redirect uris: add your redirect URLs here An OIDC algorithm must be selected.","title":"Register an application"},{"location":"oauth/#urls","text":"PDB_ENDPOINT = \"https://auth.peeringdb.com/\" PDB_OAUTH_ACCESS_TOKEN_URL = '{}oauth2/token/'.format(PDB_ENDPOINT) PDB_OAUTH_AUTHORIZE_URL = '{}oauth2/authorize/'.format(PDB_ENDPOINT) PDB_OAUTH_PROFILE_URL = '{}profile/v1'.format(PDB_ENDPOINT)","title":"URLs"},{"location":"oauth/#fields","text":"The fields are based largely on OpenID Connect. Scopes currently are defined as profile : user profile email : adds fields email and verified_email networks : add field networks The perms field is a bitmask for CRUD as the 4 least significant bits. See following: 0b0000 1 1 1 1 | | | +-- Delete | | +---- Update | +------ Read + ------- Create Example for my user: { \"id\": 3, \"name\": \"Matt Griswold\", \"given_name\": \"Matt\", \"family_name\": \"Griswold\", \"email\": \"grizz@20c.com\", \"verified_user\": true, \"verified_email\": true, \"networks\": [ { \"perms\": 15, \"asn\": 63311, \"name\": \"20C\", \"id\": 20 }, { \"perms\": 15, \"asn\": 33713, \"name\": \"United IX\", \"id\": 7889 } ] }","title":"Fields"},{"location":"presentations/","text":"Presentations 2024 What's new on PeeringDB? at 8th South African Peering Forum , Cape Town, ZA - November 14, 2024 - Obinna Adumike What's new on PeeringDB? at nog.fi meeting 2024.11 , Helsinki, FI - November 6, 2024 - Livio Morina PeeringDB Update at RIPE 89 , Prague, CZ - October 31, 2024 - Leo Vegoda What's new on PeeringDB? at NgNOG 2024 , Lagos, NG - October 23, 2024 - Obinna Adumike What's new on PeeringDB? at Netnod Tech Meeting 2024 , Stockhold, SE - October 15, 2024 - Livio Morina What's new on PeeringDB? at RONOG 9 , Bucharest, RO - October 2, 2024 - Livio Morina PeeringDB in Five Minutes at AusNOG 2024 , Sydney, AU - September 5, 2024 - Arnold Nipper What's new on PeeringDB? at AfPIF 2024 , Kinsahsa, CD - August 20, 2024 - Ben Ryall PeeringDB Introduction & Update at PhNOG 2024 Week , Makati City, PH - July 10, 2024 - Arnold Nipper PeeringDB Update at NetUK 1 , London, UK - July 8, 2024 - Paul Hoogsteder What's new on PeeringDB? at WAPF 2024 , Abidjan, CI - June 26, 2024 - Ben Ryall PeeringDB Update at MWPS 2024 , Kansas City, MO, US - June 14, 2024 - Martin Hannigan PeeringDB Update at LINX122 , London, UK - May 28, 2024 - Ben Ryall PeeringDB Update at RIPE 88 , Krak\u00f3w, PL - May 23, 2024 - Paul Hoogsteder What's new on PeeringDB? at ITNOG8 , Bologna, IT - May 7, 2024 - Livio Morina PeeringDB Introduction & Update at SANOG 41 , Mumbai, IN - April 29, 2024 - Arnold Nipper What's new on PeeringDB? at SEE 12 , Athens, GR - April 22, 2024 - Livio Morina PeeringDB Update at GPF 2024 , San Juan, PR, US - April 15, 2024 - Chris Malayter PeeringDB Update at DKNOG14 , Copenhagen, DK - March 8, 2024 - Chriztoffer Hansen PeeringDB Update at Peering Days 2024 , Krakow, PL - March 7, 2024 - Ben Ryall PeeringDB Update at NANOG 90 , Charlotte, NC, US - February 12, 2024 - Martin Hannigan 2023 PeeringDB Update at RIPE 87 , Rome, IT - November 30, 2023 - Leo Vegoda What's new on PeeringDB? at MIX Salotto 2023 , Milan, IT - November 15, 2023 - Livio Morina What is PeeringDB? Why is it important for network operators? at RSNOG9 , Belgrade, RS - November 9, 2023 - Livio Morina What\u2019s new on PeeringDB? at GRNOG 15 , Athens, GR - October 25, 2023 - Livio Morina What\u2019s new on PeeringDB? at FRnOG 38 , Paris, FR - October 6, 2023 - Livio Morina PeeringDB Operations & Product Update at SwiNOG#38 , Berne, CH - June 21, 2023 - Arnold Nipper PeeringDB Update at RIPE 86 , Rotterdam, NL - May 25, 2023 - Leo Vegoda PeeringDB Operations & Product Update at ITNOG7 , Bologna, IT - May 9, 2023 - Arnold Nipper What\u2019s new on PeeringDB? at the 38th Euro-IX Forum , Cluj-Napoca, RO - April 24, 2023 - Arnold Nipper PeeringDB Operations & Product Update at SEE 11 , Split, HR - April 5, 2023 - Arnold Nipper PeeringDB Operations & Product Update at GPF 2023 , Coronado, CA, US - April 4, 2023 - Matt Griswold PeeringDB Operations & Product Update at Peering Days 2023 , Sofia, BG - March 30, 2023 - Arnold Nipper PeeringDB Operations & Product Update at DKNOG13 , Copenhagen, DK - March 10, 2023 - Arnold Nipper 2022 PeeringDB at AOPF/AONOG 2022 - December 8, 2022 - Darwin Da Costa PeeringDB Operations & Product Update at DENOG14 , Hamburg, DE - November 15, 2022 - Arnold Nipper PeeringDB Operations & Product Update at RIPE 85 , Belgrade, RS - October 26, 2022 - Arnold Nipper PeeringDB Operations & Product Update at ngPIF 2022 , Lagos, NG - October 25, 2022 - Ben Ryall PeeringDB at WTR POP-PI 2022 - October 20, 2022 - Julimar Lunguinho Mendes ( video ) PeeringDB Call for Committee Members at NANOG 86 , Hollywood, CA, US - October 19, 2022 - Patrick Gilmore PeeringDB Operations & Product Update at the 37th Euro-IX Forum , Edinburgh, UK - October 11, 2022 - Greg Hankins PeeringDB Update at EPF 2022 , Rome, IT - September 12, 2022 - Arnold Nipper PeeringDB Update at AfPIF 2022 , Kigali, RW - August 23, 2022 - Ben Ryall PeeringDB Update at GPF 2022 , Washington, DC, US - May 12, 2022 - Chris Malayter 2021 Status Update at Virtual Tech Day with Euro-IX PeeringToolbox - February 3, 2022 - Leo Vegoda 2021 Introduction to PeeringDB at GNA-G Routing WG - December 14, 2021 - Arnold Nipper PeeringDB Update at Semana de Capacita\u00e7\u00e3o On-line 3 - October 1, 2021 - Julimar Lunguinho Mendes PeeringDB Update at WTR PoP-MA - September 30, 2021 - Julimar Lunguinho Mendes 2020 PeeringDB at IX F\u00f3rum 14 - December 4, 2020 - Julimar Lunguinho Mendes ( video ) Introducci\u00f3n a PeeringDB at Seguridad en el Ruteo: MANRS para Operadores de Red de Universidades - October 2, 2020 - Diego Dominguez Data Ownership Policy Implementation Presentation - August 17, 2020 - Filiz Yilmaz, Steve McManus, Arnold Nipper ( video ) PeeringDB Data Ownership Task Force at PeeringDB Annual Meeting 2020 - April 17, 2020 - Filiz Yilmaz PeeringDB at ABRINT na Estrada Campo Grande , Campo Grande, BR - March 10, 2020 - Julimar Lunguinho Mendes PeeringDB Update at PhNOG 2020 , Manila, PH - February 26, 2020 - Arnold Nipper PeeringDB Update at APRICOT 2020 , Melbourne, AU - February 19, 2020 - Arnold Nipper 2019 PeeringDB Update (English)/ \u041d\u043e\u0432\u043e\u0441\u0442\u0438 \u043e\u0442 PeeringDB (P\u0443\u0441\u0441\u043a\u0438\u0439) at MSK-IX Peering Forum 2019 , Moscow, RU - December 5, 2019 - Filiz Yilmaz PeeringDB - Como Est\u00e1 a Ado\u00e7\u00e3o no Brasil at MUM in Brazil , Foz do Igua\u00e7u, BR - November 29, 2019 - Julimar Lunguinho Mendes PeeringDB Para Que Sirve? at XII Encuentro Nacional de T\u00e9cnicos , Salta, AR - November 28, 2019 - Hernan Moguilevsky PeeringDB Update: A Look Into PeeringDB's Data for AT/CH/DE/LU and the Latest Changes at DENOG11 , Hamburg, DE - November 12, 2019 - Stefan Funke PeeringDB Update at Peering Asia 3.0 , Kuala Lumpur, MY - November 7, 2019 - Arnold Nipper PeeringDB Update at ATNOG 2019/2 , Vienna, AT - November 5, 2019 - Stefan Funke Introduction to PeeringDB at JBIX Peering Forum 2019 , Kuala Lumpur, MY - November 5, 2019 - Arnold Nipper Introduction to PeeringDB at ngNOG 2019 , Lagos, NG - October 30, 2019 - Ben Ryall Cadastro para participantes do IX.br at IX F\u00f3rum Regional , Florian\u00f3polis, BR - October 25, 2019 - Julimar Lunguinho Mendes OAuth for IXP Operators at the 35th Euro-IX Forum , Zaandam, NL - October 21, 2019 - Barry O'Donovan The PeeringDB API at the 35th Euro-IX Forum , Zaandam, NL - October 21, 2019 - Arnold Nipper Introduction to PeeringDB at RONOG 6 , Bucharest, RO - October 1, 2019 - Arnold Nipper PeeringDB Update at EPF14 , Tallinn, EE - September 18, 2019 - Filiz Yilmaz Cadastro para participantes do IX.br at IX F\u00f3rum Regional , Natal, BR - September 6, 2019 - Julimar Lunguinho Mendes Introduction to PeeringDB at SAFNOG-5 , Johannesburg, ZA - August 28, 2019 - Arnold Nipper Introduction to PeeringDB at AfPIF-10 , Balaclava, MV - August 22, 2019 - Arnold Nipper Introducci\u00f3n a PeeringDB at MexNOG 2019 , Mexico City, MX - August 14, 2019 - Diego Dominguez Introduction to PeeringDB at ATNOG 2019/1 , Salzburg, AT - July 16, 2019 - Arnold Nipper Introduction to PeeringDB at INNOG 2 , New Delhi, IN - July 1, 2019 - Arnold Nipper ( video ) Cadastro para participantes do IX.br at IX F\u00f3rum Regional , S\u00e3o Paulo, BR - June 10, 2019 - Julimar Lunguinho Mendes News from PeeringDB at ENOG 16 , Tbilisi, GE - June 3, 2019 - Arnold Nipper PeeringDB Update at NONOG-3 , Oslo, NO - May 27, 2019 - Arnold Nipper PeeringDB Update at SINOG 6.0 , Ljubljana, SI - May 14, 2019 - Arnold Nipper Introduction to PeeringDB at BKNIX Peering Forum and ThaiNOG Day 2019 , Bangkok, TH - May 7, 2019 - Arnold Nipper Use in Latin America at Peering Forum LAC , Punta Cana, DR - May 6, 2019 - Julimar Lunguinho Mendes and Carlos Martinez Cagnazzo Cadastro para participantes do IX.br at IX F\u00f3rum Regional , Campo Grande, BR - April 26, 2019 - Julimar Lunguinho Mendes Introduction to PeeringDB at Telecom Day , St. Petersburg, RU - April 19, 2019 - Arnold Nipper PeeringDB Update at SEE 8 , Sarajevo, BH - April 17, 2019 - Arnold Nipper PeeringDB Update at Curso Avan\u00e7ado de IPv6 , S\u00e3o Paulo, BR - April 5, 2019 - Julimar Lunguinho Mendes PeeringDB Update at BCIX Round Table April 2019 , Berlin, DE - April 4, 2019 - Stefan Funke PeeringDB Update at MENOG 19 , Beirut, LB - April 3, 2019 - Arnold Nipper PeeringDB Update at DKNOG9 , Copenhagen, DK - March 15, 2019 - Arnold Nipper PeeringDB Update at Peering Days 2019 , Zagreb, CR - March 12, 2019 - Arnold Nipper PeeringDB Update at PhNOG 2019 , Cebu, PH - March 8, 2019 - Arnold Nipper PeeringDB Update at HKNOG 7.0 , Hong Kong, HK - March 1, 2019 - Arnold Nipper 2018 PeeringDB Update at MSK-IX Peering Forum 2018 , Moscow, RU - November 23, 2018 - Rebecca Stani\u0107 PeeringDB Update at DENOG10 , Darmstadt, DE - November 21, 2018 - Arnold Nipper PeeringDB Update at ITNOG4 , Bologna, IT - November 9, 2018 - Arnold Nipper Introduction to PeeringDB API at the 33rd Euro-IX Forum , Venice, IT - November 6, 2018 - Arnold Nipper PeeringDB Introduction at ngNOG 2018 , Lagos, NG - October 31, 2018 - Ben Ryall PeeringDB Update at SwiNOG #34 , Berne, CH - October 30, 2018 - Arnold Nipper PeeringDB Update and Japanese Localization Experience at Peering Asia 2.0 , Hong Kong, HK - October 25, 2018 - Arnold Nipper and Masataka Mawatari PeeringDB Update at SAFNOG-4/EANOG/tzNOG , Dar es Salaam, TZ - September 25, 2018 - Arnold Nipper PeeringDB Update at EPF 13 , Athens, GR - September 18, 2018 - Rebecca Stani\u0107 Cadastro para participantes do IX.br at IX (PTT) F\u00f3rum Regional , Natal, BR - September 14, 2018 - Julimar Lunguinho Mendes PeeringDB Frontend Translation Project at APNIC 46 , Noumea, NC - September 12, 2018 - Masataka Mawatari PeeringDB Update at AfPIF2018 , Cape Town, ZA - August 23, 2018 - Arnold Nipper PeeringDB for IXes at AFIX , Cape Town, ZA - August 20, 2018 - Arnold Nipper Introduction to PeeringDB API at SANOG 32 , Dhaka, BD - August 10, 2018 - Arnold Nipper PeeringDB Update at SANOG 32 , Dhaka, BD - August 9, 2018 - Arnold Nipper PeeringDB: What is it, how to and benefits at New England Peering Forum 2018 , Cambridge, MA, US - June 22, 2018 - Patrick W. Gilmore PeeringDB Update at SEE 7 , Timi\u0219oara, R0 - June 18, 2018 - Arnold Nipper PeeringDB Update at ENOG 15 , Moscow, RU - June 5, 2018 - Arnold Nipper PeeringDB Update at SwiNOG 33 , Berne, CH - May 24, 2018 - Arnold Nipper PeeringDB Update e cadastro de Facilities at GTER 45 , Florian\u00f3polis, BR - May 22, 2018 - Julimar Lunguinho Mendes ( video ) PeeringDB Update at RIPE 76 Connect Working Group , Marseille, FR - May 16, 2018 - Arnold Nipper ( video ) PeeringDB Update at African Internet Summit 2018 , Dakar, SN - May 8, 2018 - Arnold Nipper PeeringDB Update at DKNOG8 , Copenhagen, DK - March 9, 2018 - Arnold Nipper PeeringDB Update at CEE Peering Days 2018 , Berlin, DE - March 7, 2018 - Arnold Nipper Introduction to PeeringDB at APRICOT 2018 , Kathmandu, NP - February 26, 2018 - Arnold Nipper PeeringDB Update at APIX Meeting #17 , Kathmandu, NP - February 24, 2018 - Arnold Nipper PeeringDB Introduction at Capacity India & SAARC 2018 , New Delhi, IN - February 8, 2018 - Arnold Nipper 2017 PeeringDB Update at NIX.cz Member Meering , Prague, CZ - November 23, 2017 - Bijal Sanghani PeeringDB Update at DENOG9 , Darmstadt, DE - November 23, 2017 - Arnold Nipper PeeringDB Update at ALNOF , Tirana, AL - November 14, 2017 - Bijal Sanghani PeeringDB Update at Peering Asia 1.0 , Kyoto, JP - November 1, 2017 - Arnold Nipper PeeringDB Update at TOP-IX Meeting , Torino, IT - September 26, 2017 - Bijal Sanghani PeeringDB Update at NPD 17 , The Hague, NL - September 15, 2017 - Arnold Nipper PeeringDB Update at SAFNOG-3 , Durban, ZA - September 6, 2017 - Arnold Nipper PeeringDB Update at AfPIF 2017 , Abidjan, CI - August 24, 2017 - Arnold Nipper PeeringDB Update at SANOG 30 Peering Forum, Gurgaon, IN - July 10, 2017 - Arnold Nipper More benefits from PeeringDB at DE-CIX Technical Meeting , Frankfurt, DE - June 22, 2017 - Arnold Nipper PeeringDB Update at NANOG 70 , Bellevue, WA, US - June 5, 2017 - Aaron Hughes PeeringDB Update at BOSNOG Meeting & IX Peering Forum , Cambridge, MA, US - June 2, 2017 - Stephen McManus Orienta\u00e7\u00f5es no preenchimento de participantes do IX.br at GTER 43 , Foz do Igua\u00e7u, BR - May 25, 2017 - Julimar Lunguinho Mendes PeeringDB Update at ENOG 13.0 , Saint Petersburg, RU - May 23, 2017 - Arnold Nipper PeeringDB Update at Global Peering Forum 12.0 , New York, NY, US - April 26, 2017 - Aaron Huges PeeringDB at GORE/ESNOG Reunion 19 , Barcelona, ES - April 6, 2017 - Arnold Nipper PeeringDB at CEE Peering Days 2017 , Ljubljana, SL - March 23, 2017 - Arnold Nipper PeeringDB 2.0 at APRICOT 2017 , Ho Chi Minh City, VN - February 28, 2017 - Arnold Nipper 2016 PeeringDB at 19 KIKE Conference , Serock, PL - November 23, 2016 - Robert Jakub PeeringDB 2.0 at ITNOG2 , Bologna, IT - November 3, 2016 - Arnold Nipper PeeringDB Product Committee Charter Survey at EPF 11 , Sofia, BG - September 20, 2016 - Eric Loos PeeringDB 2.0 at NPD 16 , The Hague, NL - September 16, 2016 - Walt Wollny PeeringDB 2.0 at AfPIF 2016 , Dar es Salaam, TZ - August 30, 2016 - Arnold Nipper PeeringDB 2.0 for IXPs at AFIX 2016 , Dar es Salaam, TZ - August 29, 2016 - Arnold Nipper PeeringDB 2.0 at ENOG 11 , Moscow, RU - June 7, 2016 - Arnold Nipper PeeringDB 2.0 at RIPE 72 , Copenhagen, DK - May 25, 2016 - Greg Hankins PeeringDB 2.0 at CHI-NOG 06 , Chicago, IL, US - May 12, 2016 - Matt Griswold PeeringDB 2.0 e o Cen\u00e1rio Brasileiro and IX.br Guia de cadastro de informa\u00e7\u00f5es de ASNs no PeeringDB at GTER 41 , Uberl\u00e2ndia, BR - May 12, 2016 - Eduardo Ascen\u00e7o Reis PeeringDB 2.0 for IXPs at 28th Euro-IX Forum , Luxembourg, LU - April 26, 2016 - Greg Hankins / Arnold Nipper RIPE SEE 5 , Tirana, AL - April 19, 2016 - Arnold Nipper PeeringDB 2.0 at UKNOF34 , Manchester, UK - April 21, 2016 - Greg Hankins PeeringDB Update at GPF 11 , Los Angeles, CA, US - April 13, 2016 - Aaron Hughes NetNod , Stockholm, SE - March 17, 2016 - Job Snijders DKNOG6 , Copenhagen, DK - March 10, 2016 - Job Snijders PeeringDB Update - Aaron Hughes APRICOT 2016 , Auckland, NZ - February 23, 2016 - Aaron Hughes NANOG 66 , San Diego, CA, US - February 10, 2016 - Aaron Hughes PeeringDB Version 2 Coding Introduction at NANOG 66 , San Diego, CA, US - February 8, 2016 - Matt Griswold 2015 PeeringDB Version 2 Brazil - Matt Griswold / Greg Hankins IX (PTT) F\u00f3rum 9 , S\u00e3o Paulo, BR - December 8, 2015 - Greg Hankins PeeringDB Version 2 Introduction - Matt Griswold 27th Euro-IX Forum , Berlin, DE - October 26, 2015 - Greg Hankins DENOG7 , Darmstadt, DE - October 30, 2015 - Arnold Nipper","title":"Presentations"},{"location":"presentations/#presentations","text":"","title":"Presentations"},{"location":"presentations/#2024","text":"What's new on PeeringDB? at 8th South African Peering Forum , Cape Town, ZA - November 14, 2024 - Obinna Adumike What's new on PeeringDB? at nog.fi meeting 2024.11 , Helsinki, FI - November 6, 2024 - Livio Morina PeeringDB Update at RIPE 89 , Prague, CZ - October 31, 2024 - Leo Vegoda What's new on PeeringDB? at NgNOG 2024 , Lagos, NG - October 23, 2024 - Obinna Adumike What's new on PeeringDB? at Netnod Tech Meeting 2024 , Stockhold, SE - October 15, 2024 - Livio Morina What's new on PeeringDB? at RONOG 9 , Bucharest, RO - October 2, 2024 - Livio Morina PeeringDB in Five Minutes at AusNOG 2024 , Sydney, AU - September 5, 2024 - Arnold Nipper What's new on PeeringDB? at AfPIF 2024 , Kinsahsa, CD - August 20, 2024 - Ben Ryall PeeringDB Introduction & Update at PhNOG 2024 Week , Makati City, PH - July 10, 2024 - Arnold Nipper PeeringDB Update at NetUK 1 , London, UK - July 8, 2024 - Paul Hoogsteder What's new on PeeringDB? at WAPF 2024 , Abidjan, CI - June 26, 2024 - Ben Ryall PeeringDB Update at MWPS 2024 , Kansas City, MO, US - June 14, 2024 - Martin Hannigan PeeringDB Update at LINX122 , London, UK - May 28, 2024 - Ben Ryall PeeringDB Update at RIPE 88 , Krak\u00f3w, PL - May 23, 2024 - Paul Hoogsteder What's new on PeeringDB? at ITNOG8 , Bologna, IT - May 7, 2024 - Livio Morina PeeringDB Introduction & Update at SANOG 41 , Mumbai, IN - April 29, 2024 - Arnold Nipper What's new on PeeringDB? at SEE 12 , Athens, GR - April 22, 2024 - Livio Morina PeeringDB Update at GPF 2024 , San Juan, PR, US - April 15, 2024 - Chris Malayter PeeringDB Update at DKNOG14 , Copenhagen, DK - March 8, 2024 - Chriztoffer Hansen PeeringDB Update at Peering Days 2024 , Krakow, PL - March 7, 2024 - Ben Ryall PeeringDB Update at NANOG 90 , Charlotte, NC, US - February 12, 2024 - Martin Hannigan","title":"2024"},{"location":"presentations/#2023","text":"PeeringDB Update at RIPE 87 , Rome, IT - November 30, 2023 - Leo Vegoda What's new on PeeringDB? at MIX Salotto 2023 , Milan, IT - November 15, 2023 - Livio Morina What is PeeringDB? Why is it important for network operators? at RSNOG9 , Belgrade, RS - November 9, 2023 - Livio Morina What\u2019s new on PeeringDB? at GRNOG 15 , Athens, GR - October 25, 2023 - Livio Morina What\u2019s new on PeeringDB? at FRnOG 38 , Paris, FR - October 6, 2023 - Livio Morina PeeringDB Operations & Product Update at SwiNOG#38 , Berne, CH - June 21, 2023 - Arnold Nipper PeeringDB Update at RIPE 86 , Rotterdam, NL - May 25, 2023 - Leo Vegoda PeeringDB Operations & Product Update at ITNOG7 , Bologna, IT - May 9, 2023 - Arnold Nipper What\u2019s new on PeeringDB? at the 38th Euro-IX Forum , Cluj-Napoca, RO - April 24, 2023 - Arnold Nipper PeeringDB Operations & Product Update at SEE 11 , Split, HR - April 5, 2023 - Arnold Nipper PeeringDB Operations & Product Update at GPF 2023 , Coronado, CA, US - April 4, 2023 - Matt Griswold PeeringDB Operations & Product Update at Peering Days 2023 , Sofia, BG - March 30, 2023 - Arnold Nipper PeeringDB Operations & Product Update at DKNOG13 , Copenhagen, DK - March 10, 2023 - Arnold Nipper","title":"2023"},{"location":"presentations/#2022","text":"PeeringDB at AOPF/AONOG 2022 - December 8, 2022 - Darwin Da Costa PeeringDB Operations & Product Update at DENOG14 , Hamburg, DE - November 15, 2022 - Arnold Nipper PeeringDB Operations & Product Update at RIPE 85 , Belgrade, RS - October 26, 2022 - Arnold Nipper PeeringDB Operations & Product Update at ngPIF 2022 , Lagos, NG - October 25, 2022 - Ben Ryall PeeringDB at WTR POP-PI 2022 - October 20, 2022 - Julimar Lunguinho Mendes ( video ) PeeringDB Call for Committee Members at NANOG 86 , Hollywood, CA, US - October 19, 2022 - Patrick Gilmore PeeringDB Operations & Product Update at the 37th Euro-IX Forum , Edinburgh, UK - October 11, 2022 - Greg Hankins PeeringDB Update at EPF 2022 , Rome, IT - September 12, 2022 - Arnold Nipper PeeringDB Update at AfPIF 2022 , Kigali, RW - August 23, 2022 - Ben Ryall PeeringDB Update at GPF 2022 , Washington, DC, US - May 12, 2022 - Chris Malayter 2021 Status Update at Virtual Tech Day with Euro-IX PeeringToolbox - February 3, 2022 - Leo Vegoda","title":"2022"},{"location":"presentations/#2021","text":"Introduction to PeeringDB at GNA-G Routing WG - December 14, 2021 - Arnold Nipper PeeringDB Update at Semana de Capacita\u00e7\u00e3o On-line 3 - October 1, 2021 - Julimar Lunguinho Mendes PeeringDB Update at WTR PoP-MA - September 30, 2021 - Julimar Lunguinho Mendes","title":"2021"},{"location":"presentations/#2020","text":"PeeringDB at IX F\u00f3rum 14 - December 4, 2020 - Julimar Lunguinho Mendes ( video ) Introducci\u00f3n a PeeringDB at Seguridad en el Ruteo: MANRS para Operadores de Red de Universidades - October 2, 2020 - Diego Dominguez Data Ownership Policy Implementation Presentation - August 17, 2020 - Filiz Yilmaz, Steve McManus, Arnold Nipper ( video ) PeeringDB Data Ownership Task Force at PeeringDB Annual Meeting 2020 - April 17, 2020 - Filiz Yilmaz PeeringDB at ABRINT na Estrada Campo Grande , Campo Grande, BR - March 10, 2020 - Julimar Lunguinho Mendes PeeringDB Update at PhNOG 2020 , Manila, PH - February 26, 2020 - Arnold Nipper PeeringDB Update at APRICOT 2020 , Melbourne, AU - February 19, 2020 - Arnold Nipper","title":"2020"},{"location":"presentations/#2019","text":"PeeringDB Update (English)/ \u041d\u043e\u0432\u043e\u0441\u0442\u0438 \u043e\u0442 PeeringDB (P\u0443\u0441\u0441\u043a\u0438\u0439) at MSK-IX Peering Forum 2019 , Moscow, RU - December 5, 2019 - Filiz Yilmaz PeeringDB - Como Est\u00e1 a Ado\u00e7\u00e3o no Brasil at MUM in Brazil , Foz do Igua\u00e7u, BR - November 29, 2019 - Julimar Lunguinho Mendes PeeringDB Para Que Sirve? at XII Encuentro Nacional de T\u00e9cnicos , Salta, AR - November 28, 2019 - Hernan Moguilevsky PeeringDB Update: A Look Into PeeringDB's Data for AT/CH/DE/LU and the Latest Changes at DENOG11 , Hamburg, DE - November 12, 2019 - Stefan Funke PeeringDB Update at Peering Asia 3.0 , Kuala Lumpur, MY - November 7, 2019 - Arnold Nipper PeeringDB Update at ATNOG 2019/2 , Vienna, AT - November 5, 2019 - Stefan Funke Introduction to PeeringDB at JBIX Peering Forum 2019 , Kuala Lumpur, MY - November 5, 2019 - Arnold Nipper Introduction to PeeringDB at ngNOG 2019 , Lagos, NG - October 30, 2019 - Ben Ryall Cadastro para participantes do IX.br at IX F\u00f3rum Regional , Florian\u00f3polis, BR - October 25, 2019 - Julimar Lunguinho Mendes OAuth for IXP Operators at the 35th Euro-IX Forum , Zaandam, NL - October 21, 2019 - Barry O'Donovan The PeeringDB API at the 35th Euro-IX Forum , Zaandam, NL - October 21, 2019 - Arnold Nipper Introduction to PeeringDB at RONOG 6 , Bucharest, RO - October 1, 2019 - Arnold Nipper PeeringDB Update at EPF14 , Tallinn, EE - September 18, 2019 - Filiz Yilmaz Cadastro para participantes do IX.br at IX F\u00f3rum Regional , Natal, BR - September 6, 2019 - Julimar Lunguinho Mendes Introduction to PeeringDB at SAFNOG-5 , Johannesburg, ZA - August 28, 2019 - Arnold Nipper Introduction to PeeringDB at AfPIF-10 , Balaclava, MV - August 22, 2019 - Arnold Nipper Introducci\u00f3n a PeeringDB at MexNOG 2019 , Mexico City, MX - August 14, 2019 - Diego Dominguez Introduction to PeeringDB at ATNOG 2019/1 , Salzburg, AT - July 16, 2019 - Arnold Nipper Introduction to PeeringDB at INNOG 2 , New Delhi, IN - July 1, 2019 - Arnold Nipper ( video ) Cadastro para participantes do IX.br at IX F\u00f3rum Regional , S\u00e3o Paulo, BR - June 10, 2019 - Julimar Lunguinho Mendes News from PeeringDB at ENOG 16 , Tbilisi, GE - June 3, 2019 - Arnold Nipper PeeringDB Update at NONOG-3 , Oslo, NO - May 27, 2019 - Arnold Nipper PeeringDB Update at SINOG 6.0 , Ljubljana, SI - May 14, 2019 - Arnold Nipper Introduction to PeeringDB at BKNIX Peering Forum and ThaiNOG Day 2019 , Bangkok, TH - May 7, 2019 - Arnold Nipper Use in Latin America at Peering Forum LAC , Punta Cana, DR - May 6, 2019 - Julimar Lunguinho Mendes and Carlos Martinez Cagnazzo Cadastro para participantes do IX.br at IX F\u00f3rum Regional , Campo Grande, BR - April 26, 2019 - Julimar Lunguinho Mendes Introduction to PeeringDB at Telecom Day , St. Petersburg, RU - April 19, 2019 - Arnold Nipper PeeringDB Update at SEE 8 , Sarajevo, BH - April 17, 2019 - Arnold Nipper PeeringDB Update at Curso Avan\u00e7ado de IPv6 , S\u00e3o Paulo, BR - April 5, 2019 - Julimar Lunguinho Mendes PeeringDB Update at BCIX Round Table April 2019 , Berlin, DE - April 4, 2019 - Stefan Funke PeeringDB Update at MENOG 19 , Beirut, LB - April 3, 2019 - Arnold Nipper PeeringDB Update at DKNOG9 , Copenhagen, DK - March 15, 2019 - Arnold Nipper PeeringDB Update at Peering Days 2019 , Zagreb, CR - March 12, 2019 - Arnold Nipper PeeringDB Update at PhNOG 2019 , Cebu, PH - March 8, 2019 - Arnold Nipper PeeringDB Update at HKNOG 7.0 , Hong Kong, HK - March 1, 2019 - Arnold Nipper","title":"2019"},{"location":"presentations/#2018","text":"PeeringDB Update at MSK-IX Peering Forum 2018 , Moscow, RU - November 23, 2018 - Rebecca Stani\u0107 PeeringDB Update at DENOG10 , Darmstadt, DE - November 21, 2018 - Arnold Nipper PeeringDB Update at ITNOG4 , Bologna, IT - November 9, 2018 - Arnold Nipper Introduction to PeeringDB API at the 33rd Euro-IX Forum , Venice, IT - November 6, 2018 - Arnold Nipper PeeringDB Introduction at ngNOG 2018 , Lagos, NG - October 31, 2018 - Ben Ryall PeeringDB Update at SwiNOG #34 , Berne, CH - October 30, 2018 - Arnold Nipper PeeringDB Update and Japanese Localization Experience at Peering Asia 2.0 , Hong Kong, HK - October 25, 2018 - Arnold Nipper and Masataka Mawatari PeeringDB Update at SAFNOG-4/EANOG/tzNOG , Dar es Salaam, TZ - September 25, 2018 - Arnold Nipper PeeringDB Update at EPF 13 , Athens, GR - September 18, 2018 - Rebecca Stani\u0107 Cadastro para participantes do IX.br at IX (PTT) F\u00f3rum Regional , Natal, BR - September 14, 2018 - Julimar Lunguinho Mendes PeeringDB Frontend Translation Project at APNIC 46 , Noumea, NC - September 12, 2018 - Masataka Mawatari PeeringDB Update at AfPIF2018 , Cape Town, ZA - August 23, 2018 - Arnold Nipper PeeringDB for IXes at AFIX , Cape Town, ZA - August 20, 2018 - Arnold Nipper Introduction to PeeringDB API at SANOG 32 , Dhaka, BD - August 10, 2018 - Arnold Nipper PeeringDB Update at SANOG 32 , Dhaka, BD - August 9, 2018 - Arnold Nipper PeeringDB: What is it, how to and benefits at New England Peering Forum 2018 , Cambridge, MA, US - June 22, 2018 - Patrick W. Gilmore PeeringDB Update at SEE 7 , Timi\u0219oara, R0 - June 18, 2018 - Arnold Nipper PeeringDB Update at ENOG 15 , Moscow, RU - June 5, 2018 - Arnold Nipper PeeringDB Update at SwiNOG 33 , Berne, CH - May 24, 2018 - Arnold Nipper PeeringDB Update e cadastro de Facilities at GTER 45 , Florian\u00f3polis, BR - May 22, 2018 - Julimar Lunguinho Mendes ( video ) PeeringDB Update at RIPE 76 Connect Working Group , Marseille, FR - May 16, 2018 - Arnold Nipper ( video ) PeeringDB Update at African Internet Summit 2018 , Dakar, SN - May 8, 2018 - Arnold Nipper PeeringDB Update at DKNOG8 , Copenhagen, DK - March 9, 2018 - Arnold Nipper PeeringDB Update at CEE Peering Days 2018 , Berlin, DE - March 7, 2018 - Arnold Nipper Introduction to PeeringDB at APRICOT 2018 , Kathmandu, NP - February 26, 2018 - Arnold Nipper PeeringDB Update at APIX Meeting #17 , Kathmandu, NP - February 24, 2018 - Arnold Nipper PeeringDB Introduction at Capacity India & SAARC 2018 , New Delhi, IN - February 8, 2018 - Arnold Nipper","title":"2018"},{"location":"presentations/#2017","text":"PeeringDB Update at NIX.cz Member Meering , Prague, CZ - November 23, 2017 - Bijal Sanghani PeeringDB Update at DENOG9 , Darmstadt, DE - November 23, 2017 - Arnold Nipper PeeringDB Update at ALNOF , Tirana, AL - November 14, 2017 - Bijal Sanghani PeeringDB Update at Peering Asia 1.0 , Kyoto, JP - November 1, 2017 - Arnold Nipper PeeringDB Update at TOP-IX Meeting , Torino, IT - September 26, 2017 - Bijal Sanghani PeeringDB Update at NPD 17 , The Hague, NL - September 15, 2017 - Arnold Nipper PeeringDB Update at SAFNOG-3 , Durban, ZA - September 6, 2017 - Arnold Nipper PeeringDB Update at AfPIF 2017 , Abidjan, CI - August 24, 2017 - Arnold Nipper PeeringDB Update at SANOG 30 Peering Forum, Gurgaon, IN - July 10, 2017 - Arnold Nipper More benefits from PeeringDB at DE-CIX Technical Meeting , Frankfurt, DE - June 22, 2017 - Arnold Nipper PeeringDB Update at NANOG 70 , Bellevue, WA, US - June 5, 2017 - Aaron Hughes PeeringDB Update at BOSNOG Meeting & IX Peering Forum , Cambridge, MA, US - June 2, 2017 - Stephen McManus Orienta\u00e7\u00f5es no preenchimento de participantes do IX.br at GTER 43 , Foz do Igua\u00e7u, BR - May 25, 2017 - Julimar Lunguinho Mendes PeeringDB Update at ENOG 13.0 , Saint Petersburg, RU - May 23, 2017 - Arnold Nipper PeeringDB Update at Global Peering Forum 12.0 , New York, NY, US - April 26, 2017 - Aaron Huges PeeringDB at GORE/ESNOG Reunion 19 , Barcelona, ES - April 6, 2017 - Arnold Nipper PeeringDB at CEE Peering Days 2017 , Ljubljana, SL - March 23, 2017 - Arnold Nipper PeeringDB 2.0 at APRICOT 2017 , Ho Chi Minh City, VN - February 28, 2017 - Arnold Nipper","title":"2017"},{"location":"presentations/#2016","text":"PeeringDB at 19 KIKE Conference , Serock, PL - November 23, 2016 - Robert Jakub PeeringDB 2.0 at ITNOG2 , Bologna, IT - November 3, 2016 - Arnold Nipper PeeringDB Product Committee Charter Survey at EPF 11 , Sofia, BG - September 20, 2016 - Eric Loos PeeringDB 2.0 at NPD 16 , The Hague, NL - September 16, 2016 - Walt Wollny PeeringDB 2.0 at AfPIF 2016 , Dar es Salaam, TZ - August 30, 2016 - Arnold Nipper PeeringDB 2.0 for IXPs at AFIX 2016 , Dar es Salaam, TZ - August 29, 2016 - Arnold Nipper PeeringDB 2.0 at ENOG 11 , Moscow, RU - June 7, 2016 - Arnold Nipper PeeringDB 2.0 at RIPE 72 , Copenhagen, DK - May 25, 2016 - Greg Hankins PeeringDB 2.0 at CHI-NOG 06 , Chicago, IL, US - May 12, 2016 - Matt Griswold PeeringDB 2.0 e o Cen\u00e1rio Brasileiro and IX.br Guia de cadastro de informa\u00e7\u00f5es de ASNs no PeeringDB at GTER 41 , Uberl\u00e2ndia, BR - May 12, 2016 - Eduardo Ascen\u00e7o Reis PeeringDB 2.0 for IXPs at 28th Euro-IX Forum , Luxembourg, LU - April 26, 2016 - Greg Hankins / Arnold Nipper RIPE SEE 5 , Tirana, AL - April 19, 2016 - Arnold Nipper PeeringDB 2.0 at UKNOF34 , Manchester, UK - April 21, 2016 - Greg Hankins PeeringDB Update at GPF 11 , Los Angeles, CA, US - April 13, 2016 - Aaron Hughes NetNod , Stockholm, SE - March 17, 2016 - Job Snijders DKNOG6 , Copenhagen, DK - March 10, 2016 - Job Snijders PeeringDB Update - Aaron Hughes APRICOT 2016 , Auckland, NZ - February 23, 2016 - Aaron Hughes NANOG 66 , San Diego, CA, US - February 10, 2016 - Aaron Hughes PeeringDB Version 2 Coding Introduction at NANOG 66 , San Diego, CA, US - February 8, 2016 - Matt Griswold","title":"2016"},{"location":"presentations/#2015","text":"PeeringDB Version 2 Brazil - Matt Griswold / Greg Hankins IX (PTT) F\u00f3rum 9 , S\u00e3o Paulo, BR - December 8, 2015 - Greg Hankins PeeringDB Version 2 Introduction - Matt Griswold 27th Euro-IX Forum , Berlin, DE - October 26, 2015 - Greg Hankins DENOG7 , Darmstadt, DE - October 30, 2015 - Arnold Nipper","title":"2015"},{"location":"tools/","text":"Tools to Help You Get the Best from PeeringDB Many PeeringDB users develop tools that make use of our API to help you analyze our data and make informed decisions. This page features tools that have been made freely available for anyone to use under permissive licenses. If you have developed a tool and would like to be added to this page, please contact support@peeringdb.com with details and we will follow up with you. Name Function ARouteServer ARouteServer builds and tests feature-rich configurations for BGP route servers. Routing policy information is sourced from PeeringDB. It delivers a templated configuration file for BIRD or OpenBGPD route servers. django-peeringdb Django library with a local PeeringDB database sync. It defines the database schema to create a local database copy. The library is easy to integrate into a common framework for local tools and custom interfaces, and also supports multiple database engines (MySQL, Postgres, SQLite). ixgen Ixgen is yet-another open-source, multi-platform generator for peering configurations on IXs incorporating the global peeringdb api, but also is able to spin up its own \"compatible\" server for faster results. Ixgen is configured by an INI- or JSON-style format, producing custom template-driven or fixed json-style configurations, that can be printed on the terminal, to a file or served by HTTP. IXP Manager IXP Manager is a full stack management platform for Internet eXchange Points (IXPs) which includes an administration and customer portal; provides end to end provisioning; and both teaches and implements best practice. pdb-intersect Find common peering points in peeringdb. This is a brother to PeerFinder . It will find common possible peering points, even if either of the peering parties is NOT using the same ASN in all locations (like, incidentally, 3557 does). PeerFinder PeerFinder is a python3.7 and beyond script which finds common points of presence between ASNs as reported by PeeringDB. Peering Manager Peering Manager is an open-source BGP management solution built with Python and Django. Designed with features and simplicity in mind, it allows engineers to track and configure BGP sessions on networks without having to copy and paste existing configurations. peeringdb-py peeringdb-py is a Python client for PeeringDB. It features functions to get objects and display them in JSON or YAML format, and provides a whois-like display of records. The client also has an integrated local database sync, and provides a Python library for integration with custom tools. Some examples are available too. rich-traceroute rich-traceroute enhances traceroute output with additional information, like the origin ASNs of the IPs and the name of any Internet Exchange peering LAN that shows up in the path. Search in PeeringDB Search in PeeringDB a Chrome extension to search for ASNs, networks, and IXs in PeeringDB using the context menu. TraceMON TraceMON is a tool for visualizing a network topology generated by traceroutes that provides one-click access to IXP and network information. It also displays PeeringDB information and allows the user to update their record. RIPE Atlas users can access it by selecting a traceroute measurement and clicking on the TraceMON tab","title":"Tools to Help You Get the Best from PeeringDB"},{"location":"tools/#tools-to-help-you-get-the-best-from-peeringdb","text":"Many PeeringDB users develop tools that make use of our API to help you analyze our data and make informed decisions. This page features tools that have been made freely available for anyone to use under permissive licenses. If you have developed a tool and would like to be added to this page, please contact support@peeringdb.com with details and we will follow up with you. Name Function ARouteServer ARouteServer builds and tests feature-rich configurations for BGP route servers. Routing policy information is sourced from PeeringDB. It delivers a templated configuration file for BIRD or OpenBGPD route servers. django-peeringdb Django library with a local PeeringDB database sync. It defines the database schema to create a local database copy. The library is easy to integrate into a common framework for local tools and custom interfaces, and also supports multiple database engines (MySQL, Postgres, SQLite). ixgen Ixgen is yet-another open-source, multi-platform generator for peering configurations on IXs incorporating the global peeringdb api, but also is able to spin up its own \"compatible\" server for faster results. Ixgen is configured by an INI- or JSON-style format, producing custom template-driven or fixed json-style configurations, that can be printed on the terminal, to a file or served by HTTP. IXP Manager IXP Manager is a full stack management platform for Internet eXchange Points (IXPs) which includes an administration and customer portal; provides end to end provisioning; and both teaches and implements best practice. pdb-intersect Find common peering points in peeringdb. This is a brother to PeerFinder . It will find common possible peering points, even if either of the peering parties is NOT using the same ASN in all locations (like, incidentally, 3557 does). PeerFinder PeerFinder is a python3.7 and beyond script which finds common points of presence between ASNs as reported by PeeringDB. Peering Manager Peering Manager is an open-source BGP management solution built with Python and Django. Designed with features and simplicity in mind, it allows engineers to track and configure BGP sessions on networks without having to copy and paste existing configurations. peeringdb-py peeringdb-py is a Python client for PeeringDB. It features functions to get objects and display them in JSON or YAML format, and provides a whois-like display of records. The client also has an integrated local database sync, and provides a Python library for integration with custom tools. Some examples are available too. rich-traceroute rich-traceroute enhances traceroute output with additional information, like the origin ASNs of the IPs and the name of any Internet Exchange peering LAN that shows up in the path. Search in PeeringDB Search in PeeringDB a Chrome extension to search for ASNs, networks, and IXs in PeeringDB using the context menu. TraceMON TraceMON is a tool for visualizing a network topology generated by traceroutes that provides one-click access to IXP and network information. It also displays PeeringDB information and allows the user to update their record. RIPE Atlas users can access it by selecting a traceroute measurement and clicking on the TraceMON tab","title":"Tools to Help You Get the Best from PeeringDB"},{"location":"translation/","text":"Contributing to translations Adding a new locale If you wish to add a new locale, create a new ticket at https://github.com/peeringdb/peeringdb/issues stating your intent and one of the operators / developers will generate the necessary files for your locale and add them to the repository. Translation is done using PeeringDB's Weblate instance at https://translate.peeringdb.com/ . Signing in to Weblate Authentication is done via your PeeringDB credentials. So the only thing you have to do is to register with PeeringDB. Selecting languages Go to https://translate.peeringdb.com/accounts/profile/ to edit your profile and also to select the languages you want to help with. Viewing updates Translations are updated hourly on the beta website https://beta.peeringdb.com/ and daily at 0000 UTC on the production website https://www.peeringdb.com/ . Mailing list The http://lists.peeringdb.com/cgi-bin/mailman/listinfo/pdb-translate mailing list is open to anyone working on, or interested in translations. Thanks to the translators! ar Sara Alamin Mohamed Hassan de Sara Fink Stefan Funke Arnold Nipper jp Yutaro Fujii Norisuke Hirai Yuki Ikuno Chise Kawamura Kaoru Kitauchi Shintaro Kojima Yutaka Kumamoto Ryohey Matsumoto Masataka Mawatari Akira Nakagawa Satoshi Okawa Hideyuki Sasaki Tomocha Katsuyasu Toyama Taiji Tsuchiya Yudai Yamagishi Katsushi Yamaguchi Junpei Yoshino pt Ligio Gomes (NTT Communications) Robert Philips (NTT Communications)","title":"Translations"},{"location":"translation/#contributing-to-translations","text":"","title":"Contributing to translations"},{"location":"translation/#adding-a-new-locale","text":"If you wish to add a new locale, create a new ticket at https://github.com/peeringdb/peeringdb/issues stating your intent and one of the operators / developers will generate the necessary files for your locale and add them to the repository. Translation is done using PeeringDB's Weblate instance at https://translate.peeringdb.com/ .","title":"Adding a new locale"},{"location":"translation/#signing-in-to-weblate","text":"Authentication is done via your PeeringDB credentials. So the only thing you have to do is to register with PeeringDB.","title":"Signing in to Weblate"},{"location":"translation/#selecting-languages","text":"Go to https://translate.peeringdb.com/accounts/profile/ to edit your profile and also to select the languages you want to help with.","title":"Selecting languages"},{"location":"translation/#viewing-updates","text":"Translations are updated hourly on the beta website https://beta.peeringdb.com/ and daily at 0000 UTC on the production website https://www.peeringdb.com/ .","title":"Viewing updates"},{"location":"translation/#mailing-list","text":"The http://lists.peeringdb.com/cgi-bin/mailman/listinfo/pdb-translate mailing list is open to anyone working on, or interested in translations.","title":"Mailing list"},{"location":"translation/#thanks-to-the-translators","text":"","title":"Thanks to the translators!"},{"location":"translation/#ar","text":"Sara Alamin Mohamed Hassan","title":"ar"},{"location":"translation/#de","text":"Sara Fink Stefan Funke Arnold Nipper","title":"de"},{"location":"translation/#jp","text":"Yutaro Fujii Norisuke Hirai Yuki Ikuno Chise Kawamura Kaoru Kitauchi Shintaro Kojima Yutaka Kumamoto Ryohey Matsumoto Masataka Mawatari Akira Nakagawa Satoshi Okawa Hideyuki Sasaki Tomocha Katsuyasu Toyama Taiji Tsuchiya Yudai Yamagishi Katsushi Yamaguchi Junpei Yoshino","title":"jp"},{"location":"translation/#pt","text":"Ligio Gomes (NTT Communications) Robert Philips (NTT Communications)","title":"pt"},{"location":"blog/2022_product_report/","text":"PeeringDB 2022 Product Report Data quality and search were ranked most important by respondents to our last three user surveys. This update looks at improvements we have made to keep data quality high by improving automation, giving users better tools, and making it easier to find and export data in PeeringDB. How to sum up what PeeringDB delivered for its users in 2022? Let's start with some numbers that help describe the scale of the work we\u2019ve done. This year, we put out 10 major releases resolving over 100 issues. These included: Search and export improvements Continued improvements to support for IX-F Member Export Better tools to support organizational admins 10 more HOWTO documents We got contributions from a number of community members, including engineers at Amazon and Google. Search We normalised the names of states and provinces to improve search results. This builds on the improvements to advanced search deployed in 2021, which allow users to drill down to get very specific information and export in structured formats. Managing your organization We improved the way organizational admins can manage their users. Features include the ability to require affiliated users to enable Multi Factor Authentication using authenticator apps or a hardware token, or use a particular email domain. Automation We implemented a process to ensure that old networks are removed from PeeringDB when the RIRs or NIRs deregister their AS Numbers. In combination with regular improvements to our support for the IX-F Member Export Schema, we are ensuring that PeeringDB\u2019s data remains fresh. Operations We built on last year\u2019s improvements to API Key support. We introduced query throttling with authenticated users getting more queries. We also worked with developers of third-party tools that query PeeringDB so that they make efficient queries. We want users to have the best experience they can. So we teamed up with members of the community at the NANOG 86 Hackathon to install our local cache, peeringdb-py , on a wide range of systems. Having tested that we have documented the installation process to make it easier for users to sync PeeringDB to their own infrastructure. Documentation Last year we introduced our HOWTO series . This year we expanded it and have had to organise it into five sections. We probably have an explanation of how to do what you want. If there\u2019s something missing, then please let us know. User support Sometimes users need support. We\u2019ve improved lots of support tools, so we can help users more quickly and effectively. On average, tickets are resolved in under eight hours, with automation managing 40% of this workload. What\u2019s Coming Next? Two major improvements scheduled for early 2023 include further improvements to search, and translation for anonymous web users. We\u2019ll publish a more detailed product roadmap towards the end of January. The improvements we make are only as good as the requests we get from you. We want to make sure that we understand what you need and why. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB 2022 Product Report"},{"location":"blog/2022_product_report/#peeringdb-2022-product-report","text":"Data quality and search were ranked most important by respondents to our last three user surveys. This update looks at improvements we have made to keep data quality high by improving automation, giving users better tools, and making it easier to find and export data in PeeringDB. How to sum up what PeeringDB delivered for its users in 2022? Let's start with some numbers that help describe the scale of the work we\u2019ve done. This year, we put out 10 major releases resolving over 100 issues. These included: Search and export improvements Continued improvements to support for IX-F Member Export Better tools to support organizational admins 10 more HOWTO documents We got contributions from a number of community members, including engineers at Amazon and Google.","title":"PeeringDB 2022 Product Report"},{"location":"blog/2022_product_report/#search","text":"We normalised the names of states and provinces to improve search results. This builds on the improvements to advanced search deployed in 2021, which allow users to drill down to get very specific information and export in structured formats.","title":"Search"},{"location":"blog/2022_product_report/#managing-your-organization","text":"We improved the way organizational admins can manage their users. Features include the ability to require affiliated users to enable Multi Factor Authentication using authenticator apps or a hardware token, or use a particular email domain.","title":"Managing your organization"},{"location":"blog/2022_product_report/#automation","text":"We implemented a process to ensure that old networks are removed from PeeringDB when the RIRs or NIRs deregister their AS Numbers. In combination with regular improvements to our support for the IX-F Member Export Schema, we are ensuring that PeeringDB\u2019s data remains fresh.","title":"Automation"},{"location":"blog/2022_product_report/#operations","text":"We built on last year\u2019s improvements to API Key support. We introduced query throttling with authenticated users getting more queries. We also worked with developers of third-party tools that query PeeringDB so that they make efficient queries. We want users to have the best experience they can. So we teamed up with members of the community at the NANOG 86 Hackathon to install our local cache, peeringdb-py , on a wide range of systems. Having tested that we have documented the installation process to make it easier for users to sync PeeringDB to their own infrastructure.","title":"Operations"},{"location":"blog/2022_product_report/#documentation","text":"Last year we introduced our HOWTO series . This year we expanded it and have had to organise it into five sections. We probably have an explanation of how to do what you want. If there\u2019s something missing, then please let us know.","title":"Documentation"},{"location":"blog/2022_product_report/#user-support","text":"Sometimes users need support. We\u2019ve improved lots of support tools, so we can help users more quickly and effectively. On average, tickets are resolved in under eight hours, with automation managing 40% of this workload.","title":"User support"},{"location":"blog/2022_product_report/#whats-coming-next","text":"Two major improvements scheduled for early 2023 include further improvements to search, and translation for anonymous web users. We\u2019ll publish a more detailed product roadmap towards the end of January. The improvements we make are only as good as the requests we get from you. We want to make sure that we understand what you need and why. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"What\u2019s Coming Next?"},{"location":"blog/2023_product_report/","text":"2023 Product Report PeeringDB users have consistently ranked data quality and search as most important. We worked on improvements to these core aspects of our service alongside others in 2023. We didn\u2019t run a survey at the end of 2023 as we heard the same message consistently. We are in the process of delivering improvements and will survey users again when we have completed their delivery. We deployed 12 releases in 2023, addressing 76 issues, 11 of which were bugs. We also introduced four new features and made some significant improvements that all users will care about. New data We introduced two new objects in 2023. The Carrier object describes networks providing high capacity links between facilities. Now, when you look at a facility you can scroll down and see which carriers have a presence there. We also introduced the Campus object. This is a set object. It describes a group of facilities where inter-buildings cross-connects are available. When you look at a campus's page on our website you'll see which facilities: Are served by each Carrier Where each Ix is present Where each Network is present Data access We also started publishing all our facility data in a .KMZ file, which we update once a day. You can either download it regularly or set it as a network location in Google Earth Pro. You can view facilities in a map view and overlay them with other datasets. We also introduced a new search backend. You can now search for a type of data in a location. It knows the coordinates of facilities and has a radius for each locality. This means you don't need to worry about city names in conurbations \u2013 or rural areas. Data quality We introduced a way for your internal source of truth to propose updates to PeeringDB . You don't need to give your internal source of truth any PeeringDB credentials. You can then log into our website and approve or deny the changes. This helps organizations that are too big for fully manual updates but not big enough to want to automate everything. Improvements We introduced some policy options for organization admins in 2023. PeeringDB Oauth is increasingly relied on for peering and more. Now, organization admins can require their users to: Enable 2FA Use an email address tied to a specific domain Reconfirm their address periodically We also introduced a peering permission . Now admins can control who is able to use PeeringDB Oauth for peering portals. Volunteer developers We're glad that volunteers can contribute to PeeringDB. We improved the development environment a couple of years ago and volunteers use it. We'd like to acknowledge 2023 contributions from: Carlos Aguado Daniel Van Allen Todd Crane kiraum What's coming in 2024? PeeringDB users have told us that they love the simplicity of our web UI. They've also told us that it's outdated and slow. We have developed new designs for our front end and admin interfaces. We'll start rolling these out in parallel soon. You'll be able to test and provide feedback through preview.peeringdb.com. We started that process early in 2024. It didn\u2019t go quite right, so we rolled back the changes and will improve our testing and deployment processes. We'll also be making significant improvements to our .KMZ support. We'll streamline the daily export and make .KMZ available as an export format for Advanced Searches, where that makes sense. We'll also continue to improve support for the carrier and campus objects. People The Admin Committee , the people behind support@peeringdb.com, changed in 2023. Chriztoffer Hansen took the chair, Peter Helmenstine the vice-chair, and new members joined: Budiwijaya Ron Grant Adam Korab Cris\u00f3stomo Mbundu Ryan Williams Ben Ryall recruited new members for the Outreach Committee in 2023: Lynsey Buckingham Tarryn Kidd Jonathan Martone Ester Paal The Product Committee changed for the start of 2024. We have three new members: Jeff Bartig Jack Carrozzo Paul Hoogsteder And Stephen McManus will step down as chair of the committee at the start of March. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"2023 Product Report"},{"location":"blog/2023_product_report/#2023-product-report","text":"PeeringDB users have consistently ranked data quality and search as most important. We worked on improvements to these core aspects of our service alongside others in 2023. We didn\u2019t run a survey at the end of 2023 as we heard the same message consistently. We are in the process of delivering improvements and will survey users again when we have completed their delivery. We deployed 12 releases in 2023, addressing 76 issues, 11 of which were bugs. We also introduced four new features and made some significant improvements that all users will care about.","title":"2023 Product Report"},{"location":"blog/2023_product_report/#new-data","text":"We introduced two new objects in 2023. The Carrier object describes networks providing high capacity links between facilities. Now, when you look at a facility you can scroll down and see which carriers have a presence there. We also introduced the Campus object. This is a set object. It describes a group of facilities where inter-buildings cross-connects are available. When you look at a campus's page on our website you'll see which facilities: Are served by each Carrier Where each Ix is present Where each Network is present","title":"New data"},{"location":"blog/2023_product_report/#data-access","text":"We also started publishing all our facility data in a .KMZ file, which we update once a day. You can either download it regularly or set it as a network location in Google Earth Pro. You can view facilities in a map view and overlay them with other datasets. We also introduced a new search backend. You can now search for a type of data in a location. It knows the coordinates of facilities and has a radius for each locality. This means you don't need to worry about city names in conurbations \u2013 or rural areas.","title":"Data access"},{"location":"blog/2023_product_report/#data-quality","text":"We introduced a way for your internal source of truth to propose updates to PeeringDB . You don't need to give your internal source of truth any PeeringDB credentials. You can then log into our website and approve or deny the changes. This helps organizations that are too big for fully manual updates but not big enough to want to automate everything.","title":"Data quality"},{"location":"blog/2023_product_report/#improvements","text":"We introduced some policy options for organization admins in 2023. PeeringDB Oauth is increasingly relied on for peering and more. Now, organization admins can require their users to: Enable 2FA Use an email address tied to a specific domain Reconfirm their address periodically We also introduced a peering permission . Now admins can control who is able to use PeeringDB Oauth for peering portals.","title":"Improvements"},{"location":"blog/2023_product_report/#volunteer-developers","text":"We're glad that volunteers can contribute to PeeringDB. We improved the development environment a couple of years ago and volunteers use it. We'd like to acknowledge 2023 contributions from: Carlos Aguado Daniel Van Allen Todd Crane kiraum","title":"Volunteer developers"},{"location":"blog/2023_product_report/#whats-coming-in-2024","text":"PeeringDB users have told us that they love the simplicity of our web UI. They've also told us that it's outdated and slow. We have developed new designs for our front end and admin interfaces. We'll start rolling these out in parallel soon. You'll be able to test and provide feedback through preview.peeringdb.com. We started that process early in 2024. It didn\u2019t go quite right, so we rolled back the changes and will improve our testing and deployment processes. We'll also be making significant improvements to our .KMZ support. We'll streamline the daily export and make .KMZ available as an export format for Advanced Searches, where that makes sense. We'll also continue to improve support for the carrier and campus objects.","title":"What's coming in 2024?"},{"location":"blog/2023_product_report/#people","text":"The Admin Committee , the people behind support@peeringdb.com, changed in 2023. Chriztoffer Hansen took the chair, Peter Helmenstine the vice-chair, and new members joined: Budiwijaya Ron Grant Adam Korab Cris\u00f3stomo Mbundu Ryan Williams Ben Ryall recruited new members for the Outreach Committee in 2023: Lynsey Buckingham Tarryn Kidd Jonathan Martone Ester Paal The Product Committee changed for the start of 2024. We have three new members: Jeff Bartig Jack Carrozzo Paul Hoogsteder And Stephen McManus will step down as chair of the committee at the start of March. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"People"},{"location":"blog/advanced_search_1/","text":"Advanced Search (Part 1) You told us in our 2020 survey that improving search was your top priority. That\u2019s why we have been making some database changes to support better search. In a recent release we rolled out changes that significantly improve the performance of our advanced search feature. Advanced search now lets you explicitly filter searches location, network presence, service level and a wide range of other features. You get the results you\u2019re looking for and can export them in structured data formats, so you can import the data into tools that will help you make decisions. We are continuing to work on improvements to the advanced search options. We will then turn our focus to the default search. This set of improvements to search will build on the work we delivered earlier in the year and allow more geographically targeted searches. Take a look at the advanced search feature and try it for yourself! If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Advanced Search (Part 1)"},{"location":"blog/advanced_search_1/#advanced-search-part-1","text":"You told us in our 2020 survey that improving search was your top priority. That\u2019s why we have been making some database changes to support better search. In a recent release we rolled out changes that significantly improve the performance of our advanced search feature. Advanced search now lets you explicitly filter searches location, network presence, service level and a wide range of other features. You get the results you\u2019re looking for and can export them in structured data formats, so you can import the data into tools that will help you make decisions. We are continuing to work on improvements to the advanced search options. We will then turn our focus to the default search. This set of improvements to search will build on the work we delivered earlier in the year and allow more geographically targeted searches. Take a look at the advanced search feature and try it for yourself! If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Advanced Search (Part 1)"},{"location":"blog/advanced_search_2/","text":"Advanced Search (Part 2) We\u2019ve published a couple of recent blogs about how we are improving search, following feedback on its importance in the 2020 user survey . Here\u2019s another one! We introduced two significant improvements in the production release 2.28.0. Our first improvement makes it easier to search based on a partial name. When an organization\u2019s name has two parts, you can now search for just the first part and then select from all the organizations that share that name. Previously, search worked on exact matches. This change makes it easier for users to find the organizations they want. Our second improvement allows users to search for facilities within a given radius, using the Advanced Search interface. Users can search from a country and city, and select a radius in kilometres or miles. Of course, you can achieve the same results using the API or the web interface, which means you can integrate this feature into your own tools. We hope you find these changes make PeeringDB even more useful to you. We prioritized these improvements because of the feedback we hear in 2020. We run out 2021 user survey in September but we\u2019re open to feedback on how to improve PeeringDB at any time. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Advanced Search (Part 2)"},{"location":"blog/advanced_search_2/#advanced-search-part-2","text":"We\u2019ve published a couple of recent blogs about how we are improving search, following feedback on its importance in the 2020 user survey . Here\u2019s another one! We introduced two significant improvements in the production release 2.28.0. Our first improvement makes it easier to search based on a partial name. When an organization\u2019s name has two parts, you can now search for just the first part and then select from all the organizations that share that name. Previously, search worked on exact matches. This change makes it easier for users to find the organizations they want. Our second improvement allows users to search for facilities within a given radius, using the Advanced Search interface. Users can search from a country and city, and select a radius in kilometres or miles. Of course, you can achieve the same results using the API or the web interface, which means you can integrate this feature into your own tools. We hope you find these changes make PeeringDB even more useful to you. We prioritized these improvements because of the feedback we hear in 2020. We run out 2021 user survey in September but we\u2019re open to feedback on how to improve PeeringDB at any time. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Advanced Search (Part 2)"},{"location":"blog/alphabetical_search/","text":"Alphabetical Search Results PeeringDB users have told us that data quality and search are what they value most. We have made changes to improve the search experience: You can search a radius from any address in Advanced Search . You can filter searches using the criteria important to you. You can test our new, faster, v2 Search . We have just improved v2 search to give back results in alphabetical order. It's a small change but has a big impact. If there's an exact match for a search term, it will be shown at the very top of the results. Partial matches are shown in alphabetical order. Try it out! And try out other searches using v2 Search and then let us know what you think. We need your feedback to improve search. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Alphabetical Search Results"},{"location":"blog/alphabetical_search/#alphabetical-search-results","text":"PeeringDB users have told us that data quality and search are what they value most. We have made changes to improve the search experience: You can search a radius from any address in Advanced Search . You can filter searches using the criteria important to you. You can test our new, faster, v2 Search . We have just improved v2 search to give back results in alphabetical order. It's a small change but has a big impact. If there's an exact match for a search term, it will be shown at the very top of the results. Partial matches are shown in alphabetical order. Try it out! And try out other searches using v2 Search and then let us know what you think. We need your feedback to improve search. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Alphabetical Search Results"},{"location":"blog/api_keys/","text":"API Keys How often does one new feature deliver three important improvements? Adding support for API Keys in this week\u2019s beta release does this. API Keys will help organizations improve the security of the data they publish while linking the tools to the org itself and not its people. API Keys allow organizations to have authenticated access directly associated with the org itself and not with individual users. Organizations will now have better control of their data and won\u2019t need to tie automation to their users\u2019 credentials, which will improve robust continuity of operations should individuals leave the organization. Organizations previously faced a problem that if a user left, and their PeeringDB account was closed, any update processes that used the user\u2019s account would end. Organizations can now tie automated processes to role accounts, ensuring continuity of operations even when people change. And if you automate searches to find new peers, your scripts can now be updated to collect contact information as well as other details. As more organizations use API Keys to automate more of their interactions with PeeringDB, we will get a better idea of who is using the API and who is not. This will allow us to engage with them so we can understand what they value. Of course, this does not mean that we\u2019ll be abandoning users who want to focus on using the web interface. Aris Lambrianidis, a senior security engineer with White & Case LLP, says: \u201c The ability to leverage API keys means that programmatic workflows can work reliably using an authentication and authorization model independently of any credentials assigned to humans. Decoupling these access methods should significantly benefit the security and scalability of such operations. \u201d We have published some documentation showing how to generate an API Key, and use that API Key to achieve tasks that will be common to many organizations using PeeringDB. We have also published sample code to help you develop your own automation. Additional examples that others can use are also welcome. Everyone benefits from sharing this kind of code as it means more accurate data quality. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"API Keys"},{"location":"blog/api_keys/#api-keys","text":"How often does one new feature deliver three important improvements? Adding support for API Keys in this week\u2019s beta release does this. API Keys will help organizations improve the security of the data they publish while linking the tools to the org itself and not its people. API Keys allow organizations to have authenticated access directly associated with the org itself and not with individual users. Organizations will now have better control of their data and won\u2019t need to tie automation to their users\u2019 credentials, which will improve robust continuity of operations should individuals leave the organization. Organizations previously faced a problem that if a user left, and their PeeringDB account was closed, any update processes that used the user\u2019s account would end. Organizations can now tie automated processes to role accounts, ensuring continuity of operations even when people change. And if you automate searches to find new peers, your scripts can now be updated to collect contact information as well as other details. As more organizations use API Keys to automate more of their interactions with PeeringDB, we will get a better idea of who is using the API and who is not. This will allow us to engage with them so we can understand what they value. Of course, this does not mean that we\u2019ll be abandoning users who want to focus on using the web interface. Aris Lambrianidis, a senior security engineer with White & Case LLP, says: \u201c The ability to leverage API keys means that programmatic workflows can work reliably using an authentication and authorization model independently of any credentials assigned to humans. Decoupling these access methods should significantly benefit the security and scalability of such operations. \u201d We have published some documentation showing how to generate an API Key, and use that API Key to achieve tasks that will be common to many organizations using PeeringDB. We have also published sample code to help you develop your own automation. Additional examples that others can use are also welcome. Everyone benefits from sharing this kind of code as it means more accurate data quality. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"API Keys"},{"location":"blog/api_writes_need_api_key/","text":"API Writes now Need an API Key You now need to use an API key if you want to update PeeringDB using the API. PeeringDB will continue to support HTTP Basic Authentication (HBA) for queries with the existing API, but transitioning to an API key is strongly recommended for users and organizations who have not already done so, since it is a more secure operational practice. We encourage all users to enable Multi-Factor Authentication (MFA) and to use that when accessing our website from a browser. We encourage anyone that wants to use our API to do so using API keys. We made this change because there is no way to perform MFA with HBA. Removing the ability to update PeeringDB via the API without API keys conforms to security best practices. We support both user and organizational API keys. We have a HOWTO about creating API keys and using them. We have also introduced some organizational policy features this month. Organizations can now require users: To enable MFA To have an email address from a specific domain To revalidate their account on a schedule set by the organization We made this change because of an internal security analysis. We accept security reports to security@peeringdb.com . We have published a HOWTO for making security reports. If you have questions about PeeringDB security, please write to security@peeringdb.com . If you need help configuring API keys, please write to support@peeringdb.com .","title":"API Writes now Need an API Key"},{"location":"blog/api_writes_need_api_key/#api-writes-now-need-an-api-key","text":"You now need to use an API key if you want to update PeeringDB using the API. PeeringDB will continue to support HTTP Basic Authentication (HBA) for queries with the existing API, but transitioning to an API key is strongly recommended for users and organizations who have not already done so, since it is a more secure operational practice. We encourage all users to enable Multi-Factor Authentication (MFA) and to use that when accessing our website from a browser. We encourage anyone that wants to use our API to do so using API keys. We made this change because there is no way to perform MFA with HBA. Removing the ability to update PeeringDB via the API without API keys conforms to security best practices. We support both user and organizational API keys. We have a HOWTO about creating API keys and using them. We have also introduced some organizational policy features this month. Organizations can now require users: To enable MFA To have an email address from a specific domain To revalidate their account on a schedule set by the organization We made this change because of an internal security analysis. We accept security reports to security@peeringdb.com . We have published a HOWTO for making security reports. If you have questions about PeeringDB security, please write to security@peeringdb.com . If you need help configuring API keys, please write to support@peeringdb.com .","title":"API Writes now Need an API Key"},{"location":"blog/automating_configuration/","text":"Automating Configuration - Why We Support the IX-F Member Export Schema We just released 2.29.0-beta and three of the improvements relate to our support for the IX-F Member Export Schema . The last year has seen half a dozen releases with changes to better support it. But why should PeeringDB support this API? Why should exchanges use it? And how can networks benefit from it? It is an agreed standard for which allows IXPs to make their member lists available for automatic consumption by tools like PeeringDB. Exchanges can publish important technical information about their participating networks, including their AS Number and IP address information. There are freely available tools that use this data to build configurations and automate work that would otherwise require tickets, and some copy and paste. So, how can a network take advantage of this if they participate at an exchange using the schema? It\u2019s simple, just select the \u201cAllow IXP Update\u201d radio button in your network configuration page. And if you\u2019re an exchange that sees the advantage of automatically sharing information about your participating networks? If you are using software that can automatically generate the JSON, you just need to configure the URL for us to poll in the LAN configuration panel for your exchange. Our continuing efforts in this area are designed to help exchanges share more accurate information about their participants, and networks to automate configuration. So, take a look at what the schema can do for your organization. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Automating Configuration - Why We Support the IX-F Member Export Schema"},{"location":"blog/automating_configuration/#automating-configuration-why-we-support-the-ix-f-member-export-schema","text":"We just released 2.29.0-beta and three of the improvements relate to our support for the IX-F Member Export Schema . The last year has seen half a dozen releases with changes to better support it. But why should PeeringDB support this API? Why should exchanges use it? And how can networks benefit from it? It is an agreed standard for which allows IXPs to make their member lists available for automatic consumption by tools like PeeringDB. Exchanges can publish important technical information about their participating networks, including their AS Number and IP address information. There are freely available tools that use this data to build configurations and automate work that would otherwise require tickets, and some copy and paste. So, how can a network take advantage of this if they participate at an exchange using the schema? It\u2019s simple, just select the \u201cAllow IXP Update\u201d radio button in your network configuration page. And if you\u2019re an exchange that sees the advantage of automatically sharing information about your participating networks? If you are using software that can automatically generate the JSON, you just need to configure the URL for us to poll in the LAN configuration panel for your exchange. Our continuing efforts in this area are designed to help exchanges share more accurate information about their participants, and networks to automate configuration. So, take a look at what the schema can do for your organization. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Automating Configuration - Why We Support the IX-F Member Export Schema"},{"location":"blog/better_data/","text":"Better Data PeeringDB users told us in surveys that data quality and search results are their two top priorities. Release 2.54.0 has multiple changes to improve data quality and search results. Report inaccurate data One of them is a feature allowing logged in users to report data they believe to be inaccurate. Every page now has a button that lets users report data they believe is inaccurate. The report form lets the user identify the specific element believe to be wrong, along with a reason. If the user knows, they can suggest what the correct data should be. The Admin Committee will review reports. Network types Many networks provide more than one kind of function. You can now select more than one type for each network you run. The Product Committee considered adding more granularity for network types. They decided against it, as not everyone shares the same understanding of terms. Allowing networks to select multiple options is a compromise that doesn't require a breaking change in the API. The Network Type field will probably not be imported into v3 of the API. Power choices The Available Voltage Services field now only shows non-standard power offers. Everyone expects data centers to offer power at the standard voltages for the country or territory they serve. What users find interesting is the non-standard offers. For the time being we only offer three of these non-standard power options. If you offer a different non-standard power option, please let us know. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Better Data"},{"location":"blog/better_data/#better-data","text":"PeeringDB users told us in surveys that data quality and search results are their two top priorities. Release 2.54.0 has multiple changes to improve data quality and search results.","title":"Better Data"},{"location":"blog/better_data/#report-inaccurate-data","text":"One of them is a feature allowing logged in users to report data they believe to be inaccurate. Every page now has a button that lets users report data they believe is inaccurate. The report form lets the user identify the specific element believe to be wrong, along with a reason. If the user knows, they can suggest what the correct data should be. The Admin Committee will review reports.","title":"Report inaccurate data"},{"location":"blog/better_data/#network-types","text":"Many networks provide more than one kind of function. You can now select more than one type for each network you run. The Product Committee considered adding more granularity for network types. They decided against it, as not everyone shares the same understanding of terms. Allowing networks to select multiple options is a compromise that doesn't require a breaking change in the API. The Network Type field will probably not be imported into v3 of the API.","title":"Network types"},{"location":"blog/better_data/#power-choices","text":"The Available Voltage Services field now only shows non-standard power offers. Everyone expects data centers to offer power at the standard voltages for the country or territory they serve. What users find interesting is the non-standard offers. For the time being we only offer three of these non-standard power options. If you offer a different non-standard power option, please let us know. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Power choices"},{"location":"blog/better_search_and_export/","text":"Better Search and Export PeeringDB users tell us that they most value search and data quality. We've been working on improved search for the last year and have made another improvement to it. It now recognizes ISO 3166-1 alpha-2 codes \u2013 the codes used for ccTLDs. This means you can now search for things like all the facilities or IXPs in a country. But sometimes you want to visualize our data. For a while we've been offering a .KMZ file of all the facilities in PeeringDB with a geocode. We've now improved that file. The new format removes unneeded fields, making it small enough for Google Maps to use. And you can export any advanced search based on location in a KMZ format. So take a look at these features on beta.peeringdb.com ahead of their deployment to production. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Better Search and Export"},{"location":"blog/better_search_and_export/#better-search-and-export","text":"PeeringDB users tell us that they most value search and data quality. We've been working on improved search for the last year and have made another improvement to it. It now recognizes ISO 3166-1 alpha-2 codes \u2013 the codes used for ccTLDs. This means you can now search for things like all the facilities or IXPs in a country. But sometimes you want to visualize our data. For a while we've been offering a .KMZ file of all the facilities in PeeringDB with a geocode. We've now improved that file. The new format removes unneeded fields, making it small enough for Google Maps to use. And you can export any advanced search based on location in a KMZ format. So take a look at these features on beta.peeringdb.com ahead of their deployment to production. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Better Search and Export"},{"location":"blog/carrier_object/","text":"Should PeeringDB Create a New \u201cCarrier\u201d Object? That was the question we asked two focus groups on 29 June 2021. Initial discussion Our Product Committee and others have been discussing this issue for about six months now. The one thing we could agree on was that we needed to reach out to more of the people involved in buying and delivering these interconnection services to help make a decision. Focus groups To do that we held two focus groups on 29 June 2021. One was scheduled at a time that is good for people in APAC and the west coast of the Americas. The other was scheduled at a time that was good for people in EMEA and the east coast of the Americas. The discussion included 12 people with significant industry experience in running carriers, exchanges, facilities, and networks. To build a trusted environment we applied the Chatham House Rule, so this blog post describes what was discussed but does not quote anyone or attribute views to any participants. The focus groups began with a description of the problem and then looked at a simple approach to address it: an object to describe the carrier and associated objects listing the facilities and IXs where they have a presence. The focus groups then discussed several questions: Is there an unmet need? Should PeeringDB be the organization to address it? What do you feel about the proposed approach? Should the proposed approach be adapted in some way? Why? There was a strong sense across both sessions that it can be a challenge to find out about connectivity options between locations. While putting information about those options in PeeringDB would not eliminate the need for buyers to perform their own due diligence checks, it would simplify the process of finding out who to contact and what they might be able to offer. There was support for putting this information in PeeringDB because keeping related information in a single database makes things easier for users. Participants favored starting off with a less complex object and adding detail in future iterations. Including information about whether links between locations were L1, L2, or L3, and owned or leased seemed to be the agreed minimum set of information. That said, there were concerns that keeping this information accurate could be a challenge for multiple reasons, including inaccurate internal asset databases and a desire from marketing people to overclaim. Any implementation would need to be well supported by extensions to the API. Despite making it easy for people to rapidly deploy information about new and improved deployments to PeeringDB through the API there was support ensuring that a new object can be created and configured through the web interface. Next steps When the Product Committee has evaluated the feedback we got from these two focus groups it will make a decision on the principle of creating this new object. If the decision is to proceed there is work to be done in both designing and naming it. What is the minimum set of information that would be useful to PeeringDB users? What name would cause least confusion? We\u2019ll keep you updated. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Should PeeringDB Create a New \u201cCarrier\u201d Object?"},{"location":"blog/carrier_object/#should-peeringdb-create-a-new-carrier-object","text":"That was the question we asked two focus groups on 29 June 2021.","title":"Should PeeringDB Create a New \u201cCarrier\u201d Object?"},{"location":"blog/carrier_object/#initial-discussion","text":"Our Product Committee and others have been discussing this issue for about six months now. The one thing we could agree on was that we needed to reach out to more of the people involved in buying and delivering these interconnection services to help make a decision.","title":"Initial discussion"},{"location":"blog/carrier_object/#focus-groups","text":"To do that we held two focus groups on 29 June 2021. One was scheduled at a time that is good for people in APAC and the west coast of the Americas. The other was scheduled at a time that was good for people in EMEA and the east coast of the Americas. The discussion included 12 people with significant industry experience in running carriers, exchanges, facilities, and networks. To build a trusted environment we applied the Chatham House Rule, so this blog post describes what was discussed but does not quote anyone or attribute views to any participants. The focus groups began with a description of the problem and then looked at a simple approach to address it: an object to describe the carrier and associated objects listing the facilities and IXs where they have a presence. The focus groups then discussed several questions: Is there an unmet need? Should PeeringDB be the organization to address it? What do you feel about the proposed approach? Should the proposed approach be adapted in some way? Why? There was a strong sense across both sessions that it can be a challenge to find out about connectivity options between locations. While putting information about those options in PeeringDB would not eliminate the need for buyers to perform their own due diligence checks, it would simplify the process of finding out who to contact and what they might be able to offer. There was support for putting this information in PeeringDB because keeping related information in a single database makes things easier for users. Participants favored starting off with a less complex object and adding detail in future iterations. Including information about whether links between locations were L1, L2, or L3, and owned or leased seemed to be the agreed minimum set of information. That said, there were concerns that keeping this information accurate could be a challenge for multiple reasons, including inaccurate internal asset databases and a desire from marketing people to overclaim. Any implementation would need to be well supported by extensions to the API. Despite making it easy for people to rapidly deploy information about new and improved deployments to PeeringDB through the API there was support ensuring that a new object can be created and configured through the web interface.","title":"Focus groups"},{"location":"blog/carrier_object/#next-steps","text":"When the Product Committee has evaluated the feedback we got from these two focus groups it will make a decision on the principle of creating this new object. If the decision is to proceed there is work to be done in both designing and naming it. What is the minimum set of information that would be useful to PeeringDB users? What name would cause least confusion? We\u2019ll keep you updated. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Next steps"},{"location":"blog/carrier_object_deployed/","text":"Carrier Objects We introduced support for carrier objects in release 2.43.0. This is the first new pillar of data we\u2019ve introduced for several years. Take a look and tell us how we can improve our implementation. A \u201cCarrier\u201d provides high capacity links between facilities. Networks and IXPs use these to connect equipment spread across multiple interconnection facilities in a metro area. They are different from the regular network in PeeringDB because their services run at layers 1 or 2 . Our initial deployment lets carriers show that they have a presence in an interconnection facility. It does not show what services are provided, like wavelengths or fiber. This is a tighter set of features than was suggested by the focus group in 2021 . We want to get a minimal set of features out first and see how they are received before tackling more complicated features. We have started small and will expand based on user demand. If this is a feature that your organization could benefit from, please take a look and tell us what you think. You can contact us on social media, and you can reach the Product Committee on our mailing list . If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Carrier Objects"},{"location":"blog/carrier_object_deployed/#carrier-objects","text":"We introduced support for carrier objects in release 2.43.0. This is the first new pillar of data we\u2019ve introduced for several years. Take a look and tell us how we can improve our implementation. A \u201cCarrier\u201d provides high capacity links between facilities. Networks and IXPs use these to connect equipment spread across multiple interconnection facilities in a metro area. They are different from the regular network in PeeringDB because their services run at layers 1 or 2 . Our initial deployment lets carriers show that they have a presence in an interconnection facility. It does not show what services are provided, like wavelengths or fiber. This is a tighter set of features than was suggested by the focus group in 2021 . We want to get a minimal set of features out first and see how they are received before tackling more complicated features. We have started small and will expand based on user demand. If this is a feature that your organization could benefit from, please take a look and tell us what you think. You can contact us on social media, and you can reach the Product Committee on our mailing list . If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Carrier Objects"},{"location":"blog/contacts_marked_private/","text":"Changes to Contacts Marked as Private We are removing the \u201cPrivate\u201d status from Points of Contact in PeeringDB in Release 2.30.0 . This status was carried over from v1 of PeeringDB but is no longer useful, it just confuses users. It will no longer be available as a status for newly created contacts. And if your organization has one or more contacts marked as \u201cPrivate\u201d in PeeringDB, admin users will be prompted to make a decision between two statuses when they next log in. These are : Users: only other PeeringDB users can see the Point of Contact Public: the record is shown to anonymous users as well as authenticated users If you are an administrator for your organization\u2019s entry in PeeringDB, you need to decide which of the Points of Contact you publish should only be disclosed to authenticated PeeringDB users and which should be published to anonymous users. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Changes to Contacts Marked as Private"},{"location":"blog/contacts_marked_private/#changes-to-contacts-marked-as-private","text":"We are removing the \u201cPrivate\u201d status from Points of Contact in PeeringDB in Release 2.30.0 . This status was carried over from v1 of PeeringDB but is no longer useful, it just confuses users. It will no longer be available as a status for newly created contacts. And if your organization has one or more contacts marked as \u201cPrivate\u201d in PeeringDB, admin users will be prompted to make a decision between two statuses when they next log in. These are : Users: only other PeeringDB users can see the Point of Contact Public: the record is shown to anonymous users as well as authenticated users If you are an administrator for your organization\u2019s entry in PeeringDB, you need to decide which of the Points of Contact you publish should only be disclosed to authenticated PeeringDB users and which should be published to anonymous users. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Changes to Contacts Marked as Private"},{"location":"blog/containerize/","text":"Containerized Deployment We deployed beta.peeringdb.com on a container based platform in release 2.59.0 . We'll be starting integration on www.peeringdb.com in the 2.60 release. PeeringDB started on a bare metal LAMP stack, and was deployed to virtual machines with the release of PeeringDB 2.0 about ten years ago, but technology has advanced since then. By deploying PeeringDB in containers, we will reduce our computing costs and more easily adjust compute resources dynamically based on load. Managing spending is important as PeeringDB is fully funded by our sponsors . It should also help us narrow the scope of work for our volunteer Operations Committee. We have been looking for ways to improve the efficiency of our spending since 2022 and started looking at switching to serving directly from containers in November 2023 . This deployment will complete that process. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Containerized Deployment"},{"location":"blog/containerize/#containerized-deployment","text":"We deployed beta.peeringdb.com on a container based platform in release 2.59.0 . We'll be starting integration on www.peeringdb.com in the 2.60 release. PeeringDB started on a bare metal LAMP stack, and was deployed to virtual machines with the release of PeeringDB 2.0 about ten years ago, but technology has advanced since then. By deploying PeeringDB in containers, we will reduce our computing costs and more easily adjust compute resources dynamically based on load. Managing spending is important as PeeringDB is fully funded by our sponsors . It should also help us narrow the scope of work for our volunteer Operations Committee. We have been looking for ways to improve the efficiency of our spending since 2022 and started looking at switching to serving directly from containers in November 2023 . This deployment will complete that process. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Containerized Deployment"},{"location":"blog/contributing_code/","text":"Contributing Code to PeeringDB Just Got Easier Have you ever wanted to contribute code to improve PeeringDB but found it too challenging to set up a test environment? The good news is that spinning up a development environment is now radically simplified. We have made it much easier for volunteer developers to contribute code to PeeringDB. Until now, even if a code fix was relatively simple, the process for testing it before making the contribution was a challenge. Now, you can spin up a PeeringDB development instance in a couple of minutes. You\u2019ll be able to test changes locally and then submit pull requests when you\u2019re ready to publish your contribution. Andy Davidson, CTO of Asteroid says: \u201c I recently developed some code against the PeeringDB OAuth instance for https://trackbgp.com . But it was hard to get a development environment set up. Now I can spin up a development environment in less time than it takes to boil a kettle. \u201d We have documented the steps needed to get up and running on GitHub. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Contributing Code to PeeringDB Just Got Easier"},{"location":"blog/contributing_code/#contributing-code-to-peeringdb-just-got-easier","text":"Have you ever wanted to contribute code to improve PeeringDB but found it too challenging to set up a test environment? The good news is that spinning up a development environment is now radically simplified. We have made it much easier for volunteer developers to contribute code to PeeringDB. Until now, even if a code fix was relatively simple, the process for testing it before making the contribution was a challenge. Now, you can spin up a PeeringDB development instance in a couple of minutes. You\u2019ll be able to test changes locally and then submit pull requests when you\u2019re ready to publish your contribution. Andy Davidson, CTO of Asteroid says: \u201c I recently developed some code against the PeeringDB OAuth instance for https://trackbgp.com . But it was hard to get a development environment set up. Now I can spin up a development environment in less time than it takes to boil a kettle. \u201d We have documented the steps needed to get up and running on GitHub. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Contributing Code to PeeringDB Just Got Easier"},{"location":"blog/data_quality_improvements/","text":"Data Quality Improvements Rolled Out Each year we run a user survey. Users keep telling us that network configuration data in PeeringDB is a top priority. We have recently added some automation to improve our data quality for networks. We now track the status of each ASN registered in PeeringDB at the RIRs and NIRs. When a network is no longer in the RIR or NIR database we can remove it. Release 2.41.0 completes the deployment of this feature. It will remove about 150 networks, which is only about 0.5%. But over time, it should help us maintain the highest quality data possible. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Data Quality Improvements Rolled Out"},{"location":"blog/data_quality_improvements/#data-quality-improvements-rolled-out","text":"Each year we run a user survey. Users keep telling us that network configuration data in PeeringDB is a top priority. We have recently added some automation to improve our data quality for networks. We now track the status of each ASN registered in PeeringDB at the RIRs and NIRs. When a network is no longer in the RIR or NIR database we can remove it. Release 2.41.0 completes the deployment of this feature. It will remove about 150 networks, which is only about 0.5%. But over time, it should help us maintain the highest quality data possible. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Data Quality Improvements Rolled Out"},{"location":"blog/data_quality_removing_closed_networks/","text":"Data Quality \u2014 Removing Closed Networks We added an \"RIR Status\" field in the data returned for networks a few months ago. The \"ok\" status lets you know that the ASN was assigned by an RIR or NIR. The \"RIR Status Updated\" field lets you know when we last checked. We use these fields to enable automation. In September we\u2019ll remove about 400 networks that have been returned to the RIR. We check the status of the network every day and will only flag it for deletion if the status was \u201cnot assigned\u201d for three months. This automation runs every month. It will improve data quality. You won't see results for networks that aren't operating anymore. And organizations assigned those returned and reissued ASNs will be able to register on PeeringDB without needing support from our volunteer Admin Committee. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Data Quality \u2014 Removing Closed Networks"},{"location":"blog/data_quality_removing_closed_networks/#data-quality-removing-closed-networks","text":"We added an \"RIR Status\" field in the data returned for networks a few months ago. The \"ok\" status lets you know that the ASN was assigned by an RIR or NIR. The \"RIR Status Updated\" field lets you know when we last checked. We use these fields to enable automation. In September we\u2019ll remove about 400 networks that have been returned to the RIR. We check the status of the network every day and will only flag it for deletion if the status was \u201cnot assigned\u201d for three months. This automation runs every month. It will improve data quality. You won't see results for networks that aren't operating anymore. And organizations assigned those returned and reissued ASNs will be able to register on PeeringDB without needing support from our volunteer Admin Committee. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Data Quality \u2014 Removing Closed Networks"},{"location":"blog/faster_queries/","text":"Faster PeeringDB Queries - No Limits Did you know that you can have lightning fast access to PeeringDB's database without query limits? Our web and API services impose query limits. Network latency is sometimes a factor when querying from far away. That's why we have peeringdb-py . This is a cache you can run in your own network or even on a laptop. You synchronize the whole database to a machine you run. Once you've done that you are only limited by your own infrastructure. Re-synchronizing peeringdb-py is efficient - it only syncs changes since the last sync - and is unlikely to trigger any query limits if updated once per hour or less frequently as needed. Are there reasons you should run a local cache other than query limits and latency? Yes. If you populate internal databases or generate configurations with PeeringDB then a local cache adds reliability. You'll have local access instead of having to rely on intermediate networks. Of course, peeringdb-py isn't the only choice. Some organizations have developed their own local caches. If you want a local cache you are welcome to use the peeringdb-py codebase as a reference. And if all you need is to have PeeringDB in a local database, it can be really simple . If your organization is a heavy PeeringDB user then work out the right caching approach for you. We\u2019re happy to answer any questions. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Faster PeeringDB Queries - No Limits"},{"location":"blog/faster_queries/#faster-peeringdb-queries-no-limits","text":"Did you know that you can have lightning fast access to PeeringDB's database without query limits? Our web and API services impose query limits. Network latency is sometimes a factor when querying from far away. That's why we have peeringdb-py . This is a cache you can run in your own network or even on a laptop. You synchronize the whole database to a machine you run. Once you've done that you are only limited by your own infrastructure. Re-synchronizing peeringdb-py is efficient - it only syncs changes since the last sync - and is unlikely to trigger any query limits if updated once per hour or less frequently as needed. Are there reasons you should run a local cache other than query limits and latency? Yes. If you populate internal databases or generate configurations with PeeringDB then a local cache adds reliability. You'll have local access instead of having to rely on intermediate networks. Of course, peeringdb-py isn't the only choice. Some organizations have developed their own local caches. If you want a local cache you are welcome to use the peeringdb-py codebase as a reference. And if all you need is to have PeeringDB in a local database, it can be really simple . If your organization is a heavy PeeringDB user then work out the right caching approach for you. We\u2019re happy to answer any questions. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Faster PeeringDB Queries - No Limits"},{"location":"blog/geographic_search/","text":"Geographic Search Where is it? This isn\u2019t just the plaintive cry of someone wondering where the courier has left their package. Finding facilities in PeeringDB has been a big problem. The database did not associate partial and full names in searches, so if a facility owner had entered Montana but you were searching for MT, their facility might not be found. As new facilities are created in our database they will be linked to geographic coordinates. Changing the way we record authoritative data for locations in our database means that we will be able to introduce a number of helpful features over the next few months. Over time, we will improve the way existing address data is presented in the database. The number of facilities in PeeringDB grew by about a sixth in 2020. As we add entries with new addresses in 2021 we will normalize the primary presentation of addresses and use them as a search key. We\u2019ll add support for additional searches based on these addresses in the coming months and use this experience to help us clean up the data we already have. In the future, we will be able to expand the way we provide searches. For instance, we\u2019ll be able to provide a search for facilities with a distance radius of a chosen coordinate. Other innovative searches will be possible and we will prioritize their development based on user feedback. Tom Paseka, Network Strategy at Cloudflare, says: \u201c Getting location naming right is hugely important. Having D\u00fcsseldorf and Dusseldorf return the same results makes local use of PeeringDB possible, giving more precise data across languages and improving data integrity. This is great!. \u201d If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Geographic Search"},{"location":"blog/geographic_search/#geographic-search","text":"Where is it? This isn\u2019t just the plaintive cry of someone wondering where the courier has left their package. Finding facilities in PeeringDB has been a big problem. The database did not associate partial and full names in searches, so if a facility owner had entered Montana but you were searching for MT, their facility might not be found. As new facilities are created in our database they will be linked to geographic coordinates. Changing the way we record authoritative data for locations in our database means that we will be able to introduce a number of helpful features over the next few months. Over time, we will improve the way existing address data is presented in the database. The number of facilities in PeeringDB grew by about a sixth in 2020. As we add entries with new addresses in 2021 we will normalize the primary presentation of addresses and use them as a search key. We\u2019ll add support for additional searches based on these addresses in the coming months and use this experience to help us clean up the data we already have. In the future, we will be able to expand the way we provide searches. For instance, we\u2019ll be able to provide a search for facilities with a distance radius of a chosen coordinate. Other innovative searches will be possible and we will prioritize their development based on user feedback. Tom Paseka, Network Strategy at Cloudflare, says: \u201c Getting location naming right is hugely important. Having D\u00fcsseldorf and Dusseldorf return the same results makes local use of PeeringDB possible, giving more precise data across languages and improving data integrity. This is great!. \u201d If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Geographic Search"},{"location":"blog/guidelines_for_registering/","text":"Guidelines for Registering in PeeringDB About one third of ASNs are now registered in PeeringDB. While that\u2019s a success it comes with a responsibility to enhance transparency over what is required when registering a network, IXP, or facility in the database. We have just published a set of guidelines that document the criteria our automation uses, or will use when new software is developed. Where we cannot automate, volunteers on our Admin Committee evaluate requests. There are clear criteria for the automatic, or semi-automatic, approval of each type of object. These are illustrated with flowcharts that show the possible paths through the process. What Are They? Networks must have a unique and properly registered ASN. IXP LANs must use unique and properly registered address space. There are some automatic prefix limits but these can be manually overridden when needed. Facilities can automatically be added by organizations that already have a facility, be validated by a web page offering interconnection services there, or be attested to by users that confirm the facility exists. There is also a process to remove empty facilities without registered networks or IXPs present in them. Feedback Loop We know that these guidelines will need to be improved and updated as we learn, so we have built in an \u201cexception\u201d process to help with that. Whenever an easy path is not possible, the requester can ask for more eyes on their registration request. The first step in this process is to get input from all the volunteers on the Admin Committee. If more eyes are needed, the request can be shared with all of PeeringDB\u2019s Stewards, a group made from the committee chairs and board members. Where a formal decision is needed, the board can vote on a request and make a final decision. Each step of this process is an opportunity to learn from experience and feed that back into our published guidelines, our internal processes, and any software that automates them. So, while we\u2019ve published these today, we\u2019ll be updating them as the interconnection environment changes and we need to adapt to it. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Guidelines for Registering in PeeringDB"},{"location":"blog/guidelines_for_registering/#guidelines-for-registering-in-peeringdb","text":"About one third of ASNs are now registered in PeeringDB. While that\u2019s a success it comes with a responsibility to enhance transparency over what is required when registering a network, IXP, or facility in the database. We have just published a set of guidelines that document the criteria our automation uses, or will use when new software is developed. Where we cannot automate, volunteers on our Admin Committee evaluate requests. There are clear criteria for the automatic, or semi-automatic, approval of each type of object. These are illustrated with flowcharts that show the possible paths through the process.","title":"Guidelines for Registering in PeeringDB"},{"location":"blog/guidelines_for_registering/#what-are-they","text":"Networks must have a unique and properly registered ASN. IXP LANs must use unique and properly registered address space. There are some automatic prefix limits but these can be manually overridden when needed. Facilities can automatically be added by organizations that already have a facility, be validated by a web page offering interconnection services there, or be attested to by users that confirm the facility exists. There is also a process to remove empty facilities without registered networks or IXPs present in them.","title":"What Are They?"},{"location":"blog/guidelines_for_registering/#feedback-loop","text":"We know that these guidelines will need to be improved and updated as we learn, so we have built in an \u201cexception\u201d process to help with that. Whenever an easy path is not possible, the requester can ask for more eyes on their registration request. The first step in this process is to get input from all the volunteers on the Admin Committee. If more eyes are needed, the request can be shared with all of PeeringDB\u2019s Stewards, a group made from the committee chairs and board members. Where a formal decision is needed, the board can vote on a request and make a final decision. Each step of this process is an opportunity to learn from experience and feed that back into our published guidelines, our internal processes, and any software that automates them. So, while we\u2019ve published these today, we\u2019ll be updating them as the interconnection environment changes and we need to adapt to it. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Feedback Loop"},{"location":"blog/improving_beta_and_kmz_export/","text":"Making beta.peeringdb.com, Search, and KMZ More Attractive Just over half a percent of users visit beta.peeringdb.com each month. We recognize that there are good and bad reasons for this. On the good side, people are pretty happy with www.peeringdb.com . But on the bad side, we only used to refresh the data in beta.peeringdb.com once a month. We're getting ready to refresh data on our beta site every hour. That will come soon. It will make it an ideal place to test your searches each month \u2013 and get early access to new search features. Of course, you can also test making updates on our beta site. But any changes you make will be wiped at the next refresh. We're also refining our .KMZ export in 2.57.0. The export has tidier entries for each fac , improves the placemark, and drops facilities without location data. And two bugs have been fixed for v2 search, which is now the default search. A problem searching for a \" fac in city name\" has been resolved. And a bug that caused a server error when the last character was a colon has also been fixed. So, head on over to beta.peeringdb.com and test these improvements. Let us know if you see any problems with these improvements. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Making beta.peeringdb.com, Search, and KMZ More Attractive"},{"location":"blog/improving_beta_and_kmz_export/#making-betapeeringdbcom-search-and-kmz-more-attractive","text":"Just over half a percent of users visit beta.peeringdb.com each month. We recognize that there are good and bad reasons for this. On the good side, people are pretty happy with www.peeringdb.com . But on the bad side, we only used to refresh the data in beta.peeringdb.com once a month. We're getting ready to refresh data on our beta site every hour. That will come soon. It will make it an ideal place to test your searches each month \u2013 and get early access to new search features. Of course, you can also test making updates on our beta site. But any changes you make will be wiped at the next refresh. We're also refining our .KMZ export in 2.57.0. The export has tidier entries for each fac , improves the placemark, and drops facilities without location data. And two bugs have been fixed for v2 search, which is now the default search. A problem searching for a \" fac in city name\" has been resolved. And a bug that caused a server error when the last character was a colon has also been fixed. So, head on over to beta.peeringdb.com and test these improvements. Let us know if you see any problems with these improvements. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Making beta.peeringdb.com, Search, and KMZ More Attractive"},{"location":"blog/installing_peeringdb-py/","text":"Installing peeringdb-py at NANOG 86 NANOG 86 participants installed peeringdb-py on Linux, macOS, and Windows Subsystem for Linux. We have used what they learned to publish a new HOWTO document to help more users install it. peeringdb-py is our reference implementation of a local cache of our database. You can install it on your own infrastructure. That means you can avoid query limits and get the best response time. Our new HOWTO document explains when you'll need an API Key and what kind of API Key to create. It also lists the packages you'll need installed to get peeringdb-py up and running. Finally, it provides guidance on how you can automatically refresh the database. We improved the installation guide to help users keep their installation current. Better documentation makes it easier for everyone to install peeringdb-py . If you need to make a lot of PeeringDB queries then we encourage you to query a local cache. If you do this, you'll want to run API queries against it using our software library. The API will remain stable while the database structure could change. The API will remain stable and our library will ensure you don't need to rewrite your queries. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Installing peeringdb-py at NANOG 86"},{"location":"blog/installing_peeringdb-py/#installing-peeringdb-py-at-nanog-86","text":"NANOG 86 participants installed peeringdb-py on Linux, macOS, and Windows Subsystem for Linux. We have used what they learned to publish a new HOWTO document to help more users install it. peeringdb-py is our reference implementation of a local cache of our database. You can install it on your own infrastructure. That means you can avoid query limits and get the best response time. Our new HOWTO document explains when you'll need an API Key and what kind of API Key to create. It also lists the packages you'll need installed to get peeringdb-py up and running. Finally, it provides guidance on how you can automatically refresh the database. We improved the installation guide to help users keep their installation current. Better documentation makes it easier for everyone to install peeringdb-py . If you need to make a lot of PeeringDB queries then we encourage you to query a local cache. If you do this, you'll want to run API queries against it using our software library. The API will remain stable while the database structure could change. The API will remain stable and our library will ensure you don't need to rewrite your queries. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Installing peeringdb-py at NANOG 86"},{"location":"blog/introducing_analytics/","text":"Introducing Analytics Until now, we have not had any analytics about PeeringDB usage. This is a problem. It means we can't make informed decisions that will help us deliver a better service to users. Users have often told us that they want improvements to the website. We know what some of these are but not all. Introducing analytics will help us learn more about the problems some users face. We can then develop improvements to meet their needs. The Product Committee has decided to test Google Analytics. The first step is to deploy it on beta.peeringdb.com. We'll use this as a learning experience. When we are happy with the analytics, we want to deploy an analytics service on www.peeringdb.com. What's next? We know that analytics only provides some of the information we need. We are developing plans to help users give more timely and targeted feedback. We can use that feedback to design and implement the improvements that will be most valuable to users. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Introducing Analytics"},{"location":"blog/introducing_analytics/#introducing-analytics","text":"Until now, we have not had any analytics about PeeringDB usage. This is a problem. It means we can't make informed decisions that will help us deliver a better service to users. Users have often told us that they want improvements to the website. We know what some of these are but not all. Introducing analytics will help us learn more about the problems some users face. We can then develop improvements to meet their needs. The Product Committee has decided to test Google Analytics. The first step is to deploy it on beta.peeringdb.com. We'll use this as a learning experience. When we are happy with the analytics, we want to deploy an analytics service on www.peeringdb.com.","title":"Introducing Analytics"},{"location":"blog/introducing_analytics/#whats-next","text":"We know that analytics only provides some of the information we need. We are developing plans to help users give more timely and targeted feedback. We can use that feedback to design and implement the improvements that will be most valuable to users. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"What's next?"},{"location":"blog/more_details_facilities/","text":"More Details on Facilities We\u2019ve been working hard on improving search this year. In release 2.30.0 we have an improvement that will help data centers and their users. Organizations running facilities can now share information about ownership status, power availability, diversity and resilience. These can all be used as filters in the advanced search page . You will need to be logged in to take advantage of these features. These improvements build on improvements delivered in 2.27.1 and 2.28.0 . We have additional search improvements scheduled for development in upcoming releases. If you run a facility you\u2019ll want to login and update its entry, so it can be found when users take advantage of these new searches. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"More Details on Facilities"},{"location":"blog/more_details_facilities/#more-details-on-facilities","text":"We\u2019ve been working hard on improving search this year. In release 2.30.0 we have an improvement that will help data centers and their users. Organizations running facilities can now share information about ownership status, power availability, diversity and resilience. These can all be used as filters in the advanced search page . You will need to be logged in to take advantage of these features. These improvements build on improvements delivered in 2.27.1 and 2.28.0 . We have additional search improvements scheduled for development in upcoming releases. If you run a facility you\u2019ll want to login and update its entry, so it can be found when users take advantage of these new searches. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"More Details on Facilities"},{"location":"blog/nanog_85_hackathon/","text":"NANOG 85 Hackathon Project We\u2019re bringing a project to the NANOG 85 Hackathon on June 4 - 5, 2022. This time we\u2019re looking for your help in developing a proof of concept we can later develop into a full implementation. In exchange, we\u2019ll walk you through what PeeringDB does. We\u2019ll explain how we support different parts of the Internet community. And you can choose some PeeringDB swag as a thank you! We\u2019re looking for help both from people who want to help turn a flowchart into a designed tool and those who can code ( Python and Django ) and. If you can see yourself in one of those roles then let us know at productcom@lists.peeringdb.com and register for the Hackathon . What\u2019s the project? When we published our updated guidelines for registering in PeeringDB we noted that some of the processes would need to be automated. We want to automate the attestation process for confirming new interconnection facilities. This is a new process to let users confirm that an interconnection facility is real and offers relevant services. It\u2019s a simple workflow. What will you learn? We\u2019ll make sure that you have a good understanding of PeeringDB\u2019s structure. You\u2019ll learn what a network is - in PeeringDB. And we\u2019ll also explain about Internet Exchange Points and interconnection facilities. And you\u2019ll get a good understanding of how and why people use PeeringDB. What will we test together? We want to look at ways that facility operators could activate the process. How should they get the unique URL? Do we need to implement ways for them to share it? What should PeeringDB users see when they visit the URL? Should we implement #1156 ? What will success look like? Success is helping people understand PeeringDB and using that to work out how our tool needs to work. Getting some proof of concept code running would be nice. But identifying issues to take account of in a future feature design would be a win, too. Introducing new people to PeeringDB and getting them involved in extending it is a win for us! If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"NANOG 85 Hackathon Project"},{"location":"blog/nanog_85_hackathon/#nanog-85-hackathon-project","text":"We\u2019re bringing a project to the NANOG 85 Hackathon on June 4 - 5, 2022. This time we\u2019re looking for your help in developing a proof of concept we can later develop into a full implementation. In exchange, we\u2019ll walk you through what PeeringDB does. We\u2019ll explain how we support different parts of the Internet community. And you can choose some PeeringDB swag as a thank you! We\u2019re looking for help both from people who want to help turn a flowchart into a designed tool and those who can code ( Python and Django ) and. If you can see yourself in one of those roles then let us know at productcom@lists.peeringdb.com and register for the Hackathon .","title":"NANOG 85 Hackathon Project"},{"location":"blog/nanog_85_hackathon/#whats-the-project","text":"When we published our updated guidelines for registering in PeeringDB we noted that some of the processes would need to be automated. We want to automate the attestation process for confirming new interconnection facilities. This is a new process to let users confirm that an interconnection facility is real and offers relevant services. It\u2019s a simple workflow.","title":"What\u2019s the project?"},{"location":"blog/nanog_85_hackathon/#what-will-you-learn","text":"We\u2019ll make sure that you have a good understanding of PeeringDB\u2019s structure. You\u2019ll learn what a network is - in PeeringDB. And we\u2019ll also explain about Internet Exchange Points and interconnection facilities. And you\u2019ll get a good understanding of how and why people use PeeringDB.","title":"What will you learn?"},{"location":"blog/nanog_85_hackathon/#what-will-we-test-together","text":"We want to look at ways that facility operators could activate the process. How should they get the unique URL? Do we need to implement ways for them to share it? What should PeeringDB users see when they visit the URL? Should we implement #1156 ?","title":"What will we test together?"},{"location":"blog/nanog_85_hackathon/#what-will-success-look-like","text":"Success is helping people understand PeeringDB and using that to work out how our tool needs to work. Getting some proof of concept code running would be nice. But identifying issues to take account of in a future feature design would be a win, too. Introducing new people to PeeringDB and getting them involved in extending it is a win for us! If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"What will success look like?"},{"location":"blog/nanog_87_hackathon_proof_of_concept/","text":"Do You Want Your Configuration Management System to Update PeeringDB? The theme for NANOG 87's Hackathon was interacting with sources of truth. Our project focused on identifying the difference between what's in a configuration system and PeeringDB - then sending an update. Developers from FullCtl and Peering Manager worked together to develop a proof of concept feature. It lets users know when PeeringDB did not reflect the internal configuration. It then made it easy to send PeeringDB an update. Users tell us that network configuration data is what they value most. So developing ways to help users identify what to update could be valuable. And offering a way to tie that to an update mechanism could make updating PeeringDB much faster. We've created an issue describing this on GitHub . If you or your organization would benefit from a feature like this, please let us know. You can comment on the issue, write to the Product Committee's list , or chat with a PC member. If this is something our users want then we'll need to answer some questions. One example is how to manage multiple updates. How should web users be invited to review multiple updates, so they can approve or reject as needed? We also need to think about how to keep parity between the website and the API. The API supports write operations but is not interactive. So it might be important to add in a feature to show orgs the changes made to their objects. And we might want to add the ability to add a comment alongside updates, so admins can later review logs of what changed and why. We want to speak with people who develop tools that might implement this feature. If you develop a tool that could benefit from a feature like this then let us know. We'd like to speak. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Do You Want Your Configuration Management System to Update PeeringDB?"},{"location":"blog/nanog_87_hackathon_proof_of_concept/#do-you-want-your-configuration-management-system-to-update-peeringdb","text":"The theme for NANOG 87's Hackathon was interacting with sources of truth. Our project focused on identifying the difference between what's in a configuration system and PeeringDB - then sending an update. Developers from FullCtl and Peering Manager worked together to develop a proof of concept feature. It lets users know when PeeringDB did not reflect the internal configuration. It then made it easy to send PeeringDB an update. Users tell us that network configuration data is what they value most. So developing ways to help users identify what to update could be valuable. And offering a way to tie that to an update mechanism could make updating PeeringDB much faster. We've created an issue describing this on GitHub . If you or your organization would benefit from a feature like this, please let us know. You can comment on the issue, write to the Product Committee's list , or chat with a PC member. If this is something our users want then we'll need to answer some questions. One example is how to manage multiple updates. How should web users be invited to review multiple updates, so they can approve or reject as needed? We also need to think about how to keep parity between the website and the API. The API supports write operations but is not interactive. So it might be important to add in a feature to show orgs the changes made to their objects. And we might want to add the ability to add a comment alongside updates, so admins can later review logs of what changed and why. We want to speak with people who develop tools that might implement this feature. If you develop a tool that could benefit from a feature like this then let us know. We'd like to speak. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Do You Want Your Configuration Management System to Update PeeringDB?"},{"location":"blog/network_type_what_you_told_us/","text":"Network Type \u2013 What did you tell us? We invited PeeringDB users to tell us what they thought about the Network Type setting. This is the setting that describes your network to other PeeringDB users. It's OK 162 people participated and their core message was that the field is largely working for both those sharing and reading the data. Just over half of respondents use the field to make decisions. About two thirds think it is accurate or very accurate. About three quarters think the current range of options is useful or very useful. About half think the level of granularity is about right, while almost a third would like more nuance. Comments Lots of people told us how they use the Network Type field in the comments. Some reinforced their responses to the other questions with calls to remove the field, add additional options, or restrict the options to \u201ceyeball\u201d, \u201ccontent\u201d, and \u201chybrid\u201d. There was also a call to allow networks to select multiple categories. Next steps The Product Committee has decided to keep the Network Type field. We will not change the types of networks but will implement the ability to select multiple types. This will be implemented in the website and v2 API now deployed. We will plan a more radical update of the field for a future v3 API. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Network Type \u2013 What did you tell us?"},{"location":"blog/network_type_what_you_told_us/#network-type-what-did-you-tell-us","text":"We invited PeeringDB users to tell us what they thought about the Network Type setting. This is the setting that describes your network to other PeeringDB users.","title":"Network Type \u2013 What did you tell us?"},{"location":"blog/network_type_what_you_told_us/#its-ok","text":"162 people participated and their core message was that the field is largely working for both those sharing and reading the data. Just over half of respondents use the field to make decisions. About two thirds think it is accurate or very accurate. About three quarters think the current range of options is useful or very useful. About half think the level of granularity is about right, while almost a third would like more nuance.","title":"It's OK"},{"location":"blog/network_type_what_you_told_us/#comments","text":"Lots of people told us how they use the Network Type field in the comments. Some reinforced their responses to the other questions with calls to remove the field, add additional options, or restrict the options to \u201ceyeball\u201d, \u201ccontent\u201d, and \u201chybrid\u201d. There was also a call to allow networks to select multiple categories.","title":"Comments"},{"location":"blog/network_type_what_you_told_us/#next-steps","text":"The Product Committee has decided to keep the Network Type field. We will not change the types of networks but will implement the ability to select multiple types. This will be implemented in the website and v2 API now deployed. We will plan a more radical update of the field for a future v3 API. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Next steps"},{"location":"blog/network_type_your_input_sought/","text":"Network Type \u2013 Your Input Sought You can select from 10 options to describe your network in PeeringDB. We want to know if these options are useful. If we need to improve this part of PeeringDB, how should we improve it ? Please take our four question survey . We need your input to inform our decision. One option we're discussing is to clarify what each category means . Another is to deprecate the field . We know that not everyone understands the current categories in the same way. We don't know if anyone actually relies on this data to make decisions. Please take the survey and tell us if you use this data, how reliable you think it is, and how it should change if you think it needs improvement. The improvements we make are only as good as the requests we get from you. We want to make sure that we understand what you need and why. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Network Type \u2013 Your Input Sought"},{"location":"blog/network_type_your_input_sought/#network-type-your-input-sought","text":"You can select from 10 options to describe your network in PeeringDB. We want to know if these options are useful. If we need to improve this part of PeeringDB, how should we improve it ? Please take our four question survey . We need your input to inform our decision. One option we're discussing is to clarify what each category means . Another is to deprecate the field . We know that not everyone understands the current categories in the same way. We don't know if anyone actually relies on this data to make decisions. Please take the survey and tell us if you use this data, how reliable you think it is, and how it should change if you think it needs improvement. The improvements we make are only as good as the requests we get from you. We want to make sure that we understand what you need and why. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Network Type \u2013 Your Input Sought"},{"location":"blog/new_permission_manage_peering_sessions/","text":"New Permission: Manage Peering Sessions Last November, Maximilian Wilhelm suggested that we add a 'manage peering sessions' permission. Some networks let you request peering using our OAuth service . You don't have to rely on someone to read your email message. They get the ability to pull structured information about your network through our API. Automation. Everyone can win. Today, in 2.47.0 , we\u2019re introducing a new permission that lets organizations limit who can \"manage peering sessions\" via peering portals. It will default to \u2018on\u2019 for organizational admins. But other users won\u2019t get this permission by default. If you need this permission you\u2019ll need to speak with the admins for your organization\u2019s presence on PeeringDB. \" Today many peering portals leverage PeeringDB's OAuth to make managing peerings easier and remove the need to manage separate accounts with every network you peer with. The new \"manage peerings\" permission lets organisations control which of their teams can represent them to external organisations instead of relying on admin privileges in PeeringDB, providing safer and more secure access. \" Maximilian Wilhelm, Network Automation Engineer, Cloudflare Take a look at these new permissions if you use PeeringDB OAuth to manage peering sessions. If you operate a peering portal using our OAuth, you should make sure you check the new permission when authenticating users. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"New Permission: Manage Peering Sessions"},{"location":"blog/new_permission_manage_peering_sessions/#new-permission-manage-peering-sessions","text":"Last November, Maximilian Wilhelm suggested that we add a 'manage peering sessions' permission. Some networks let you request peering using our OAuth service . You don't have to rely on someone to read your email message. They get the ability to pull structured information about your network through our API. Automation. Everyone can win. Today, in 2.47.0 , we\u2019re introducing a new permission that lets organizations limit who can \"manage peering sessions\" via peering portals. It will default to \u2018on\u2019 for organizational admins. But other users won\u2019t get this permission by default. If you need this permission you\u2019ll need to speak with the admins for your organization\u2019s presence on PeeringDB. \" Today many peering portals leverage PeeringDB's OAuth to make managing peerings easier and remove the need to manage separate accounts with every network you peer with. The new \"manage peerings\" permission lets organisations control which of their teams can represent them to external organisations instead of relying on admin privileges in PeeringDB, providing safer and more secure access. \" Maximilian Wilhelm, Network Automation Engineer, Cloudflare Take a look at these new permissions if you use PeeringDB OAuth to manage peering sessions. If you operate a peering portal using our OAuth, you should make sure you check the new permission when authenticating users. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"New Permission: Manage Peering Sessions"},{"location":"blog/oauth_users/","text":"PeeringDB Can Bring Users to Your Application One of the most challenging parts of developing a new service or expanding an existing one is to get users to register for an account. That\u2019s one of the advantages of using PeeringDB\u2019s OAuth service. We\u2019ve already got plenty of users. But why would you want to enable PeeringDB\u2019s OAuth service with your application? Well, if it\u2019s focused on people at networks who engage in managing interconnections then you have a readymade audience. Take Facebook\u2019s example . They are now using PeeringDB OAuth as a part of the process they use to automate peering requests. \u201c We wanted to offer our partners an easy way to request and manage their peering with Facebook. Thanks to PeeringDB OAuth, our partner networks can submit peering requests and see their existing peering sessions with Facebook without having to login to their Facebook accounts! \u201d Jakub Heichman & Jenny Ramseyer @ Facebook Almost 150 applications have registered with PeeringDB and we\u2019re authenticating over 1,500 sessions each quarter. We expect that to grow. If you\u2019d like to learn how you can register your application with PeeringDB\u2019s OAuth service, take a look at our documentation . If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB Can Bring Users to Your Application"},{"location":"blog/oauth_users/#peeringdb-can-bring-users-to-your-application","text":"One of the most challenging parts of developing a new service or expanding an existing one is to get users to register for an account. That\u2019s one of the advantages of using PeeringDB\u2019s OAuth service. We\u2019ve already got plenty of users. But why would you want to enable PeeringDB\u2019s OAuth service with your application? Well, if it\u2019s focused on people at networks who engage in managing interconnections then you have a readymade audience. Take Facebook\u2019s example . They are now using PeeringDB OAuth as a part of the process they use to automate peering requests. \u201c We wanted to offer our partners an easy way to request and manage their peering with Facebook. Thanks to PeeringDB OAuth, our partner networks can submit peering requests and see their existing peering sessions with Facebook without having to login to their Facebook accounts! \u201d Jakub Heichman & Jenny Ramseyer @ Facebook Almost 150 applications have registered with PeeringDB and we\u2019re authenticating over 1,500 sessions each quarter. We expect that to grow. If you\u2019d like to learn how you can register your application with PeeringDB\u2019s OAuth service, take a look at our documentation . If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB Can Bring Users to Your Application"},{"location":"blog/october_2024_retrospective/","text":"October 2024 PeeringDB Product Update Strategy We reviewed and updated our strategy earlier in the year. We will be publishing overviews of product changes in April and October. We've had a blog for a few years but it\u2019s focused on details. These updates will give a bigger picture. People and process Terry Sweetser from APNIC has recently joined the Product Committee (PC). The PC now has members from Africa, Asia Pacific, Europe, and North America. Our committee\u2019s geographic diversity is matched by a diversity in expertise. We have updated our processes because our members live around the globe. We are using asynchronous work methods more. And we will focus on planning out sets of related issues to improve PeeringDB more quickly. We still encourage users to submit feature requests and bug reports in GitHub. We want to understand how feature developments can help our users. Please tell us whether you'd use a feature and how it would help. You can do this in GitHub, on our mailing list, or when you meet us at industry events. Last six months We've been rounding out support for Carrier objects. Organizations can now set user permissions for carriers. We\u2019ve also been working to improve data quality. We now enforce state naming. For instance, Queensland in Australia is now always QLD. We also normalize city names in responses but accept popular versions in the search request. So, a search for \"fac in M\u00fcnchen\" returns results for facilities within 34 km of Munich, Germany. The radius search is managed in the backend by the new search. It's different for each city. You can control the radius in Advanced Search, or just look on a map when you download our KMZ. The full KMZ download was popular. So, we tidied up the data in the export, added a watermark, so users know that they have PeeringDB data, and integrated KMZ support into other features. You can now download a .KMZ file of exchanges or facilities in a city, state, or country. This keeps the file size small, making it easier to integrate it with other data sources. Once you\u2019ve found the carrier, exchange, facility, or network you are interested in you can now export all their data in structured formats. Previously, this was only available for Advanced Search results. These data quality, search and extract features are one part of the work we've been doing. We've also put more effort into peeringdb-py, our local cache. We encourage anyone who wants to make heavy use of PeeringDB to run a local cache. There are no usage limits and no latency. If you often hit query limits then it could be worth installing. It is resource light, so it can run on a laptop as well as a server. If you sync it once an hour, the changes are normally under 100kb of data. We\u2019ve also made improvements behind the scenes. We\u2019ve switched to deploying PeeringDB in containers. This change will reduce the work needed by our volunteer Operations Committee. It will also help us manage costs better by adjusting compute resources dynamically based on load. Security A user made two security reports. Our Operations team also noticed one issue. Based on these reports, we will be making 2FA mandatory for all user accounts. We will also make some minor improvements to other elements of account security. We\u2019ll share more details after deploying changes. If you notice a security issue, please let us know! https://docs.peeringdb.com/howto/make-a-security-report/ Coming up and engagement Over the next six months we'd like to deploy improvements to our web design. These won't just make it look better. Once we have them in place we can implement lazy loading, to improve the user experience. We can also start to develop some key feature improvements, including saved searches, notifications, and comparison tools. Your input on how you'd use these and other feature improvements are welcome. You can create or comment on issues in GitHub. But we'd love to speak with you, too. We actively attend industry events around the world, so look for us there. Or send mail so we can schedule a conversation! If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"October 2024 PeeringDB Product Update"},{"location":"blog/october_2024_retrospective/#october-2024-peeringdb-product-update","text":"","title":"October 2024 PeeringDB Product Update"},{"location":"blog/october_2024_retrospective/#strategy","text":"We reviewed and updated our strategy earlier in the year. We will be publishing overviews of product changes in April and October. We've had a blog for a few years but it\u2019s focused on details. These updates will give a bigger picture.","title":"Strategy"},{"location":"blog/october_2024_retrospective/#people-and-process","text":"Terry Sweetser from APNIC has recently joined the Product Committee (PC). The PC now has members from Africa, Asia Pacific, Europe, and North America. Our committee\u2019s geographic diversity is matched by a diversity in expertise. We have updated our processes because our members live around the globe. We are using asynchronous work methods more. And we will focus on planning out sets of related issues to improve PeeringDB more quickly. We still encourage users to submit feature requests and bug reports in GitHub. We want to understand how feature developments can help our users. Please tell us whether you'd use a feature and how it would help. You can do this in GitHub, on our mailing list, or when you meet us at industry events.","title":"People and process"},{"location":"blog/october_2024_retrospective/#last-six-months","text":"We've been rounding out support for Carrier objects. Organizations can now set user permissions for carriers. We\u2019ve also been working to improve data quality. We now enforce state naming. For instance, Queensland in Australia is now always QLD. We also normalize city names in responses but accept popular versions in the search request. So, a search for \"fac in M\u00fcnchen\" returns results for facilities within 34 km of Munich, Germany. The radius search is managed in the backend by the new search. It's different for each city. You can control the radius in Advanced Search, or just look on a map when you download our KMZ. The full KMZ download was popular. So, we tidied up the data in the export, added a watermark, so users know that they have PeeringDB data, and integrated KMZ support into other features. You can now download a .KMZ file of exchanges or facilities in a city, state, or country. This keeps the file size small, making it easier to integrate it with other data sources. Once you\u2019ve found the carrier, exchange, facility, or network you are interested in you can now export all their data in structured formats. Previously, this was only available for Advanced Search results. These data quality, search and extract features are one part of the work we've been doing. We've also put more effort into peeringdb-py, our local cache. We encourage anyone who wants to make heavy use of PeeringDB to run a local cache. There are no usage limits and no latency. If you often hit query limits then it could be worth installing. It is resource light, so it can run on a laptop as well as a server. If you sync it once an hour, the changes are normally under 100kb of data. We\u2019ve also made improvements behind the scenes. We\u2019ve switched to deploying PeeringDB in containers. This change will reduce the work needed by our volunteer Operations Committee. It will also help us manage costs better by adjusting compute resources dynamically based on load.","title":"Last six months"},{"location":"blog/october_2024_retrospective/#security","text":"A user made two security reports. Our Operations team also noticed one issue. Based on these reports, we will be making 2FA mandatory for all user accounts. We will also make some minor improvements to other elements of account security. We\u2019ll share more details after deploying changes. If you notice a security issue, please let us know! https://docs.peeringdb.com/howto/make-a-security-report/","title":"Security"},{"location":"blog/october_2024_retrospective/#coming-up-and-engagement","text":"Over the next six months we'd like to deploy improvements to our web design. These won't just make it look better. Once we have them in place we can implement lazy loading, to improve the user experience. We can also start to develop some key feature improvements, including saved searches, notifications, and comparison tools. Your input on how you'd use these and other feature improvements are welcome. You can create or comment on issues in GitHub. But we'd love to speak with you, too. We actively attend industry events around the world, so look for us there. Or send mail so we can schedule a conversation! If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Coming up and engagement"},{"location":"blog/organizational_policy/","text":"Organizational Policy Features and More We want administrators for organizations in PeeringDB to log in and to look around. We have created some new settings to help you manage users affiliated with your organization in PeeringDB. There are three key changes you'll want to look at. You can now require your users to use a specific email domain. For example, if your company email uses example.com, you could require them to have an example.com email address for their PeeringDB account. You can now force users to revalidate their PeeringDB account periodically. You can set the period that fits with your organization's needs. Your users can now have multiple email addresses for their PeeringDB account. We have published a HOWTO that walks administrators through the details of how to configure these features. This release also includes improvements contributed by developers at Amazon and Google. We are grateful for their contributions. Take a look at our HOWTO about developing for PeeringDB if you'd like to contribute. This release also has several small feature improvements and changes that allow us to provide users with better support. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Organizational Policy Features and More"},{"location":"blog/organizational_policy/#organizational-policy-features-and-more","text":"We want administrators for organizations in PeeringDB to log in and to look around. We have created some new settings to help you manage users affiliated with your organization in PeeringDB. There are three key changes you'll want to look at. You can now require your users to use a specific email domain. For example, if your company email uses example.com, you could require them to have an example.com email address for their PeeringDB account. You can now force users to revalidate their PeeringDB account periodically. You can set the period that fits with your organization's needs. Your users can now have multiple email addresses for their PeeringDB account. We have published a HOWTO that walks administrators through the details of how to configure these features. This release also includes improvements contributed by developers at Amazon and Google. We are grateful for their contributions. Take a look at our HOWTO about developing for PeeringDB if you'd like to contribute. This release also has several small feature improvements and changes that allow us to provide users with better support. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Organizational Policy Features and More"},{"location":"blog/peeringdb_2020_satisfaction_survey/","text":"PeeringDB 2020 Satisfaction Survey PeeringDB wants input from network operators, exchange operators, facility providers, content distributors and anyone who uses our interconnection database. We are running an anonymous satisfaction survey until 23:59 UTC on 20 November 2020 and would like your feedback to help us make PeeringDB more useful to everyone involved in connecting networks. We haven\u2019t had the diversity of input we\u2019d like in previous surveys, so we are making an extra effort to reach parts of the community who weren\u2019t aware of our previous surveys. We're telling you here and we are teaming up with partners around the world to get the message out. Steve McManus, PeeringDB Product Committee Chair, says: \"Input from all PeeringDB users on what is important and what needs improving is essential. Telling us what you value and what you need us to improve will help us make PeeringDB better for you and make peering easier for all.\" The survey will help us understand what is important to you and how satisfied you are with what we are doing. We will use your responses to focus our product roadmap on the improvements that will make things better for you. If you have specific comments or suggestions we\u2019d love you to leave them along with your ratings. This is the first survey we are making available in multiple languages. In this survey we are using the six UN languages for the questions. That said, we\u2019re happy with people providing free text comments in whichever language they are happiest expressing themselves. We\u2019ll share the results and the new product roadmap early in 2021. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB 2020 Satisfaction Survey"},{"location":"blog/peeringdb_2020_satisfaction_survey/#peeringdb-2020-satisfaction-survey","text":"PeeringDB wants input from network operators, exchange operators, facility providers, content distributors and anyone who uses our interconnection database. We are running an anonymous satisfaction survey until 23:59 UTC on 20 November 2020 and would like your feedback to help us make PeeringDB more useful to everyone involved in connecting networks. We haven\u2019t had the diversity of input we\u2019d like in previous surveys, so we are making an extra effort to reach parts of the community who weren\u2019t aware of our previous surveys. We're telling you here and we are teaming up with partners around the world to get the message out. Steve McManus, PeeringDB Product Committee Chair, says: \"Input from all PeeringDB users on what is important and what needs improving is essential. Telling us what you value and what you need us to improve will help us make PeeringDB better for you and make peering easier for all.\" The survey will help us understand what is important to you and how satisfied you are with what we are doing. We will use your responses to focus our product roadmap on the improvements that will make things better for you. If you have specific comments or suggestions we\u2019d love you to leave them along with your ratings. This is the first survey we are making available in multiple languages. In this survey we are using the six UN languages for the questions. That said, we\u2019re happy with people providing free text comments in whichever language they are happiest expressing themselves. We\u2019ll share the results and the new product roadmap early in 2021. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB 2020 Satisfaction Survey"},{"location":"blog/peeringdb_2020_survey_2021_roadmap/","text":"2020 Survey Results and 2021 Product Roadmap Last November we asked you for input through our anonymous satisfaction survey, so we could use it to guide our product roadmap for 2021. Today, we are sharing what you told us through the survey and how we\u2019ll be improving PeeringDB and your experience of it in 2021. We had over 200 responses to the survey. Respondents identified themselves as connected with organizations operating on every continent and in every part of our industry. 99% of respondents described themselves as very or somewhat satisfied with PeeringDB overall. When we asked about specific service categories, we were told that Network Configuration Data and Search and Discovery capabilities were the most important. These service categories had lower, though still high, levels of satisfaction, with 95% and 96% of respondents describing themselves as very or somewhat satisfied with these aspects of PeeringDB. Although we saw higher satisfaction with the User Experience and Web Interface, at 97%, this service category both had the most responses and the most divided feedback. One user described the current web interface as \u201c clean and simple \u201d while others said it was \u201c showing its age .\u201d Documentation quality was also an area with lower specific satisfaction, at 93%. One comment homed in on a key problem, noting: \" Needs a top-level overview document/intro. Or if it exists, I need to find it. \" We have used your feedback to guide our product roadmap for 2021. The four key focus areas will be: Improving geographic search Developing a structured framework for user documentation Improving the web site\u2019s responsiveness Introducing a communications framework to alert users to developments and support future tooling Our first steps to accomplish this have been to add database support for coordinates of facilities. All new facilities will be located by their latitude and longitude, with street addresses as human friendly search terms instead of authoritative data. This is a major project and we will share more on this work in a future blog post. Another key change is the publication of our first HOWTO document . This document is designed to help new networks register with PeeringDB using our website. We will be publishing more documents in this series and developing a broader documentation framework to support API and web users equally. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"2020 Survey Results and 2021 Product Roadmap"},{"location":"blog/peeringdb_2020_survey_2021_roadmap/#2020-survey-results-and-2021-product-roadmap","text":"Last November we asked you for input through our anonymous satisfaction survey, so we could use it to guide our product roadmap for 2021. Today, we are sharing what you told us through the survey and how we\u2019ll be improving PeeringDB and your experience of it in 2021. We had over 200 responses to the survey. Respondents identified themselves as connected with organizations operating on every continent and in every part of our industry. 99% of respondents described themselves as very or somewhat satisfied with PeeringDB overall. When we asked about specific service categories, we were told that Network Configuration Data and Search and Discovery capabilities were the most important. These service categories had lower, though still high, levels of satisfaction, with 95% and 96% of respondents describing themselves as very or somewhat satisfied with these aspects of PeeringDB. Although we saw higher satisfaction with the User Experience and Web Interface, at 97%, this service category both had the most responses and the most divided feedback. One user described the current web interface as \u201c clean and simple \u201d while others said it was \u201c showing its age .\u201d Documentation quality was also an area with lower specific satisfaction, at 93%. One comment homed in on a key problem, noting: \" Needs a top-level overview document/intro. Or if it exists, I need to find it. \" We have used your feedback to guide our product roadmap for 2021. The four key focus areas will be: Improving geographic search Developing a structured framework for user documentation Improving the web site\u2019s responsiveness Introducing a communications framework to alert users to developments and support future tooling Our first steps to accomplish this have been to add database support for coordinates of facilities. All new facilities will be located by their latitude and longitude, with street addresses as human friendly search terms instead of authoritative data. This is a major project and we will share more on this work in a future blog post. Another key change is the publication of our first HOWTO document . This document is designed to help new networks register with PeeringDB using our website. We will be publishing more documents in this series and developing a broader documentation framework to support API and web users equally. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"2020 Survey Results and 2021 Product Roadmap"},{"location":"blog/peeringdb_2021_survey_2022_roadmap/","text":"2021 Survey Results and 2022 Product Roadmap Last September we asked you for input through our anonymous satisfaction survey, so we could use it to guide our product roadmap for 2022. Today, we are sharing what you told us through the survey and how we\u2019ll be improving PeeringDB and your experience of it in 2022. Highlights We had almost 250 responses to the survey, a 25% increase on last year. As with last year, respondents identified themselves as connected with organizations operating on every continent and in every part of our industry. Overall satisfaction remains unchanged from last year. We asked a few new questions in 2021 and learned: Almost 70% of respondents use PeeringDB every day or every week. Most of the rest use it every month. Under half of respondents use PeeringDB on a mobile device. About 70% of respondents want a way to be notified about changes that are relevant to them. From the questions that were repeated from 2021 we learned that Network Configuration Data and Search and Discovery capabilities remained the most important to our users. The User Experience and Web Interface remained the service categories with the lowest satisfaction, although 85% of respondents were still somewhat or very satisfied. The other lower performing area was Documentation Quality, which is an area that we started to address later in 2021 and some respondents won't have known about. Work on improving our documentation will continue in 2022. We hope that these improvements drive satisfaction in 2022. Roadmap We have used your feedback, in combination with a focus group consultation , to guide our product roadmap for 2022. The three key focus areas will be: Introduce a new \u201cCarrier\u201d object This object will describe providers of high capacity links between interconnection facilities. It was named \u201cCarrier\u201d during the discussion but that is a placeholder that could be changed if it is considered confusing or inappropriate. We are developing a design which will be circulated with the focus group before developing this new feature. As a new object, we\u2019ll make sure that it is well documented so users can get the most value from it. Improving the web site\u2019s responsiveness We recognize that the overall visual design needs some improvement. But perhaps more importantly we need to improve page load times. We plan to bring PeeringDB nearer to its users by completing deployment to a CDN. We have already tested this by deploying beta.peeringdb.com there and we will be moving www.peeringdb.com to it in 2022. We will also introduce modular page rendering, so each element loads via a separate connection, speeding the overall experience. We will use the CDN metrics to learn more about how www.peeringdb.com is used and that will inform improvements to the visual design. Continue improving search 2021 saw significant improvements to advanced search and simple search. We will continue to make improvements to search and help users keep the underlying data more accurate. One example of this is work that\u2019s going on, as I type, at the NANOG 84 Hackathon where volunteer developers are introducing intersection searches . That means you\u2019ll be able to make a single query to find out which IXPs or interconnection facilities have two networks present, such as your own and a desired peer\u2019s. This is an example of how PeeringDB is developed by its users as well as the core team. What else? Data accuracy We know that we need to do work to improve the quality of data in PeeringDB as it plays such an important role in configuration. We last looked at this in 2019\u2019s Data Ownership Task Force , whose report acknowledged the shared responsibility for data describing the interconnected nature of separately managed parts of our Internet. We plan to work with PeeringDB users to renew our work in this area so we can continue to improve the quality of data we publish. We are also setting course towards increased data accuracy by using the RPKI and Resource Signed Checklists (RSC). We want to use RSC validation to cryptographically validate our users\u2019 ability to control specific Internet Number Resources. Call to action We just deployed two user developed features: improvements to simple search and OpenID Connect integration. We are keen to include more user developed code. If you\u2019d like to contribute to PeeringDB then let me know and we can help you. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"2021 Survey Results and 2022 Product Roadmap"},{"location":"blog/peeringdb_2021_survey_2022_roadmap/#2021-survey-results-and-2022-product-roadmap","text":"Last September we asked you for input through our anonymous satisfaction survey, so we could use it to guide our product roadmap for 2022. Today, we are sharing what you told us through the survey and how we\u2019ll be improving PeeringDB and your experience of it in 2022.","title":"2021 Survey Results and 2022 Product Roadmap"},{"location":"blog/peeringdb_2021_survey_2022_roadmap/#highlights","text":"We had almost 250 responses to the survey, a 25% increase on last year. As with last year, respondents identified themselves as connected with organizations operating on every continent and in every part of our industry. Overall satisfaction remains unchanged from last year. We asked a few new questions in 2021 and learned: Almost 70% of respondents use PeeringDB every day or every week. Most of the rest use it every month. Under half of respondents use PeeringDB on a mobile device. About 70% of respondents want a way to be notified about changes that are relevant to them. From the questions that were repeated from 2021 we learned that Network Configuration Data and Search and Discovery capabilities remained the most important to our users. The User Experience and Web Interface remained the service categories with the lowest satisfaction, although 85% of respondents were still somewhat or very satisfied. The other lower performing area was Documentation Quality, which is an area that we started to address later in 2021 and some respondents won't have known about. Work on improving our documentation will continue in 2022. We hope that these improvements drive satisfaction in 2022.","title":"Highlights"},{"location":"blog/peeringdb_2021_survey_2022_roadmap/#roadmap","text":"We have used your feedback, in combination with a focus group consultation , to guide our product roadmap for 2022. The three key focus areas will be:","title":"Roadmap"},{"location":"blog/peeringdb_2021_survey_2022_roadmap/#introduce-a-new-carrier-object","text":"This object will describe providers of high capacity links between interconnection facilities. It was named \u201cCarrier\u201d during the discussion but that is a placeholder that could be changed if it is considered confusing or inappropriate. We are developing a design which will be circulated with the focus group before developing this new feature. As a new object, we\u2019ll make sure that it is well documented so users can get the most value from it.","title":"Introduce a new \u201cCarrier\u201d object"},{"location":"blog/peeringdb_2021_survey_2022_roadmap/#improving-the-web-sites-responsiveness","text":"We recognize that the overall visual design needs some improvement. But perhaps more importantly we need to improve page load times. We plan to bring PeeringDB nearer to its users by completing deployment to a CDN. We have already tested this by deploying beta.peeringdb.com there and we will be moving www.peeringdb.com to it in 2022. We will also introduce modular page rendering, so each element loads via a separate connection, speeding the overall experience. We will use the CDN metrics to learn more about how www.peeringdb.com is used and that will inform improvements to the visual design.","title":"Improving the web site\u2019s responsiveness"},{"location":"blog/peeringdb_2021_survey_2022_roadmap/#continue-improving-search","text":"2021 saw significant improvements to advanced search and simple search. We will continue to make improvements to search and help users keep the underlying data more accurate. One example of this is work that\u2019s going on, as I type, at the NANOG 84 Hackathon where volunteer developers are introducing intersection searches . That means you\u2019ll be able to make a single query to find out which IXPs or interconnection facilities have two networks present, such as your own and a desired peer\u2019s. This is an example of how PeeringDB is developed by its users as well as the core team.","title":"Continue improving search"},{"location":"blog/peeringdb_2021_survey_2022_roadmap/#what-else-data-accuracy","text":"We know that we need to do work to improve the quality of data in PeeringDB as it plays such an important role in configuration. We last looked at this in 2019\u2019s Data Ownership Task Force , whose report acknowledged the shared responsibility for data describing the interconnected nature of separately managed parts of our Internet. We plan to work with PeeringDB users to renew our work in this area so we can continue to improve the quality of data we publish. We are also setting course towards increased data accuracy by using the RPKI and Resource Signed Checklists (RSC). We want to use RSC validation to cryptographically validate our users\u2019 ability to control specific Internet Number Resources.","title":"What else? Data accuracy"},{"location":"blog/peeringdb_2021_survey_2022_roadmap/#call-to-action","text":"We just deployed two user developed features: improvements to simple search and OpenID Connect integration. We are keen to include more user developed code. If you\u2019d like to contribute to PeeringDB then let me know and we can help you. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Call to action"},{"location":"blog/peeringdb_2021_user_survey/","text":"PeeringDB 2021 User Survey PeeringDB wants input from network operators, exchange operators, facility providers, content distributors and anyone who uses our interconnection database. We are running an anonymous satisfaction survey until 23:59 UTC on Friday, 8 October 2021 and would like your feedback to help us make PeeringDB more useful to everyone involved in connecting networks. We had over 200 responses to last year\u2019s survey and those responses helped guide our product development. We\u2019ve made significant improvements to search based on user input, introduced a HOWTO documentation series , and are developing a documentation architecture directly as a result of your input. We\u2019d like more input, in 2021, so we can keep up with the industry\u2019s evolving needs. Steve McManus, PeeringDB Product Committee Chair, says: \" User comments in the 2020 survey helped us focus development where it was most needed. It directly influenced our roadmap and highlighted the need for specific expertise in documentation and user experience design to solve users\u2019 most pressing needs. Thanks to everyone who gives a few moments of their time to help us make PeeringDB a better service! \u201d In addition to the questions we asked last year, we have three extra questions about documentation priorities, notifications, and user experience on mobile devices. We are particularly keen to improve our understanding of people\u2019s needs for the website as this was the area with the most divided responses last year. The survey is available in the six UN languages and Portuguese. We\u2019re happy with people providing free text comments in whichever language they are happiest expressing themselves. We\u2019ll share the results and the new product roadmap early in 2022. So CLICK HERE to help guide PeeringDB\u2019s future development. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB 2021 User Survey"},{"location":"blog/peeringdb_2021_user_survey/#peeringdb-2021-user-survey","text":"PeeringDB wants input from network operators, exchange operators, facility providers, content distributors and anyone who uses our interconnection database. We are running an anonymous satisfaction survey until 23:59 UTC on Friday, 8 October 2021 and would like your feedback to help us make PeeringDB more useful to everyone involved in connecting networks. We had over 200 responses to last year\u2019s survey and those responses helped guide our product development. We\u2019ve made significant improvements to search based on user input, introduced a HOWTO documentation series , and are developing a documentation architecture directly as a result of your input. We\u2019d like more input, in 2021, so we can keep up with the industry\u2019s evolving needs. Steve McManus, PeeringDB Product Committee Chair, says: \" User comments in the 2020 survey helped us focus development where it was most needed. It directly influenced our roadmap and highlighted the need for specific expertise in documentation and user experience design to solve users\u2019 most pressing needs. Thanks to everyone who gives a few moments of their time to help us make PeeringDB a better service! \u201d In addition to the questions we asked last year, we have three extra questions about documentation priorities, notifications, and user experience on mobile devices. We are particularly keen to improve our understanding of people\u2019s needs for the website as this was the area with the most divided responses last year. The survey is available in the six UN languages and Portuguese. We\u2019re happy with people providing free text comments in whichever language they are happiest expressing themselves. We\u2019ll share the results and the new product roadmap early in 2022. So CLICK HERE to help guide PeeringDB\u2019s future development. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB 2021 User Survey"},{"location":"blog/peeringdb_2022_user_survey/","text":"PeeringDB 2022 User Survey PeeringDB wants input from everyone who uses our interconnection database. Our anonymous survey is now open until 23:59 UTC on 16 October 2022. We would like your feedback to help us make PeeringDB more useful to everyone involved in connecting networks. We had about 250 responses to last year\u2019s survey which helped guide our product development. Key changes delivered so far in 2022 include: Added API Key support to peeringdb-py Added FIDO U2F 2FA support to www.peeringdb.com Normalized place names We\u2019ve also published more documents in our HOWTO documentation series . 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! \u201d In 2022 we have added a couple of extra questions. We'd like to know how many people use PeeringDB at your organization. We'd also like to know how you use it: web, API, or via a local cache. We will use your answers to focus development work where it is most needed. The survey is available in the six UN languages, Portuguese and Ukrainian. Please provide comments in whatever language you want to express yourself. We\u2019ll share the results and the new product roadmap early in 2023. So CLICK HERE to help guide PeeringDB\u2019s future development. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB 2022 User Survey"},{"location":"blog/peeringdb_2022_user_survey/#peeringdb-2022-user-survey","text":"PeeringDB wants input from everyone who uses our interconnection database. Our anonymous survey is now open until 23:59 UTC on 16 October 2022. We would like your feedback to help us make PeeringDB more useful to everyone involved in connecting networks. We had about 250 responses to last year\u2019s survey which helped guide our product development. Key changes delivered so far in 2022 include: Added API Key support to peeringdb-py Added FIDO U2F 2FA support to www.peeringdb.com Normalized place names We\u2019ve also published more documents in our HOWTO documentation series . 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! \u201d In 2022 we have added a couple of extra questions. We'd like to know how many people use PeeringDB at your organization. We'd also like to know how you use it: web, API, or via a local cache. We will use your answers to focus development work where it is most needed. The survey is available in the six UN languages, Portuguese and Ukrainian. Please provide comments in whatever language you want to express yourself. We\u2019ll share the results and the new product roadmap early in 2023. So CLICK HERE to help guide PeeringDB\u2019s future development. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB 2022 User Survey"},{"location":"blog/peeringdb_2023_roadmap/","text":"PeeringDB's Product Roadmap for 2023 We want to build more agility into our Product Management process in 2023. This blog post describes what we have planned for the start of the year. It also describes how we want to work over the whole year, and how you can help us make good choices. We are starting the year with features that open new paths to us. Your input will help us choose how we move down them. Our roundup of 2022 noted that we have some big things planned for the start of 2023. The two biggest are two new objects. We deployed the first in our January release. The new carrier object is a way for providers of high capacity links to show which interconnection facilities they are in. We\u2019ve deployed the minimal possible structure for this new object. We want users to tell us what additional features they cannot do without. The next big new addition is a campus object. This will be a way for interconnection facilities to show that inter-building cross-connects are available with the same ease as those within a building. This will help buyers understand when they don't need to be in the same building as something they want to connect to. We can expand either or both of these objects. We need your feedback to help us decide what would make them more valuable. Respondents to our annual surveys have consistently told us that Network Configuration Data is what they value most. They are also quite divided about the website design. Some people love its simplicity and others want something more modern. We knew that we didn't have enough information to make good decisions on how to improve things for the people who want change without disappointing those who like it the way it is. We have deployed Google Analytics for beta.peeringdb.com and would like to deploy it to www.peeringdb.com and docs.peeringdb.com . This will give us important information about how people use our site. We\u2019ll use this information to understand the problems people experience and develop ways to solve them. We also have lots of users who rely on our API or a local cache of PeeringDB data. So, we want to make it easier for users to identify the deltas between what they have in PeeringDB and their local configuration management. This is the focus on the projects we're taking to the NANOG 87 Hackathon . We want to work with tool developers and anyone who relies on PeeringDB as a source of network configuration data. Ultimately, we'd like to offer a way for users to automatically identify deltas, the changes that could be made, and ways to make or approve those changes. Across the rest of the year, we'd like to focus on one theme at a time and deliver a set of significant improvements there. Then we can move on to the next relevant theme. So please let us know how we could make PeeringDB more valuable for your organization. As always, you can submit an issue, or comment on existing issues in GitHub . But you can also send us email or chat to us at various community events. PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB's Product Roadmap for 2023"},{"location":"blog/peeringdb_2023_roadmap/#peeringdbs-product-roadmap-for-2023","text":"We want to build more agility into our Product Management process in 2023. This blog post describes what we have planned for the start of the year. It also describes how we want to work over the whole year, and how you can help us make good choices. We are starting the year with features that open new paths to us. Your input will help us choose how we move down them. Our roundup of 2022 noted that we have some big things planned for the start of 2023. The two biggest are two new objects. We deployed the first in our January release. The new carrier object is a way for providers of high capacity links to show which interconnection facilities they are in. We\u2019ve deployed the minimal possible structure for this new object. We want users to tell us what additional features they cannot do without. The next big new addition is a campus object. This will be a way for interconnection facilities to show that inter-building cross-connects are available with the same ease as those within a building. This will help buyers understand when they don't need to be in the same building as something they want to connect to. We can expand either or both of these objects. We need your feedback to help us decide what would make them more valuable. Respondents to our annual surveys have consistently told us that Network Configuration Data is what they value most. They are also quite divided about the website design. Some people love its simplicity and others want something more modern. We knew that we didn't have enough information to make good decisions on how to improve things for the people who want change without disappointing those who like it the way it is. We have deployed Google Analytics for beta.peeringdb.com and would like to deploy it to www.peeringdb.com and docs.peeringdb.com . This will give us important information about how people use our site. We\u2019ll use this information to understand the problems people experience and develop ways to solve them. We also have lots of users who rely on our API or a local cache of PeeringDB data. So, we want to make it easier for users to identify the deltas between what they have in PeeringDB and their local configuration management. This is the focus on the projects we're taking to the NANOG 87 Hackathon . We want to work with tool developers and anyone who relies on PeeringDB as a source of network configuration data. Ultimately, we'd like to offer a way for users to automatically identify deltas, the changes that could be made, and ways to make or approve those changes. Across the rest of the year, we'd like to focus on one theme at a time and deliver a set of significant improvements there. Then we can move on to the next relevant theme. So please let us know how we could make PeeringDB more valuable for your organization. As always, you can submit an issue, or comment on existing issues in GitHub . But you can also send us email or chat to us at various community events. PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB's Product Roadmap for 2023"},{"location":"blog/peeringdb_in_your_preferred_language/","text":"PeeringDB in Your Preferred Language Volunteers translate PeeringDB into 17 different languages . Some of those translations, like Romanian, are complete. Others, like Indonesian, have only just started. Translation is important in making PeeringDB accessible to people around the world. But until now, you had to create an account \u2013 using the English language interface \u2013 to set your preferred language. We realized that this was not a perfect solution. We are grateful to Daniel Van Allen of Google. He developed the code to make translations available to anonymous web users. Now, you can land on the homepage and select the language you want to use from the dropdown menu. We hope that this will make PeeringDB accessible to more users. We also hope it will inspire people to volunteer to translate PeeringDB. If you want to volunteer, you can contact us . If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB in Your Preferred Language"},{"location":"blog/peeringdb_in_your_preferred_language/#peeringdb-in-your-preferred-language","text":"Volunteers translate PeeringDB into 17 different languages . Some of those translations, like Romanian, are complete. Others, like Indonesian, have only just started. Translation is important in making PeeringDB accessible to people around the world. But until now, you had to create an account \u2013 using the English language interface \u2013 to set your preferred language. We realized that this was not a perfect solution. We are grateful to Daniel Van Allen of Google. He developed the code to make translations available to anonymous web users. Now, you can land on the homepage and select the language you want to use from the dropdown menu. We hope that this will make PeeringDB accessible to more users. We also hope it will inspire people to volunteer to translate PeeringDB. If you want to volunteer, you can contact us . If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB in Your Preferred Language"},{"location":"blog/peeringdb_is_developed_by_its_community/","text":"PeeringDB is Developed by its Community PeeringDB community members have contributed two significant improvements that were deployed into production this month. Simple Search is Smarter Search As reported by NANOG last week, we have deployed code developed by Brad Schwyzer, James Lamanna, and Jeff Kala that significantly improves the accuracy of what we call Simple Search. This is the main search box on the front page or the basic API call. Until this month it provided an enthusiastic number of responses when searching for things like small AS Numbers. While the answers weren\u2019t wrong, our users needed to pay extra attention to find what they needed. Brad, James, and Jeff developed logic to work out what users are likely to be searching for and give them the most relevant results. Simple Search now knows about the difference between an AS Number, an IPv4 address, and an IPv6 address. It will only respond with IP address information if at least two segments of the address are included in the search. They turned this: Into this: We are grateful to them and to NANOG, who hosted the Hackathon where this code was developed. We are keen to participate in more Hackathons in the future. OpenID Connect We also deployed code developed by Carlos Aguado to implement OpenID Connect . This builds on our existing support for OAuth to enable identity federation with managed services. The code Carlos developed means that PeeringDB can be used as an OpenID Authorization Server so that any PeeringDB user can sign in to other websites. Your Code If you are a software developer who needs something from PeeringDB we might be able to deploy code you develop. We have a tested development environment and are keen to make PeeringDB service the interconnection community\u2019s needs. So please create an issue on GitHub or let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB is Developed by its Community"},{"location":"blog/peeringdb_is_developed_by_its_community/#peeringdb-is-developed-by-its-community","text":"PeeringDB community members have contributed two significant improvements that were deployed into production this month.","title":"PeeringDB is Developed by its Community"},{"location":"blog/peeringdb_is_developed_by_its_community/#simple-search-is-smarter-search","text":"As reported by NANOG last week, we have deployed code developed by Brad Schwyzer, James Lamanna, and Jeff Kala that significantly improves the accuracy of what we call Simple Search. This is the main search box on the front page or the basic API call. Until this month it provided an enthusiastic number of responses when searching for things like small AS Numbers. While the answers weren\u2019t wrong, our users needed to pay extra attention to find what they needed. Brad, James, and Jeff developed logic to work out what users are likely to be searching for and give them the most relevant results. Simple Search now knows about the difference between an AS Number, an IPv4 address, and an IPv6 address. It will only respond with IP address information if at least two segments of the address are included in the search. They turned this: Into this: We are grateful to them and to NANOG, who hosted the Hackathon where this code was developed. We are keen to participate in more Hackathons in the future.","title":"Simple Search is Smarter Search"},{"location":"blog/peeringdb_is_developed_by_its_community/#openid-connect","text":"We also deployed code developed by Carlos Aguado to implement OpenID Connect . This builds on our existing support for OAuth to enable identity federation with managed services. The code Carlos developed means that PeeringDB can be used as an OpenID Authorization Server so that any PeeringDB user can sign in to other websites.","title":"OpenID Connect"},{"location":"blog/peeringdb_is_developed_by_its_community/#your-code","text":"If you are a software developer who needs something from PeeringDB we might be able to deploy code you develop. We have a tested development environment and are keen to make PeeringDB service the interconnection community\u2019s needs. So please create an issue on GitHub or let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Your Code"},{"location":"blog/peeringdb_map_with_kmz/","text":"See Locations in PeeringDB on a Map We're making it easier for you to see where facilities are. It\u2019s good to know how close facilities are to each other and anything else that\u2019s important to you, like who and what is present there. We have coordinates for every facility in PeeringDB. For instance, One Wilshire in Los Angeles is at 34.047942, -118.255564. When you click on the coordinates on our site, you go to a map view. But that just shows you that one facility. Anyone who wants could use our API to extract the coordinates for all facilities. They could then populate any map they want. But that can be hard to do from raw data. We now produce a .KMZ file every day. It's ideal if you want to populate a map or GIS tool with PeeringDB facility data. We have linked to the file from the footer of every page on the site. If you want fresh data on interconnection facilities around the world, grab a copy every day. If you want to explore a new area, grab a copy and open it in your favorite .KMZ viewer. We have ideas for ways to improve the visualization of data in PeeringDB. But we want your input to guide us. Let us know what's most important to you, or the problems you need to solve. Contact the Product Committee , share it on our low traffic mailing lists , or have a chat when you meet us at an event. Or create an issue describing your need on GitHub. If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"See Locations in PeeringDB on a Map"},{"location":"blog/peeringdb_map_with_kmz/#see-locations-in-peeringdb-on-a-map","text":"We're making it easier for you to see where facilities are. It\u2019s good to know how close facilities are to each other and anything else that\u2019s important to you, like who and what is present there. We have coordinates for every facility in PeeringDB. For instance, One Wilshire in Los Angeles is at 34.047942, -118.255564. When you click on the coordinates on our site, you go to a map view. But that just shows you that one facility. Anyone who wants could use our API to extract the coordinates for all facilities. They could then populate any map they want. But that can be hard to do from raw data. We now produce a .KMZ file every day. It's ideal if you want to populate a map or GIS tool with PeeringDB facility data. We have linked to the file from the footer of every page on the site. If you want fresh data on interconnection facilities around the world, grab a copy every day. If you want to explore a new area, grab a copy and open it in your favorite .KMZ viewer. We have ideas for ways to improve the visualization of data in PeeringDB. But we want your input to guide us. Let us know what's most important to you, or the problems you need to solve. Contact the Product Committee , share it on our low traffic mailing lists , or have a chat when you meet us at an event. Or create an issue describing your need on GitHub. If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"See Locations in PeeringDB on a Map"},{"location":"blog/peeringdb_release_v2.23.0/","text":"PeeringDB Release v2.23.0 PeeringDB is pleased to announce the release of v2.23.0. Summary release notes are published on the release notes page . This release includes a key feature that comes out of the Data Ownership Task Force , which was established to clarify who is authoritative for data about networks where multiple members participate, like IXPs. This change means that all networks will need to have a technical POC when they publish a connection to an exchange network. This change will help all the parties on the exchange resolve technical issues efficiently. It was proposed and discussed in GitHub issues #826 . Stefan Wahl, Senior Ambassador ECIX, Megaport, says: \"This new feature is a great improvement allowing users to correctly identify the authoritative contact of a network. I enjoyed collaborating with the PeeringDB Task Force on this project.\" If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB Release v2.23.0"},{"location":"blog/peeringdb_release_v2.23.0/#peeringdb-release-v2230","text":"PeeringDB is pleased to announce the release of v2.23.0. Summary release notes are published on the release notes page . This release includes a key feature that comes out of the Data Ownership Task Force , which was established to clarify who is authoritative for data about networks where multiple members participate, like IXPs. This change means that all networks will need to have a technical POC when they publish a connection to an exchange network. This change will help all the parties on the exchange resolve technical issues efficiently. It was proposed and discussed in GitHub issues #826 . Stefan Wahl, Senior Ambassador ECIX, Megaport, says: \"This new feature is a great improvement allowing users to correctly identify the authoritative contact of a network. I enjoyed collaborating with the PeeringDB Task Force on this project.\" If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB Release v2.23.0"},{"location":"blog/peeringdb_release_v2.24.0/","text":"PeeringDB Release v2.24.0 PeeringDB is pleased to announce the release of v2.24.0. Summary release notes are published on the release notes page . This release focuses on improving data quality in the database by improving the way networks can identify themselves and making the user interface clearer where people misunderstood what was meant. Specialist networks can now identify themselves better. Governments, Route Collectors and organizations providing specialized Network Services, such as DNS, RDAP, or DDoS Protection can say so in their network type. We have cleaned up the data to reflect this for existing networks. Some users misunderstood the maximum prefix limit to mean the maximum prefix length. The tooltip now makes it clear that this refers to the maximum number of prefixes and not the prefix length. While our anonymous 2020 User Satisfaction Survey is still open, we can already see that we\u2019ll need to make more improvements along these lines. If you have not yet completed the survey, please do. It takes under three minutes and will help us build our product roadmap for the next year. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB Release v2.24.0"},{"location":"blog/peeringdb_release_v2.24.0/#peeringdb-release-v2240","text":"PeeringDB is pleased to announce the release of v2.24.0. Summary release notes are published on the release notes page . This release focuses on improving data quality in the database by improving the way networks can identify themselves and making the user interface clearer where people misunderstood what was meant. Specialist networks can now identify themselves better. Governments, Route Collectors and organizations providing specialized Network Services, such as DNS, RDAP, or DDoS Protection can say so in their network type. We have cleaned up the data to reflect this for existing networks. Some users misunderstood the maximum prefix limit to mean the maximum prefix length. The tooltip now makes it clear that this refers to the maximum number of prefixes and not the prefix length. While our anonymous 2020 User Satisfaction Survey is still open, we can already see that we\u2019ll need to make more improvements along these lines. If you have not yet completed the survey, please do. It takes under three minutes and will help us build our product roadmap for the next year. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB Release v2.24.0"},{"location":"blog/search_gets_better/","text":"Search Gets Better Users tell us that search and the quality of the data in PeeringDB are their two top priorities. We've previously written about using automation to improve data quality. We're now beta testing some improvements to search. You can test our new search interface now on beta.peeringdb.com . You can use natural language words, like \"near\" and \"in\", when you query PeeringDB. That means you're not forced to use the radius feature in Advanced Search. Martin Levy gave a use case when he opened issue #479 . The radius search improved things. This is a further improvement. In any of the countries where we\u2019ve normalized address data, you can search using a state name or its abbreviation. \" In my retirement, I finally had the time to visit and enjoy Montana. It's a wonderful state replete with interesting wildlife and absolutely-stunning landscapes. The fact that you can now find an IXP in Montana with an easy search on PeeringDB's website makes me very happy. I don't think I need to do that search anymore; however, I'm glad others active in the industry can now do that style of search. I wish PeeringDB and the whole industry all the best! I'm happy that my April 2019 issue on GitHub (You can\u2019t find an IXP in Montana; but you should be able to!) is now banished into the history books! \" Martin Levy When you search for facilities near New York, you\u2019ll get results for relevant locations in nearby New Jersey, just across the river. Similarly, searches for facilities near Los Angeles will extend south into Orange County. None of this takes away the Advanced Search tools . They are staying. But you can now find out about the scale of opportunities in a new area nice and quickly. As our first image shows, we\u2019re testing this new interface side-by-side with the old one. We\u2019d like you to try it and tell us what you think. There\u2019s a link to a feedback form at the top of the page. Please tell us what you like, what you'd like improved, or where our new search tool doesn't work properly. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Search Gets Better"},{"location":"blog/search_gets_better/#search-gets-better","text":"Users tell us that search and the quality of the data in PeeringDB are their two top priorities. We've previously written about using automation to improve data quality. We're now beta testing some improvements to search. You can test our new search interface now on beta.peeringdb.com . You can use natural language words, like \"near\" and \"in\", when you query PeeringDB. That means you're not forced to use the radius feature in Advanced Search. Martin Levy gave a use case when he opened issue #479 . The radius search improved things. This is a further improvement. In any of the countries where we\u2019ve normalized address data, you can search using a state name or its abbreviation. \" In my retirement, I finally had the time to visit and enjoy Montana. It's a wonderful state replete with interesting wildlife and absolutely-stunning landscapes. The fact that you can now find an IXP in Montana with an easy search on PeeringDB's website makes me very happy. I don't think I need to do that search anymore; however, I'm glad others active in the industry can now do that style of search. I wish PeeringDB and the whole industry all the best! I'm happy that my April 2019 issue on GitHub (You can\u2019t find an IXP in Montana; but you should be able to!) is now banished into the history books! \" Martin Levy When you search for facilities near New York, you\u2019ll get results for relevant locations in nearby New Jersey, just across the river. Similarly, searches for facilities near Los Angeles will extend south into Orange County. None of this takes away the Advanced Search tools . They are staying. But you can now find out about the scale of opportunities in a new area nice and quickly. As our first image shows, we\u2019re testing this new interface side-by-side with the old one. We\u2019d like you to try it and tell us what you think. There\u2019s a link to a feedback form at the top of the page. Please tell us what you like, what you'd like improved, or where our new search tool doesn't work properly. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Search Gets Better"},{"location":"blog/structured_data_and_more/","text":"Structured Data and More With PeeringDB This article describes our latest improvements and puts them in the context of recent feature developments. PeeringDB users have told us that their top priorities are data quality and search. These priorities have guided recent improvements. We want to make it easier to keep PeeringDB current. We want users to be able to analyze data. And we want to make the data available to users in the way that works best for them. Our API has enabled you to automate updates and get data in structured formats. And peeringdb-py , our local cache, lets you keep a local copy of our data. That makes it easy to keep queries local and integrate PeeringDB with other data sources. But we've been working to add key features for web users. Your internal source of truth can suggest updates to PeeringDB . Once you set that up, you can review and approve or deny suggestions. You can get PeeringDB data about facilities as a .KMZ file as well as CSV or JSON. So you can import it into Google Earth and other GIS tools. Simple search understands a wide range of geographic terms. For instance, you can just search for an ix in berlin or a fac in ke . Yes, PeeringDB understands ISO 3166-2 country codes. And now you can export data from any page. Of course, you could always copy and paste. But copying and pasting the list of peers at IX.br (PTT.br) S\u00e3o Paulo is a big job. Grabbing its data as a CSV or JSON removes copy/paste errors. You can import it straight into a business analytics engine.x Of course, it\u2019s not all feature changes. We know that we need to update the web design, too. We have a preview of the design available for you to look at and comment on: https://preview.beta.peeringdb.com Take a look and tell us what you like and what needs to be updated before we deploy this into production. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Structured Data and More With PeeringDB"},{"location":"blog/structured_data_and_more/#structured-data-and-more-with-peeringdb","text":"This article describes our latest improvements and puts them in the context of recent feature developments. PeeringDB users have told us that their top priorities are data quality and search. These priorities have guided recent improvements. We want to make it easier to keep PeeringDB current. We want users to be able to analyze data. And we want to make the data available to users in the way that works best for them. Our API has enabled you to automate updates and get data in structured formats. And peeringdb-py , our local cache, lets you keep a local copy of our data. That makes it easy to keep queries local and integrate PeeringDB with other data sources. But we've been working to add key features for web users. Your internal source of truth can suggest updates to PeeringDB . Once you set that up, you can review and approve or deny suggestions. You can get PeeringDB data about facilities as a .KMZ file as well as CSV or JSON. So you can import it into Google Earth and other GIS tools. Simple search understands a wide range of geographic terms. For instance, you can just search for an ix in berlin or a fac in ke . Yes, PeeringDB understands ISO 3166-2 country codes. And now you can export data from any page. Of course, you could always copy and paste. But copying and pasting the list of peers at IX.br (PTT.br) S\u00e3o Paulo is a big job. Grabbing its data as a CSV or JSON removes copy/paste errors. You can import it straight into a business analytics engine.x Of course, it\u2019s not all feature changes. We know that we need to update the web design, too. We have a preview of the design available for you to look at and comment on: https://preview.beta.peeringdb.com Take a look and tell us what you like and what needs to be updated before we deploy this into production. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Structured Data and More With PeeringDB"},{"location":"blog/u2f_and_url/","text":"Improve Your Account Security - And Check Our URL We completed our support for FIDO U2F hardware tokens this month and have made www.peeringdb.com the canonical URL for our service. We\u2019d like you to take advantage of two-factor security for your PeeringDB account. We also want to ensure you adjust any automation aimed at https://peeringdb.com so that it connects to https://www.peeringdb.com instead. This will ensure continuity of service for API users. Your listing in PeeringDB is how you present your network, IXP, or facility to the world. If a miscreant gains access to your account they can misrepresent you. Reclaiming control of the objects you look after and undoing any changes the miscreant has made could be a lot of work. You can protect yourself against this risk by enabling two-factor authentication on your account. We have supported industry standard Time-based One-Time Passwords, as defined in RFC 6238 for a while now. This is the protocol used by popular smartphone authenticator apps. We added support for FIDO U2F hardware tokens in Q1 2022. You enable 2FA in the Account Security section of your account settings. Click on the green button to Manage Two-Factor Authentication and you\u2019ll be guided through the process. Just be aware that you\u2019ll need a secure place to store your backup codes, so you can gain access to your account if you ever lose access to your authenticator app or U2F hardware token. What are you waiting for? Improve the protection for your organization\u2019s listing in PeeringDB today by enabling 2FA. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Improve Your Account Security - And Check Our URL"},{"location":"blog/u2f_and_url/#improve-your-account-security-and-check-our-url","text":"We completed our support for FIDO U2F hardware tokens this month and have made www.peeringdb.com the canonical URL for our service. We\u2019d like you to take advantage of two-factor security for your PeeringDB account. We also want to ensure you adjust any automation aimed at https://peeringdb.com so that it connects to https://www.peeringdb.com instead. This will ensure continuity of service for API users. Your listing in PeeringDB is how you present your network, IXP, or facility to the world. If a miscreant gains access to your account they can misrepresent you. Reclaiming control of the objects you look after and undoing any changes the miscreant has made could be a lot of work. You can protect yourself against this risk by enabling two-factor authentication on your account. We have supported industry standard Time-based One-Time Passwords, as defined in RFC 6238 for a while now. This is the protocol used by popular smartphone authenticator apps. We added support for FIDO U2F hardware tokens in Q1 2022. You enable 2FA in the Account Security section of your account settings. Click on the green button to Manage Two-Factor Authentication and you\u2019ll be guided through the process. Just be aware that you\u2019ll need a secure place to store your backup codes, so you can gain access to your account if you ever lose access to your authenticator app or U2F hardware token. What are you waiting for? Improve the protection for your organization\u2019s listing in PeeringDB today by enabling 2FA. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Improve Your Account Security - And Check Our URL"},{"location":"blog/updates_from_an_internal_source_of_truth/","text":"Your Internal Source of Truth Can Now Push Updates to PeeringDB We have an API . You can use our API to update PeeringDB as well as make queries. But most people don't want to hand craft API updates. Very few organizations have the scale that demands automating updates. Until now, that left a gap. If your network connects at many facilities and IXPs, there might be a gap between a change happening and appearing in PeeringDB. Our users value the quality of configuration data in PeeringDB, so we wanted to fill that gap. We used the NANOG 87 Hackathon as an opportunity to test a proof of concept. It went well, so we've put it into production. Your internal source of truth can now suggest updates to PeeringDB. You then log in to our web interface and approve or reject those changes. FullCtl, who participated in the Hackathon challenge , has already implemented support for this new feature. This new feature means you can have automation monitor the gap between your internal source of truth and PeeringDB. And you don't need to give that tool credentials to push updates to PeeringDB. Benefits include: Simplified user interface for changes Human oversight Third party tools do not need to be given credentials with write permission \" It's great when you see a project that's become as important and successful as PeeringDB continue to innovate and improve. We're super stoked to be the first of what I'm sure will be many apps to support this new feature - which is sure to increase the already amazing amount of high quality interconnection data available in PeeringDB, supporting global interconnection. \" Chris Grundemann, Co-Founder & CEO, FullCtl We\u2019d love to see more updates coming in from more sources of truth! If you have suggestions, contact the Product Committee , share them on our low traffic mailing lists , or have a chat when you meet us at an event. Or create an issue describing your need on GitHub. If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Your Internal Source of Truth Can Now Push Updates to PeeringDB"},{"location":"blog/updates_from_an_internal_source_of_truth/#your-internal-source-of-truth-can-now-push-updates-to-peeringdb","text":"We have an API . You can use our API to update PeeringDB as well as make queries. But most people don't want to hand craft API updates. Very few organizations have the scale that demands automating updates. Until now, that left a gap. If your network connects at many facilities and IXPs, there might be a gap between a change happening and appearing in PeeringDB. Our users value the quality of configuration data in PeeringDB, so we wanted to fill that gap. We used the NANOG 87 Hackathon as an opportunity to test a proof of concept. It went well, so we've put it into production. Your internal source of truth can now suggest updates to PeeringDB. You then log in to our web interface and approve or reject those changes. FullCtl, who participated in the Hackathon challenge , has already implemented support for this new feature. This new feature means you can have automation monitor the gap between your internal source of truth and PeeringDB. And you don't need to give that tool credentials to push updates to PeeringDB. Benefits include: Simplified user interface for changes Human oversight Third party tools do not need to be given credentials with write permission \" It's great when you see a project that's become as important and successful as PeeringDB continue to innovate and improve. We're super stoked to be the first of what I'm sure will be many apps to support this new feature - which is sure to increase the already amazing amount of high quality interconnection data available in PeeringDB, supporting global interconnection. \" Chris Grundemann, Co-Founder & CEO, FullCtl We\u2019d love to see more updates coming in from more sources of truth! If you have suggestions, contact the Product Committee , share them on our low traffic mailing lists , or have a chat when you meet us at an event. Or create an issue describing your need on GitHub. If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Your Internal Source of Truth Can Now Push Updates to PeeringDB"},{"location":"blog/updating_our_webUI/","text":"We're Updating our Web UI PeeringDB users have told us that they both love the simplicity of our web UI but want it improved. We have started on a project to update it. We must update it to fully integrate the new carrier and campus objects. Carrier objects describe providers of high capacity L1 and L2 links into facilities. A campus is a group of interconnected facilities under common ownership. Our priorities are: Improve tabular data available for Campus and Carrier pages Mobile UI optimization Personalization features for logged in users Visualization of metro areas in a dynamic map Wizard framework for supporting creation and editing of objects Lazy loading of object data We'll start with ways to make it easier for users to get the data they want and need. Then we'll look at making it easier for users to update their own data in PeeringDB. We'll share some of the design options to check they meet users\u2019 needs. Watch out for future announcements, so you can give us feedback. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"We're Updating our Web UI"},{"location":"blog/updating_our_webUI/#were-updating-our-web-ui","text":"PeeringDB users have told us that they both love the simplicity of our web UI but want it improved. We have started on a project to update it. We must update it to fully integrate the new carrier and campus objects. Carrier objects describe providers of high capacity L1 and L2 links into facilities. A campus is a group of interconnected facilities under common ownership. Our priorities are: Improve tabular data available for Campus and Carrier pages Mobile UI optimization Personalization features for logged in users Visualization of metro areas in a dynamic map Wizard framework for supporting creation and editing of objects Lazy loading of object data We'll start with ways to make it easier for users to get the data they want and need. Then we'll look at making it easier for users to update their own data in PeeringDB. We'll share some of the design options to check they meet users\u2019 needs. Watch out for future announcements, so you can give us feedback. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"We're Updating our Web UI"},{"location":"blog/user_developed_tools/","text":"Getting the Most from PeeringDB with User Developed Tools We develop PeeringDB based on user demand. Users tell us what they want through a survey and by opening issues describing the problems they face on GitHub. But sometimes, users\u2019 needs go beyond what we can do and that\u2019s when user developed tools come in. We have recently refreshed and updated our listing of user developed and maintained tools . It now has its own page and features eight tools that help you: Sync PeeringDB data to a local repository Find common peering points Find and manage peers, and Use PeeringDB from the search bar on your browser \u201c I'm glad to see Peering Manager listed on PeeringDB's new tools page. PeeringDB's API and data are a huge asset to Peering Manager, helping users to autofill and keep up-to-date a lot of details. Accessing the API is both simple and reliable, keeping development simple. \u201d Guillaume Mazoyer, developer of Peering Manager If you develop a tool that uses PeeringDB and would like to share it with others, please let us know and we\u2019ll link to it from our tools page, so other people can thank you for sharing. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Getting the Most from PeeringDB with User Developed Tools"},{"location":"blog/user_developed_tools/#getting-the-most-from-peeringdb-with-user-developed-tools","text":"We develop PeeringDB based on user demand. Users tell us what they want through a survey and by opening issues describing the problems they face on GitHub. But sometimes, users\u2019 needs go beyond what we can do and that\u2019s when user developed tools come in. We have recently refreshed and updated our listing of user developed and maintained tools . It now has its own page and features eight tools that help you: Sync PeeringDB data to a local repository Find common peering points Find and manage peers, and Use PeeringDB from the search bar on your browser \u201c I'm glad to see Peering Manager listed on PeeringDB's new tools page. PeeringDB's API and data are a huge asset to Peering Manager, helping users to autofill and keep up-to-date a lot of details. Accessing the API is both simple and reliable, keeping development simple. \u201d Guillaume Mazoyer, developer of Peering Manager If you develop a tool that uses PeeringDB and would like to share it with others, please let us know and we\u2019ll link to it from our tools page, so other people can thank you for sharing. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Getting the Most from PeeringDB with User Developed Tools"},{"location":"blog/user_suggestions_improve_PeeringDB_usability/","text":"User Suggestions Improve PeeringDB Usability Some people are heavy PeeringDB users. They research and compare options, with many PeeringDB tabs open at once. But finding the PeeringDB tab you want meant looking at each one. But no more. Marco d'Itri wrote to the Product Committee and suggested an improvement: I believe that it would be great to have the HTML tag of the pages show more that just \"PeeringDB\", e.g. \"PeeringDB: AS65454\". This simple change would allow to find previously visited pages in the browser history and search box. We deployed this feature in our March release . Each page now has its key feature set as a search term. That's the AS Number for networks, or the name elsewhere. We set the whole search string as the page title for advanced searches. We hope this improves your PeeringDB web experience. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"User Suggestions Improve PeeringDB Usability"},{"location":"blog/user_suggestions_improve_PeeringDB_usability/#user-suggestions-improve-peeringdb-usability","text":"Some people are heavy PeeringDB users. They research and compare options, with many PeeringDB tabs open at once. But finding the PeeringDB tab you want meant looking at each one. But no more. Marco d'Itri wrote to the Product Committee and suggested an improvement: I believe that it would be great to have the HTML <title> tag of the pages show more that just \"PeeringDB\", e.g. \"PeeringDB: AS65454\". This simple change would allow to find previously visited pages in the browser history and search box. We deployed this feature in our March release . Each page now has its key feature set as a search term. That's the AS Number for networks, or the name elsewhere. We set the whole search string as the page title for advanced searches. We hope this improves your PeeringDB web experience. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"User Suggestions Improve PeeringDB Usability"},{"location":"blog/what_happened_to_our_web_ui/","text":"What happened to our web UI? We released 2.54.0 to production on 24 January 2024. PeeringDB users quickly made us aware of issues with the release. The problems centered on the impact of web UI changes on search: Users needed to click on the magnifying glass icon to open the search bar Some in page searches resulted in a CSRF error Other search attempts did not work We focused on four issues describing problems and developed fixes that addressed them in development and then beta environments. Ultimately, we decided that it was better to rollback the UI changes, so that\u2019s what we did. 2.54.2 is now in production. It has all the features from 2.54.0 except the web UI changes. Why did it happen? Our own internal testing missed the impact of these changes. We thought they were relatively small and planned to make an incremental improvement before introducing our updated design on preview.peeringdb.com . That was a mistake. Also, we\u2019ve had a remarkably good run of stable releases. We think this has contributed to a drop in testing on beta.peeringdb.com . Only about 0.25 percent of users visited beta.peeringdb.com in January 2024. How will we improve? We will be changing our process for introducing big changes. The first part is to improve our internal testing process. But we are also considering changes to the beta testing process. Instead of relying on users to speak up if they find a problem on beta.peeringdb.com we could do the reverse. We would only release major changes to production after we have had positive comments from users who have tested on beta.peeringdb.com . In some cases, we might need to delay a release \u2013 or part of it \u2013 until we had that positive input from users. What do you think? Would you prefer us to require more active involvement from users in beta testing? Let us know on our user-discuss mailing list , through our social media channels, or speak with our volunteers to share your thoughts. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"What happened to our web UI?"},{"location":"blog/what_happened_to_our_web_ui/#what-happened-to-our-web-ui","text":"We released 2.54.0 to production on 24 January 2024. PeeringDB users quickly made us aware of issues with the release. The problems centered on the impact of web UI changes on search: Users needed to click on the magnifying glass icon to open the search bar Some in page searches resulted in a CSRF error Other search attempts did not work We focused on four issues describing problems and developed fixes that addressed them in development and then beta environments. Ultimately, we decided that it was better to rollback the UI changes, so that\u2019s what we did. 2.54.2 is now in production. It has all the features from 2.54.0 except the web UI changes.","title":"What happened to our web UI?"},{"location":"blog/what_happened_to_our_web_ui/#why-did-it-happen","text":"Our own internal testing missed the impact of these changes. We thought they were relatively small and planned to make an incremental improvement before introducing our updated design on preview.peeringdb.com . That was a mistake. Also, we\u2019ve had a remarkably good run of stable releases. We think this has contributed to a drop in testing on beta.peeringdb.com . Only about 0.25 percent of users visited beta.peeringdb.com in January 2024.","title":"Why did it happen?"},{"location":"blog/what_happened_to_our_web_ui/#how-will-we-improve","text":"We will be changing our process for introducing big changes. The first part is to improve our internal testing process. But we are also considering changes to the beta testing process. Instead of relying on users to speak up if they find a problem on beta.peeringdb.com we could do the reverse. We would only release major changes to production after we have had positive comments from users who have tested on beta.peeringdb.com . In some cases, we might need to delay a release \u2013 or part of it \u2013 until we had that positive input from users. What do you think? Would you prefer us to require more active involvement from users in beta testing? Let us know on our user-discuss mailing list , through our social media channels, or speak with our volunteers to share your thoughts. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"How will we improve?"},{"location":"blog/whois_to_close/","text":"PeeringDB Whois Service to Close We will close down the whois.peeringdb.com service at the end of January 2024. The PeeringDB whois service is a relic of PeeringDB v1, where there was no API to query the database. PeeringDB v2 can be queried and updated through our API as well as the web. The whois service is just another way to get data from our API that is less supported and infrequently used. Keeping the service incurs a maintenance cost. We believe that closing the service is the best use of PeeringDB resources. User comments are welcome on the user-discuss list , or direct to the Product Committee . If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB Whois Service to Close"},{"location":"blog/whois_to_close/#peeringdb-whois-service-to-close","text":"We will close down the whois.peeringdb.com service at the end of January 2024. The PeeringDB whois service is a relic of PeeringDB v1, where there was no API to query the database. PeeringDB v2 can be queried and updated through our API as well as the web. The whois service is just another way to get data from our API that is less supported and infrequently used. Keeping the service incurs a maintenance cost. We believe that closing the service is the best use of PeeringDB resources. User comments are welcome on the user-discuss list , or direct to the Product Committee . If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB Whois Service to Close"},{"location":"blog/your_logo_goes_here/","text":"Your Logo Goes Here! We\u2019ve just deployed 2.31.0-beta and it\u2019s an opportunity to test out how your logo will look alongside your organization\u2019s name. Make sure you have your logo ready. Logos can have a height of up to 75 pixels and a width of up to 150. They must be uploaded in JPG, JPEG, or PNG. Log in to beta.peeringdb.com , upload your logo and check that it shows up well. This release didn\u2019t just add one feature. We have also made improvements for search, ix\u2019s, and facilities. Facilities can now specify a continental region, so searchers don\u2019t need to specify countries one at a time on the advanced search page. We added dynamic summaries and facilities. ASNs are now displayed at the top of search results for numeric queries. Sales contacts can now be added to IX objects If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Your Logo Goes Here!"},{"location":"blog/your_logo_goes_here/#your-logo-goes-here","text":"We\u2019ve just deployed 2.31.0-beta and it\u2019s an opportunity to test out how your logo will look alongside your organization\u2019s name. Make sure you have your logo ready. Logos can have a height of up to 75 pixels and a width of up to 150. They must be uploaded in JPG, JPEG, or PNG. Log in to beta.peeringdb.com , upload your logo and check that it shows up well. This release didn\u2019t just add one feature. We have also made improvements for search, ix\u2019s, and facilities. Facilities can now specify a continental region, so searchers don\u2019t need to specify countries one at a time on the advanced search page. We added dynamic summaries and facilities. ASNs are now displayed at the top of search results for numeric queries. Sales contacts can now be added to IX objects If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Your Logo Goes Here!"},{"location":"committee/common/","text":"PeeringDB Common Committee Charter Provisions: Dispute resolution If the committee handles an issue in a manner in which a user believes that their view has not been adequately considered, their first action should be to raise the concern with the Committee Chair for further consideration. If the dispute is between the user and the Committee Chair then the issue may alternatively be raised with the Committee Vice Chair. If the dispute cannot be resolved the matter may be brought forward to the PeeringDB Board. The decision by the PeeringDB Board shall be final. Committee Chair and Vice Chair The committee elects their Chair and Vice Chair from among their members, subject to PeeringDB Board approval. The Chair and Vice Chair work as a team and distribute the workload between themselves as they deem appropriate. Decisions should be unanimous, however the final decision on any matter is with the Chair. In case the Chair becomes unavailable, the Vice Chair may assume the position of Acting Chair. If the Chair or Vice Chair become permanently unavailable, replacement(s) are elected from the remaining committee members, subject to PeeringDB Board approval.","title":"Common"},{"location":"committee/common/#dispute-resolution","text":"If the committee handles an issue in a manner in which a user believes that their view has not been adequately considered, their first action should be to raise the concern with the Committee Chair for further consideration. If the dispute is between the user and the Committee Chair then the issue may alternatively be raised with the Committee Vice Chair. If the dispute cannot be resolved the matter may be brought forward to the PeeringDB Board. The decision by the PeeringDB Board shall be final.","title":"Dispute resolution"},{"location":"committee/common/#committee-chair-and-vice-chair","text":"The committee elects their Chair and Vice Chair from among their members, subject to PeeringDB Board approval. The Chair and Vice Chair work as a team and distribute the workload between themselves as they deem appropriate. Decisions should be unanimous, however the final decision on any matter is with the Chair. In case the Chair becomes unavailable, the Vice Chair may assume the position of Acting Chair. If the Chair or Vice Chair become permanently unavailable, replacement(s) are elected from the remaining committee members, subject to PeeringDB Board approval.","title":"Committee Chair and Vice Chair"},{"location":"committee/admin/","text":"PeeringDB Admin Committee Purpose is to oversee the administrator mission and volunteers. Interested in volunteering? Contact admincom@lists.peeringdb.com . Documentation Admin Committee Guidelines and Criteria for Approving Networks, IXPs, and Facilities PeeringDB Admin Committee Charter Approved by Board July 9th, 2020 Scope The PeeringDB Admin Committee (AC) is responsible for the day to day end-user support of PeeringDB. The Admin Committee functions as the first point of contact for any inquiries to PeeringDB. The Admin Committee produces definitions for enhancements to the workflow and Admin GUI and works with the Product Committee to plan a coherent roadmap for the PeeringDB software. Out of scope Work covered in the charter of the Operations, Outreach, Product, and further to be established Committees Deliverables Take care of support tickets, the Admin Committee strives to answer tickets within 24 hours Gather input from end-users regarding the improvement of PeeringDB in terms of bugs and product features and channel them towards the Product Committee via GitHub Improve PeeringDB Admin GUI to help expedient resolution of support tickets Collaboration The Admin Committee works with other PeeringDB committees to ensure an equitable division of development resources in recognition of the volunteer efforts that are ensuring the daily operations. Participation The PeeringDB Admin Committee members serve a one-year renewable term. Volunteers can submit their candidacy to the Admin Committee Chair. The Chair and Vice Chair will choose a new Admin Committee member at any time they see the necessity to ensure the continuity of the Admin Committee. There is a trial period of one month. New members are onboarded by a more experienced committee member (WebEx / Google Hangouts / 3 example tickets). After the trial period appointment is confirmed by the Chair and Vice Chair for one year. Expectations Individual committee members should do their fair share of tickets measured over a month If a committee member is away for an extended period of time, inform the Chair, Vice Chair, and a notification sent to the Admin Committee mailing list One month probation where they get taught/mentored by an experienced admin, and where if they do not do the work, they get booted Chairs perform a quarterly review. If you don't meet a fair portion of the work you'll be nudged. Also, three months of inactivity is an automatic ejection Communication Questions and suggestions for the Admin Committee can be sent to the Admincom Mailing List On- and de-boarding is handled via the Admincom GitHub All other issues, also for Admin GUI bugs and features must go to the regular GitHub Any support questions should be directed to the Support Address Admin Committee uses slack and emails for internal communication Regular (4-6 week interval) conference calls are used to stay synced and discuss issues Decision policy Admin Committee members will decide on their own when handling support tickets according to the Admin Committee BCP laid out in the Admin Committee How-To Folder. Otherwise, they will decide by simple majority vote on contested issues called by the Admin Committee Chair. If there is a tie the Chair's vote is counted double. Workflow Admincom uses DeskPRO and GitHub as well as direct communication with the main service contractor 20C to achieve its deliverables. In communicating with 3rd parties the Admin Committee should be kept in the loop if the issue is of general interest. PeeringDB Common Committee Charter Provisions: Dispute resolution If the committee handles an issue in a manner in which a user believes that their view has not been adequately considered, their first action should be to raise the concern with the Committee Chair for further consideration. If the dispute is between the user and the Committee Chair then the issue may alternatively be raised with the Committee Vice Chair. If the dispute cannot be resolved the matter may be brought forward to the PeeringDB Board. The decision by the PeeringDB Board shall be final. Committee Chair and Vice Chair The committee elects their Chair and Vice Chair from among their members, subject to PeeringDB Board approval. The Chair and Vice Chair work as a team and distribute the workload between themselves as they deem appropriate. Decisions should be unanimous, however the final decision on any matter is with the Chair. In case the Chair becomes unavailable, the Vice Chair may assume the position of Acting Chair. If the Chair or Vice Chair become permanently unavailable, replacement(s) are elected from the remaining committee members, subject to PeeringDB Board approval. Meeting notes June 23rd, 2020: Meeting Notes May 12th, 2020: Meeting Notes November 21st, 2019: Meeting Notes July 18th, 2019: Meeting Notes May 2nd, 2019: Meeting Notes Members Ankesh Anand Austin Brower John Brown Budiwijaya Shaun Coffey Ron Grant Chriztoffer Hansen - Chair Peter Helmenstine - Vice Chair Ga\u00ebl Hernandez Adam Korab Christopher Malayter - Board Liaison Aquinas Masakha Cris\u00f3stomo Mbundu Julimar Lunguinho Mendes Laura Yepes","title":"Admin Committee"},{"location":"committee/admin/#peeringdb-admin-committee","text":"Purpose is to oversee the administrator mission and volunteers. Interested in volunteering? Contact admincom@lists.peeringdb.com .","title":"PeeringDB Admin Committee"},{"location":"committee/admin/#documentation","text":"Admin Committee Guidelines and Criteria for Approving Networks, IXPs, and Facilities","title":"Documentation"},{"location":"committee/admin/#peeringdb-admin-committee-charter","text":"Approved by Board July 9th, 2020","title":"PeeringDB Admin Committee Charter"},{"location":"committee/admin/#scope","text":"The PeeringDB Admin Committee (AC) is responsible for the day to day end-user support of PeeringDB. The Admin Committee functions as the first point of contact for any inquiries to PeeringDB. The Admin Committee produces definitions for enhancements to the workflow and Admin GUI and works with the Product Committee to plan a coherent roadmap for the PeeringDB software.","title":"Scope"},{"location":"committee/admin/#out-of-scope","text":"Work covered in the charter of the Operations, Outreach, Product, and further to be established Committees","title":"Out of scope"},{"location":"committee/admin/#deliverables","text":"Take care of support tickets, the Admin Committee strives to answer tickets within 24 hours Gather input from end-users regarding the improvement of PeeringDB in terms of bugs and product features and channel them towards the Product Committee via GitHub Improve PeeringDB Admin GUI to help expedient resolution of support tickets","title":"Deliverables"},{"location":"committee/admin/#collaboration","text":"The Admin Committee works with other PeeringDB committees to ensure an equitable division of development resources in recognition of the volunteer efforts that are ensuring the daily operations.","title":"Collaboration"},{"location":"committee/admin/#participation","text":"The PeeringDB Admin Committee members serve a one-year renewable term. Volunteers can submit their candidacy to the Admin Committee Chair. The Chair and Vice Chair will choose a new Admin Committee member at any time they see the necessity to ensure the continuity of the Admin Committee. There is a trial period of one month. New members are onboarded by a more experienced committee member (WebEx / Google Hangouts / 3 example tickets). After the trial period appointment is confirmed by the Chair and Vice Chair for one year.","title":"Participation"},{"location":"committee/admin/#expectations","text":"Individual committee members should do their fair share of tickets measured over a month If a committee member is away for an extended period of time, inform the Chair, Vice Chair, and a notification sent to the Admin Committee mailing list One month probation where they get taught/mentored by an experienced admin, and where if they do not do the work, they get booted Chairs perform a quarterly review. If you don't meet a fair portion of the work you'll be nudged. Also, three months of inactivity is an automatic ejection","title":"Expectations"},{"location":"committee/admin/#communication","text":"Questions and suggestions for the Admin Committee can be sent to the Admincom Mailing List On- and de-boarding is handled via the Admincom GitHub All other issues, also for Admin GUI bugs and features must go to the regular GitHub Any support questions should be directed to the Support Address Admin Committee uses slack and emails for internal communication Regular (4-6 week interval) conference calls are used to stay synced and discuss issues","title":"Communication"},{"location":"committee/admin/#decision-policy","text":"Admin Committee members will decide on their own when handling support tickets according to the Admin Committee BCP laid out in the Admin Committee How-To Folder. Otherwise, they will decide by simple majority vote on contested issues called by the Admin Committee Chair. If there is a tie the Chair's vote is counted double.","title":"Decision policy"},{"location":"committee/admin/#workflow","text":"Admincom uses DeskPRO and GitHub as well as direct communication with the main service contractor 20C to achieve its deliverables. In communicating with 3rd parties the Admin Committee should be kept in the loop if the issue is of general interest. PeeringDB Common Committee Charter Provisions:","title":"Workflow"},{"location":"committee/admin/#dispute-resolution","text":"If the committee handles an issue in a manner in which a user believes that their view has not been adequately considered, their first action should be to raise the concern with the Committee Chair for further consideration. If the dispute is between the user and the Committee Chair then the issue may alternatively be raised with the Committee Vice Chair. If the dispute cannot be resolved the matter may be brought forward to the PeeringDB Board. The decision by the PeeringDB Board shall be final.","title":"Dispute resolution"},{"location":"committee/admin/#committee-chair-and-vice-chair","text":"The committee elects their Chair and Vice Chair from among their members, subject to PeeringDB Board approval. The Chair and Vice Chair work as a team and distribute the workload between themselves as they deem appropriate. Decisions should be unanimous, however the final decision on any matter is with the Chair. In case the Chair becomes unavailable, the Vice Chair may assume the position of Acting Chair. If the Chair or Vice Chair become permanently unavailable, replacement(s) are elected from the remaining committee members, subject to PeeringDB Board approval.","title":"Committee Chair and Vice Chair"},{"location":"committee/admin/#meeting-notes","text":"June 23rd, 2020: Meeting Notes May 12th, 2020: Meeting Notes November 21st, 2019: Meeting Notes July 18th, 2019: Meeting Notes May 2nd, 2019: Meeting Notes","title":"Meeting notes"},{"location":"committee/admin/#members","text":"Ankesh Anand Austin Brower John Brown Budiwijaya Shaun Coffey Ron Grant Chriztoffer Hansen - Chair Peter Helmenstine - Vice Chair Ga\u00ebl Hernandez Adam Korab Christopher Malayter - Board Liaison Aquinas Masakha Cris\u00f3stomo Mbundu Julimar Lunguinho Mendes Laura Yepes","title":"Members"},{"location":"committee/admin/approval-guidelines/","text":"Admin Committee Guidelines and Criteria for Approving Networks, IXPs, and Facilities Authors Chris Malayter Arnold Nipper Job Snijders Document history v1. Initial document. v2. Added multiple mechanisms to validate IXP and Network. v3. Added mechanism to validate facility. v4. Added draft flowcharts and placed explanatory text in an appendix. Minor readability revisions. Guideline goals This guide does not seek to define what an Internet Exchange, or Network operator, or Facility is. PeeringDB is a registry of information. What people do with the information is up to them. In these guidelines, we attempt to merely document PeeringDB\u2019s approval process. Key goals include: The Admin Committee can use multiple to validate and facilitate the creation of objects. Workflows are shown and always include the option to fall back to an exception process. This process brings more eyes and helps PeeringDB identify areas for improvement. Provide a few tangible examples of how to apply the guidelines. Definitions User - a person submitting a new object to the PeeringDB database RIR - A Regional Internet Registry (AFRINIC, APNIC, ARIN, LACNIC or the RIPE NCC) NIR - A National Internet Registry recognized by one of the RIRs Additional terminology is described in Section 4 of the PeeringDB Data Ownership Policy Document . Approving Network ( net ) objects The key to approving Network objects is to confirm the User has a relationship to the specified Autonomous System Number (ASN) and is authorized to represent that ASN in some form. PeeringDB follows industry best practices and has the following requirements for the Autonomous System numbers, regardless of who the User is: ASNs must be registered through an RIR or NIR The ASN must not already be registered in PeeringDB This means that \u201cPrivate\u201d ASNs, as listed in the IANA Autonomous System (AS) Numbers Registry or \u201cBogon\u201d ASNs, those which have not yet been assigned by an RIR or NIR, cannot be registered in PeeringDB. Flowchart There are various mechanisms to verify the relationship between the User and a given Autonomous System number: The registration details listed in WHOIS match the registration details in the sign-up request (same email domain) The registration details listed in RDAP match the registration details in the sign-up request (same email domain) The user can confirm the relationship to the ASN through a RPKI based challenge/response (work in progress: draft-ietf-sidrops-rpki-rsc) The user can confirm the relationship to the ASN by entering a PeeringDB suggested random string in their WHOIS record in a comments/remarks field (not yet implemented, a similar strategy to how Amazon AWS does BYOIP) Exception approval follows the standard process PeeringDB encourages but does not require its users to follow industry best practices. This means we recommend: Making a BGP looking glass publicly available, or A website listing the Network services, and a publicly documented Routing Policy Approving IXP ( ix ) objects The key to approving IXP objects is to confirm the User has a relationship to the specified Peering LAN Prefix, and is authorized to represent this IP block in some form. Flowchart Globally unique IP prefix requirements IP prefix must be registered through an RIR or NIR. The prefix must not overlap with any existing IXP object in PeeringDB IPv4 prefixes must not be longer than a /27 or shorter than /19 IPv6 prefixes must not be shorter than /64 but may be longer i.e. a /120 is allowed but a /63 is not Users can verify their relationship to an IP prefix in several ways: The registration details listed in WHOIS match the registration details in the sign-up request (same email domain). The registration details listed in RDAP match the registration details in the sign-up request (same email domain). The user can confirm the relationship to the IP prefix through a RPKI based challenge/response (work in progress - draft-ietf-sidrops-rpki-rsc). The user can confirm the relationship to the IP prefix by entering a PeeringDB suggested random string in their inetnum record in the authoritative RIR or NIR database in a comments/remarks field (note: IRR route/route6 objects cannot be used for this purpose). RDAP should be used to discover which RIR or NIR is authoritative For Legacy IPv4 space, a PeeringDB suggested random string can be placed in a TXT record for the reverse DNS label representing the first IPv4 address in the prefix. (This is a variant of the Amazon AWS BYOIP process). The assumption is that if someone controls Reverse DNS for a given prefix, they have full control over the prefix. Exception approval follows the standard process PeeringDB encourages but does not require its users to follow industry best practices. This means we recommend: A website detailing the IXP service A public overview of connected members and locations, service level, and terms of membership. Approving Facility ( fac ) objects A \u201cfacility\u201d is a physical location where two or more IP Networks or IXPs interconnect with each other. The key to approving Facility objects is to confirm with multiple existing PeeringDB users that a facility exists. Note: We will need to extend PeeringDB's software to support the workflow described here. Note: The IP addresses used in the attestation process will be logged. Validation mechanisms The owner of the facility is an existing PeeringDB user, and adds the facility to their record themselves. In this approval flow the facility is \u2018claimed\u2019. For this workflow the facility owner should already have one facility previously validated via one of the following mechanisms: The owner of the facility is not a PeeringDB user, but interested parties (who are PeeringDB users) wish the Facility object to be registered. The result is an unclaimed Facility object. The building has a website that has an interconnection or colocation section or One user will suggest the facility (peeringdb.com/suggest/fac), after filling in the details the form will generate a unique URL where the attestations can be collected. The user then distributes the URL (which can only be accessed by logged-in users) to the other interested parties, who can then attest or disprove the facility. When 3 PeeringDB users positively attest the facility exists, the facility is approved. The owner of the facility is a new peeringdb user and does not have any objects associated with their account. There are two mechanisms to claim a Facility object. The building has a website that has an interconnection or colocation section or An attestation process similar to how new facilities are suggested by existing users is followed, where the attempting-to-claim PeeringDB user must collect 3 positive attestations from three existing PeeringDB users. Exception approval follows the standard process Flowchart - Facility Flowchart - Attestation Flagging as \"junk\" PeeringDB users can flag a facility as \u201cjunk\u201d. This puts the Facility object in a review queue. The Admin Committee can resolve in the following ways: The facility owner becomes a PeeringDB user and claims the facility. The 3 people who attested that the facility exists can point at two existing PeeringDB IXP or Network object owners who are willing to attest they are present in the facility. The Admin Committee contacts the IXP or Network object owners and asks them to confirm their presence in the facility. At this point the facility record will list at least two network and/or IXP objects. A facility without networks or IXPs is considered potential \u201cjunk\u201d. Empty facilities will be deleted after 90 days. This happens when neither the owner of the facility, nor any other PeeringDB users were willing to indicate a relationship to the facility. The \u201cjunk\u201d button only appears in the UI for objects which are both unclaimed, and where no networks or IXPs indicate a presence. Checklist to help find entities present at the facility and or understand who the facility owner is Website operated by the facility owner: recommended and SHOULD list colocation or interconnection as a service Government or Industry Association website listing facilities. (Example: CLLI locators in the United States) Website of IXPs or Networks publishing they operate in the building Example facility object approval scenarios Facility approval example 1 Facility located at 100 W Main Street, Nowhere, WV, USA. Facility has four ISPs that interconnect in the basement of the building. Three out of the four ISPs have staff with PeeringDB accounts. Building owner has provided a closet for this to occur. Building has no website, the building owner does not know anything about interconnection, and has no plans to market the building as an interconnection location. Start ISP operator A files a request to suggest a Facility object to be entered into PeeringDB. Validation Process The facility owner is not a PeeringDB user, so the mechanism of the facility owner themselves suggesting the facility cannot be applied. The act of suggesting the facility in the PeeringDB user interface generates a unique URL which ISP Operator A can share with the fellow ISPs. If at least 2 other PeeringDB users attest the facility exists, the Facility object is created and marked as \u201cunclaimed\u201d. Facility approval example 2 A PeeringDB user noticed the Facility object created (as a result of Example 1), and reports it as \u201cjunk\u201d. The object continues to exist, but is added to a review queue for the PeeringDB Admin Committee to help resolve the situation. The Admin Committee\u2019s task is to find positive proof the facility exists and interconnection happens. Validation Process The AC committee first contacts the original PeeringDB users that provided attestations the facility exists. (Note: these PeeringDB users themselves might not be present in the facility). The AC can request the original attesters to provide a list of ISPs or IXPs they think are present in the facility. The AC can then contact the ISPs and/or IXPs who were suggested to have a presence in the facility and ask them to either attest the facility exists, or to add themselves as \u2018present\u2019 in the facility. It is possible these ISPs and/or IXPs are not yet PeeringDB users. If the AC can\u2019t collect the attestations the facility will be deleted in 90 days. Facility approval example 3 A Facility owner is a PeeringDB user and wishes to add its facility to PeeringDB using the \u201cSuggest a Facility\u201d function. The building owner is leasing suites to carriers in the basement of his facility, but primarily focuses on leasing office space. The building has a webpage, but data center/interconnection services are not listed on the webpage. The building owner has provided a list of four carriers who have leased space in the building. Validation Process The building owner can add webpage showing that they provide interconnection services. The attestation process can be used to demonstrate the building is used for interconnection. Facility approval example 4 An existing facility operator with other facilities listed in PeeringDB submits a new facility that does not yet have any customers. Validation Process None - The facility should be immediately added. After the Facility object has been added, networks and IXPs can indicate their presence. Exception process We know that these guidelines will need to be improved and updated as we learn, so we have built in an \u201cexception\u201d process to help with that. Whenever an easy path is not possible, the requester can ask for more review of their registration request. The first step in this process is to get input from all the volunteers on the Admin Committee. If more eyes are needed, the request can be shared with all of PeeringDB\u2019s Stewards, a group made from the committee chairs and board members. Where a formal decision is needed, the board can vote on a request and make a final decision. Flowchart Appendix Why must peering LANs be between /27 and /19 (IPv4) and not shorter than /64 (IPv6)? This limit is intended to reduce the likelihood of a typo that goes undetected and causes operational issues. Where a peering LAN uses a /28 or a /18 (IPv4) the Admin Committee can manually process the prefix after verifying its prefix length is correct. The technical standards do not allow LANs to have prefixes shorter than a /64, so a /63 would be rejected to avoid causing operational issues to operator equipment that is standards compliant.","title":"Admin Committee Guidelines and Criteria for Approving Networks, IXPs, and Facilities"},{"location":"committee/admin/approval-guidelines/#admin-committee-guidelines-and-criteria-for-approving-networks-ixps-and-facilities","text":"","title":"Admin Committee Guidelines and Criteria for Approving Networks, IXPs, and Facilities"},{"location":"committee/admin/approval-guidelines/#authors","text":"Chris Malayter Arnold Nipper Job Snijders","title":"Authors"},{"location":"committee/admin/approval-guidelines/#document-history","text":"v1. Initial document. v2. Added multiple mechanisms to validate IXP and Network. v3. Added mechanism to validate facility. v4. Added draft flowcharts and placed explanatory text in an appendix. Minor readability revisions.","title":"Document history"},{"location":"committee/admin/approval-guidelines/#guideline-goals","text":"This guide does not seek to define what an Internet Exchange, or Network operator, or Facility is. PeeringDB is a registry of information. What people do with the information is up to them. In these guidelines, we attempt to merely document PeeringDB\u2019s approval process. Key goals include: The Admin Committee can use multiple to validate and facilitate the creation of objects. Workflows are shown and always include the option to fall back to an exception process. This process brings more eyes and helps PeeringDB identify areas for improvement. Provide a few tangible examples of how to apply the guidelines.","title":"Guideline goals"},{"location":"committee/admin/approval-guidelines/#definitions","text":"User - a person submitting a new object to the PeeringDB database RIR - A Regional Internet Registry (AFRINIC, APNIC, ARIN, LACNIC or the RIPE NCC) NIR - A National Internet Registry recognized by one of the RIRs Additional terminology is described in Section 4 of the PeeringDB Data Ownership Policy Document .","title":"Definitions"},{"location":"committee/admin/approval-guidelines/#approving-network-net-objects","text":"The key to approving Network objects is to confirm the User has a relationship to the specified Autonomous System Number (ASN) and is authorized to represent that ASN in some form. PeeringDB follows industry best practices and has the following requirements for the Autonomous System numbers, regardless of who the User is: ASNs must be registered through an RIR or NIR The ASN must not already be registered in PeeringDB This means that \u201cPrivate\u201d ASNs, as listed in the IANA Autonomous System (AS) Numbers Registry or \u201cBogon\u201d ASNs, those which have not yet been assigned by an RIR or NIR, cannot be registered in PeeringDB.","title":"Approving Network (net) objects"},{"location":"committee/admin/approval-guidelines/#flowchart","text":"There are various mechanisms to verify the relationship between the User and a given Autonomous System number: The registration details listed in WHOIS match the registration details in the sign-up request (same email domain) The registration details listed in RDAP match the registration details in the sign-up request (same email domain) The user can confirm the relationship to the ASN through a RPKI based challenge/response (work in progress: draft-ietf-sidrops-rpki-rsc) The user can confirm the relationship to the ASN by entering a PeeringDB suggested random string in their WHOIS record in a comments/remarks field (not yet implemented, a similar strategy to how Amazon AWS does BYOIP) Exception approval follows the standard process PeeringDB encourages but does not require its users to follow industry best practices. This means we recommend: Making a BGP looking glass publicly available, or A website listing the Network services, and a publicly documented Routing Policy","title":"Flowchart"},{"location":"committee/admin/approval-guidelines/#approving-ixp-ix-objects","text":"The key to approving IXP objects is to confirm the User has a relationship to the specified Peering LAN Prefix, and is authorized to represent this IP block in some form.","title":"Approving IXP (ix) objects"},{"location":"committee/admin/approval-guidelines/#flowchart_1","text":"","title":"Flowchart"},{"location":"committee/admin/approval-guidelines/#globally-unique-ip-prefix-requirements","text":"IP prefix must be registered through an RIR or NIR. The prefix must not overlap with any existing IXP object in PeeringDB IPv4 prefixes must not be longer than a /27 or shorter than /19 IPv6 prefixes must not be shorter than /64 but may be longer i.e. a /120 is allowed but a /63 is not Users can verify their relationship to an IP prefix in several ways: The registration details listed in WHOIS match the registration details in the sign-up request (same email domain). The registration details listed in RDAP match the registration details in the sign-up request (same email domain). The user can confirm the relationship to the IP prefix through a RPKI based challenge/response (work in progress - draft-ietf-sidrops-rpki-rsc). The user can confirm the relationship to the IP prefix by entering a PeeringDB suggested random string in their inetnum record in the authoritative RIR or NIR database in a comments/remarks field (note: IRR route/route6 objects cannot be used for this purpose). RDAP should be used to discover which RIR or NIR is authoritative For Legacy IPv4 space, a PeeringDB suggested random string can be placed in a TXT record for the reverse DNS label representing the first IPv4 address in the prefix. (This is a variant of the Amazon AWS BYOIP process). The assumption is that if someone controls Reverse DNS for a given prefix, they have full control over the prefix. Exception approval follows the standard process PeeringDB encourages but does not require its users to follow industry best practices. This means we recommend: A website detailing the IXP service A public overview of connected members and locations, service level, and terms of membership.","title":"Globally unique IP prefix requirements"},{"location":"committee/admin/approval-guidelines/#approving-facility-fac-objects","text":"A \u201cfacility\u201d is a physical location where two or more IP Networks or IXPs interconnect with each other. The key to approving Facility objects is to confirm with multiple existing PeeringDB users that a facility exists. Note: We will need to extend PeeringDB's software to support the workflow described here. Note: The IP addresses used in the attestation process will be logged.","title":"Approving Facility (fac) objects"},{"location":"committee/admin/approval-guidelines/#validation-mechanisms","text":"The owner of the facility is an existing PeeringDB user, and adds the facility to their record themselves. In this approval flow the facility is \u2018claimed\u2019. For this workflow the facility owner should already have one facility previously validated via one of the following mechanisms: The owner of the facility is not a PeeringDB user, but interested parties (who are PeeringDB users) wish the Facility object to be registered. The result is an unclaimed Facility object. The building has a website that has an interconnection or colocation section or One user will suggest the facility (peeringdb.com/suggest/fac), after filling in the details the form will generate a unique URL where the attestations can be collected. The user then distributes the URL (which can only be accessed by logged-in users) to the other interested parties, who can then attest or disprove the facility. When 3 PeeringDB users positively attest the facility exists, the facility is approved. The owner of the facility is a new peeringdb user and does not have any objects associated with their account. There are two mechanisms to claim a Facility object. The building has a website that has an interconnection or colocation section or An attestation process similar to how new facilities are suggested by existing users is followed, where the attempting-to-claim PeeringDB user must collect 3 positive attestations from three existing PeeringDB users. Exception approval follows the standard process","title":"Validation mechanisms"},{"location":"committee/admin/approval-guidelines/#flowchart-facility","text":"","title":"Flowchart - Facility"},{"location":"committee/admin/approval-guidelines/#flowchart-attestation","text":"","title":"Flowchart - Attestation"},{"location":"committee/admin/approval-guidelines/#flagging-as-junk","text":"PeeringDB users can flag a facility as \u201cjunk\u201d. This puts the Facility object in a review queue. The Admin Committee can resolve in the following ways: The facility owner becomes a PeeringDB user and claims the facility. The 3 people who attested that the facility exists can point at two existing PeeringDB IXP or Network object owners who are willing to attest they are present in the facility. The Admin Committee contacts the IXP or Network object owners and asks them to confirm their presence in the facility. At this point the facility record will list at least two network and/or IXP objects. A facility without networks or IXPs is considered potential \u201cjunk\u201d. Empty facilities will be deleted after 90 days. This happens when neither the owner of the facility, nor any other PeeringDB users were willing to indicate a relationship to the facility. The \u201cjunk\u201d button only appears in the UI for objects which are both unclaimed, and where no networks or IXPs indicate a presence.","title":"Flagging as \"junk\""},{"location":"committee/admin/approval-guidelines/#checklist-to-help-find-entities-present-at-the-facility-and-or-understand-who-the-facility-owner-is","text":"Website operated by the facility owner: recommended and SHOULD list colocation or interconnection as a service Government or Industry Association website listing facilities. (Example: CLLI locators in the United States) Website of IXPs or Networks publishing they operate in the building","title":"Checklist to help find entities present at the facility and or understand who the facility owner is"},{"location":"committee/admin/approval-guidelines/#example-facility-object-approval-scenarios","text":"","title":"Example facility object approval scenarios"},{"location":"committee/admin/approval-guidelines/#facility-approval-example-1","text":"Facility located at 100 W Main Street, Nowhere, WV, USA. Facility has four ISPs that interconnect in the basement of the building. Three out of the four ISPs have staff with PeeringDB accounts. Building owner has provided a closet for this to occur. Building has no website, the building owner does not know anything about interconnection, and has no plans to market the building as an interconnection location. Start ISP operator A files a request to suggest a Facility object to be entered into PeeringDB. Validation Process The facility owner is not a PeeringDB user, so the mechanism of the facility owner themselves suggesting the facility cannot be applied. The act of suggesting the facility in the PeeringDB user interface generates a unique URL which ISP Operator A can share with the fellow ISPs. If at least 2 other PeeringDB users attest the facility exists, the Facility object is created and marked as \u201cunclaimed\u201d.","title":"Facility approval example 1"},{"location":"committee/admin/approval-guidelines/#facility-approval-example-2","text":"A PeeringDB user noticed the Facility object created (as a result of Example 1), and reports it as \u201cjunk\u201d. The object continues to exist, but is added to a review queue for the PeeringDB Admin Committee to help resolve the situation. The Admin Committee\u2019s task is to find positive proof the facility exists and interconnection happens. Validation Process The AC committee first contacts the original PeeringDB users that provided attestations the facility exists. (Note: these PeeringDB users themselves might not be present in the facility). The AC can request the original attesters to provide a list of ISPs or IXPs they think are present in the facility. The AC can then contact the ISPs and/or IXPs who were suggested to have a presence in the facility and ask them to either attest the facility exists, or to add themselves as \u2018present\u2019 in the facility. It is possible these ISPs and/or IXPs are not yet PeeringDB users. If the AC can\u2019t collect the attestations the facility will be deleted in 90 days.","title":"Facility approval example 2"},{"location":"committee/admin/approval-guidelines/#facility-approval-example-3","text":"A Facility owner is a PeeringDB user and wishes to add its facility to PeeringDB using the \u201cSuggest a Facility\u201d function. The building owner is leasing suites to carriers in the basement of his facility, but primarily focuses on leasing office space. The building has a webpage, but data center/interconnection services are not listed on the webpage. The building owner has provided a list of four carriers who have leased space in the building. Validation Process The building owner can add webpage showing that they provide interconnection services. The attestation process can be used to demonstrate the building is used for interconnection.","title":"Facility approval example 3"},{"location":"committee/admin/approval-guidelines/#facility-approval-example-4","text":"An existing facility operator with other facilities listed in PeeringDB submits a new facility that does not yet have any customers. Validation Process None - The facility should be immediately added. After the Facility object has been added, networks and IXPs can indicate their presence.","title":"Facility approval example 4"},{"location":"committee/admin/approval-guidelines/#exception-process","text":"We know that these guidelines will need to be improved and updated as we learn, so we have built in an \u201cexception\u201d process to help with that. Whenever an easy path is not possible, the requester can ask for more review of their registration request. The first step in this process is to get input from all the volunteers on the Admin Committee. If more eyes are needed, the request can be shared with all of PeeringDB\u2019s Stewards, a group made from the committee chairs and board members. Where a formal decision is needed, the board can vote on a request and make a final decision.","title":"Exception process"},{"location":"committee/admin/approval-guidelines/#flowchart_2","text":"","title":"Flowchart"},{"location":"committee/admin/approval-guidelines/#appendix","text":"","title":"Appendix"},{"location":"committee/admin/approval-guidelines/#why-must-peering-lans-be-between-27-and-19-ipv4-and-not-shorter-than-64-ipv6","text":"This limit is intended to reduce the likelihood of a typo that goes undetected and causes operational issues. Where a peering LAN uses a /28 or a /18 (IPv4) the Admin Committee can manually process the prefix after verifying its prefix length is correct. The technical standards do not allow LANs to have prefixes shorter than a /64, so a /63 would be rejected to avoid causing operational issues to operator equipment that is standards compliant.","title":"Why must peering LANs be between /27 and /19 (IPv4) and not shorter than /64 (IPv6)?"},{"location":"committee/admin/charter/","text":"PeeringDB Admin Committee Charter Approved by Board July 9th, 2020 Scope The PeeringDB Admin Committee (AC) is responsible for the day to day end-user support of PeeringDB. The Admin Committee functions as the first point of contact for any inquiries to PeeringDB. The Admin Committee produces definitions for enhancements to the workflow and Admin GUI and works with the Product Committee to plan a coherent roadmap for the PeeringDB software. Out of scope Work covered in the charter of the Operations, Outreach, Product, and further to be established Committees Deliverables Take care of support tickets, the Admin Committee strives to answer tickets within 24 hours Gather input from end-users regarding the improvement of PeeringDB in terms of bugs and product features and channel them towards the Product Committee via GitHub Improve PeeringDB Admin GUI to help expedient resolution of support tickets Collaboration The Admin Committee works with other PeeringDB committees to ensure an equitable division of development resources in recognition of the volunteer efforts that are ensuring the daily operations. Participation The PeeringDB Admin Committee members serve a one-year renewable term. Volunteers can submit their candidacy to the Admin Committee Chair. The Chair and Vice Chair will choose a new Admin Committee member at any time they see the necessity to ensure the continuity of the Admin Committee. There is a trial period of one month. New members are onboarded by a more experienced committee member (WebEx / Google Hangouts / 3 example tickets). After the trial period appointment is confirmed by the Chair and Vice Chair for one year. Expectations Individual committee members should do their fair share of tickets measured over a month If a committee member is away for an extended period of time, inform the Chair, Vice Chair, and a notification sent to the Admin Committee mailing list One month probation where they get taught/mentored by an experienced admin, and where if they do not do the work, they get booted Chairs perform a quarterly review. If you don't meet a fair portion of the work you'll be nudged. Also, three months of inactivity is an automatic ejection Communication Questions and suggestions for the Admin Committee can be sent to the Admincom Mailing List On- and de-boarding is handled via the Admincom GitHub All other issues, also for Admin GUI bugs and features must go to the regular GitHub Any support questions should be directed to the Support Address Admin Committee uses slack and emails for internal communication Regular (4-6 week interval) conference calls are used to stay synced and discuss issues Decision policy Admin Committee members will decide on their own when handling support tickets according to the Admin Committee BCP laid out in the Admin Committee How-To Folder. Otherwise, they will decide by simple majority vote on contested issues called by the Admin Committee Chair. If there is a tie the Chair's vote is counted double. Workflow Admincom uses DeskPRO and GitHub as well as direct communication with the main service contractor 20C to achieve its deliverables. In communicating with 3rd parties the Admin Committee should be kept in the loop if the issue is of general interest. PeeringDB Common Committee Charter Provisions: Dispute resolution If the committee handles an issue in a manner in which a user believes that their view has not been adequately considered, their first action should be to raise the concern with the Committee Chair for further consideration. If the dispute is between the user and the Committee Chair then the issue may alternatively be raised with the Committee Vice Chair. If the dispute cannot be resolved the matter may be brought forward to the PeeringDB Board. The decision by the PeeringDB Board shall be final. Committee Chair and Vice Chair The committee elects their Chair and Vice Chair from among their members, subject to PeeringDB Board approval. The Chair and Vice Chair work as a team and distribute the workload between themselves as they deem appropriate. Decisions should be unanimous, however the final decision on any matter is with the Chair. In case the Chair becomes unavailable, the Vice Chair may assume the position of Acting Chair. If the Chair or Vice Chair become permanently unavailable, replacement(s) are elected from the remaining committee members, subject to PeeringDB Board approval.","title":"Charter"},{"location":"committee/admin/charter/#peeringdb-admin-committee-charter","text":"Approved by Board July 9th, 2020","title":"PeeringDB Admin Committee Charter"},{"location":"committee/admin/charter/#scope","text":"The PeeringDB Admin Committee (AC) is responsible for the day to day end-user support of PeeringDB. The Admin Committee functions as the first point of contact for any inquiries to PeeringDB. The Admin Committee produces definitions for enhancements to the workflow and Admin GUI and works with the Product Committee to plan a coherent roadmap for the PeeringDB software.","title":"Scope"},{"location":"committee/admin/charter/#out-of-scope","text":"Work covered in the charter of the Operations, Outreach, Product, and further to be established Committees","title":"Out of scope"},{"location":"committee/admin/charter/#deliverables","text":"Take care of support tickets, the Admin Committee strives to answer tickets within 24 hours Gather input from end-users regarding the improvement of PeeringDB in terms of bugs and product features and channel them towards the Product Committee via GitHub Improve PeeringDB Admin GUI to help expedient resolution of support tickets","title":"Deliverables"},{"location":"committee/admin/charter/#collaboration","text":"The Admin Committee works with other PeeringDB committees to ensure an equitable division of development resources in recognition of the volunteer efforts that are ensuring the daily operations.","title":"Collaboration"},{"location":"committee/admin/charter/#participation","text":"The PeeringDB Admin Committee members serve a one-year renewable term. Volunteers can submit their candidacy to the Admin Committee Chair. The Chair and Vice Chair will choose a new Admin Committee member at any time they see the necessity to ensure the continuity of the Admin Committee. There is a trial period of one month. New members are onboarded by a more experienced committee member (WebEx / Google Hangouts / 3 example tickets). After the trial period appointment is confirmed by the Chair and Vice Chair for one year.","title":"Participation"},{"location":"committee/admin/charter/#expectations","text":"Individual committee members should do their fair share of tickets measured over a month If a committee member is away for an extended period of time, inform the Chair, Vice Chair, and a notification sent to the Admin Committee mailing list One month probation where they get taught/mentored by an experienced admin, and where if they do not do the work, they get booted Chairs perform a quarterly review. If you don't meet a fair portion of the work you'll be nudged. Also, three months of inactivity is an automatic ejection","title":"Expectations"},{"location":"committee/admin/charter/#communication","text":"Questions and suggestions for the Admin Committee can be sent to the Admincom Mailing List On- and de-boarding is handled via the Admincom GitHub All other issues, also for Admin GUI bugs and features must go to the regular GitHub Any support questions should be directed to the Support Address Admin Committee uses slack and emails for internal communication Regular (4-6 week interval) conference calls are used to stay synced and discuss issues","title":"Communication"},{"location":"committee/admin/charter/#decision-policy","text":"Admin Committee members will decide on their own when handling support tickets according to the Admin Committee BCP laid out in the Admin Committee How-To Folder. Otherwise, they will decide by simple majority vote on contested issues called by the Admin Committee Chair. If there is a tie the Chair's vote is counted double.","title":"Decision policy"},{"location":"committee/admin/charter/#workflow","text":"Admincom uses DeskPRO and GitHub as well as direct communication with the main service contractor 20C to achieve its deliverables. In communicating with 3rd parties the Admin Committee should be kept in the loop if the issue is of general interest. PeeringDB Common Committee Charter Provisions:","title":"Workflow"},{"location":"committee/admin/charter/#dispute-resolution","text":"If the committee handles an issue in a manner in which a user believes that their view has not been adequately considered, their first action should be to raise the concern with the Committee Chair for further consideration. If the dispute is between the user and the Committee Chair then the issue may alternatively be raised with the Committee Vice Chair. If the dispute cannot be resolved the matter may be brought forward to the PeeringDB Board. The decision by the PeeringDB Board shall be final.","title":"Dispute resolution"},{"location":"committee/admin/charter/#committee-chair-and-vice-chair","text":"The committee elects their Chair and Vice Chair from among their members, subject to PeeringDB Board approval. The Chair and Vice Chair work as a team and distribute the workload between themselves as they deem appropriate. Decisions should be unanimous, however the final decision on any matter is with the Chair. In case the Chair becomes unavailable, the Vice Chair may assume the position of Acting Chair. If the Chair or Vice Chair become permanently unavailable, replacement(s) are elected from the remaining committee members, subject to PeeringDB Board approval.","title":"Committee Chair and Vice Chair"},{"location":"committee/outreach/","text":"PeeringDB Outreach Committee Purpose is to coordinate outreach and evangelism in the community. Interested in volunteering? Contact outreachcom@lists.peeringdb.com . PeeringDB Outreach Committee Charter Approved by Board July 9th, 2020 Scope The PeeringDB Outreach Committee (OC) is charged with the marketing efforts and running the organization's external engagement to continuously improve the value that PeeringDB delivers to the organizations registered with PeeringDB, and the broader community. Out of scope The OC Committee does not work on other areas, such as product development, as these are managed by the other respective committees and defined in their respective charters. Deliverables Gather inputs from the other respective PeeringDB committees on developments and significant updates and ensure these are communicated the community Coordinate with partner committees and prepare presentations with relevant PeeringDB updates Identify and attend relevant community events to publicize PeeringDB developments and engage the community to drive additional records to be created Identify marketing opportunities for relevant PeeringDB activities Share key milestones and engage with the community through social media channels Participation The PeeringDB Outreach Committee members serve a one-year renewable term. Volunteers can submit their candidacy to the Outreach Committee Chair. The Chair and Vice Chair will choose a new Outreach Committee member at any time they see the necessity to ensure the continuity of the Outreach Committee. Communication Questions and suggestions for the Outreach Committee can be sent to outreachcom@lists.peeringdb.com Decision policy Outreach Committee members will decide by simple majority vote on contested issues called by the Outreach Committee Chair. PeeringDB Common Committee Charter Provisions: Dispute resolution If the committee handles an issue in a manner in which a user believes that their view has not been adequately considered, their first action should be to raise the concern with the Committee Chair for further consideration. If the dispute is between the user and the Committee Chair then the issue may alternatively be raised with the Committee Vice Chair. If the dispute cannot be resolved the matter may be brought forward to the PeeringDB Board. The decision by the PeeringDB Board shall be final. Committee Chair and Vice Chair The committee elects their Chair and Vice Chair from among their members, subject to PeeringDB Board approval. The Chair and Vice Chair work as a team and distribute the workload between themselves as they deem appropriate. Decisions should be unanimous, however the final decision on any matter is with the Chair. In case the Chair becomes unavailable, the Vice Chair may assume the position of Acting Chair. If the Chair or Vice Chair become permanently unavailable, replacement(s) are elected from the remaining committee members, subject to PeeringDB Board approval. Meeting notes 2024 October 9th, 2024: Meeting Notes September 19th, 2024: Meeting Notes August 13th, 2024: Meeting Notes July 9th, 2024: Meeting Notes June 17th, 2024: Meeting Notes May 14th, 2024: Meeting Notes April 9th, 2024: Meeting Notes 2021 No formal meeting in December 2021 November 2nd, 2021: Meeting Notes October 5th, 2021: Meeting Notes September 7th, 2021: Meeting Notes No formal meeting in August 2021 July 6th, 2021: Meeting Notes June 1st, 2021: Meeting Notes May 5th, 2021: Meeting Notes April 6th, 2021: Meeting Notes March 1st, 2021: Meeting Notes February 8th, 2021: Meeting Notes January 12th, 2021: Meeting Notes 2020 No formal meeting in December 2020 November 12th, 2020: Meeting Notes No formal meeting in October 2020 No formal meeting in September 2020 August 4th, 2020: Meeting Notes July 7th, 2020: Meeting Notes June 2nd, 2020: Meeting Notes May 7th, 2020: Meeting Notes April 7th, 2020: Meeting Notes March 17th, 2020: Meeting Notes February 4th, 2020: Meeting Notes January 7th, 2020: Meeting Notes 2019 December 3rd, 2019: Meeting Notes Members Obinna Adumike Lynsey Buckingham Yana Glaub Greg Hankins Aaron Hughes - Board Liaison Tarryn Kidd Livio Morina Arnold Nipper Ester Paal Ben Ryall - Chair Leo Vegoda - Product Manager","title":"Outreach Committee"},{"location":"committee/outreach/#peeringdb-outreach-committee","text":"Purpose is to coordinate outreach and evangelism in the community. Interested in volunteering? Contact outreachcom@lists.peeringdb.com .","title":"PeeringDB Outreach Committee"},{"location":"committee/outreach/#peeringdb-outreach-committee-charter","text":"Approved by Board July 9th, 2020","title":"PeeringDB Outreach Committee Charter"},{"location":"committee/outreach/#scope","text":"The PeeringDB Outreach Committee (OC) is charged with the marketing efforts and running the organization's external engagement to continuously improve the value that PeeringDB delivers to the organizations registered with PeeringDB, and the broader community.","title":"Scope"},{"location":"committee/outreach/#out-of-scope","text":"The OC Committee does not work on other areas, such as product development, as these are managed by the other respective committees and defined in their respective charters.","title":"Out of scope"},{"location":"committee/outreach/#deliverables","text":"Gather inputs from the other respective PeeringDB committees on developments and significant updates and ensure these are communicated the community Coordinate with partner committees and prepare presentations with relevant PeeringDB updates Identify and attend relevant community events to publicize PeeringDB developments and engage the community to drive additional records to be created Identify marketing opportunities for relevant PeeringDB activities Share key milestones and engage with the community through social media channels","title":"Deliverables"},{"location":"committee/outreach/#participation","text":"The PeeringDB Outreach Committee members serve a one-year renewable term. Volunteers can submit their candidacy to the Outreach Committee Chair. The Chair and Vice Chair will choose a new Outreach Committee member at any time they see the necessity to ensure the continuity of the Outreach Committee.","title":"Participation"},{"location":"committee/outreach/#communication","text":"Questions and suggestions for the Outreach Committee can be sent to outreachcom@lists.peeringdb.com","title":"Communication"},{"location":"committee/outreach/#decision-policy","text":"Outreach Committee members will decide by simple majority vote on contested issues called by the Outreach Committee Chair. PeeringDB Common Committee Charter Provisions:","title":"Decision policy"},{"location":"committee/outreach/#dispute-resolution","text":"If the committee handles an issue in a manner in which a user believes that their view has not been adequately considered, their first action should be to raise the concern with the Committee Chair for further consideration. If the dispute is between the user and the Committee Chair then the issue may alternatively be raised with the Committee Vice Chair. If the dispute cannot be resolved the matter may be brought forward to the PeeringDB Board. The decision by the PeeringDB Board shall be final.","title":"Dispute resolution"},{"location":"committee/outreach/#committee-chair-and-vice-chair","text":"The committee elects their Chair and Vice Chair from among their members, subject to PeeringDB Board approval. The Chair and Vice Chair work as a team and distribute the workload between themselves as they deem appropriate. Decisions should be unanimous, however the final decision on any matter is with the Chair. In case the Chair becomes unavailable, the Vice Chair may assume the position of Acting Chair. If the Chair or Vice Chair become permanently unavailable, replacement(s) are elected from the remaining committee members, subject to PeeringDB Board approval.","title":"Committee Chair and Vice Chair"},{"location":"committee/outreach/#meeting-notes","text":"","title":"Meeting notes"},{"location":"committee/outreach/#2024","text":"October 9th, 2024: Meeting Notes September 19th, 2024: Meeting Notes August 13th, 2024: Meeting Notes July 9th, 2024: Meeting Notes June 17th, 2024: Meeting Notes May 14th, 2024: Meeting Notes April 9th, 2024: Meeting Notes","title":"2024"},{"location":"committee/outreach/#2021","text":"No formal meeting in December 2021 November 2nd, 2021: Meeting Notes October 5th, 2021: Meeting Notes September 7th, 2021: Meeting Notes No formal meeting in August 2021 July 6th, 2021: Meeting Notes June 1st, 2021: Meeting Notes May 5th, 2021: Meeting Notes April 6th, 2021: Meeting Notes March 1st, 2021: Meeting Notes February 8th, 2021: Meeting Notes January 12th, 2021: Meeting Notes","title":"2021"},{"location":"committee/outreach/#2020","text":"No formal meeting in December 2020 November 12th, 2020: Meeting Notes No formal meeting in October 2020 No formal meeting in September 2020 August 4th, 2020: Meeting Notes July 7th, 2020: Meeting Notes June 2nd, 2020: Meeting Notes May 7th, 2020: Meeting Notes April 7th, 2020: Meeting Notes March 17th, 2020: Meeting Notes February 4th, 2020: Meeting Notes January 7th, 2020: Meeting Notes","title":"2020"},{"location":"committee/outreach/#2019","text":"December 3rd, 2019: Meeting Notes","title":"2019"},{"location":"committee/outreach/#members","text":"Obinna Adumike Lynsey Buckingham Yana Glaub Greg Hankins Aaron Hughes - Board Liaison Tarryn Kidd Livio Morina Arnold Nipper Ester Paal Ben Ryall - Chair Leo Vegoda - Product Manager","title":"Members"},{"location":"committee/outreach/charter/","text":"PeeringDB Outreach Committee Charter Approved by Board July 9th, 2020 Scope The PeeringDB Outreach Committee (OC) is charged with the marketing efforts and running the organization's external engagement to continuously improve the value that PeeringDB delivers to the organizations registered with PeeringDB, and the broader community. Out of scope The OC Committee does not work on other areas, such as product development, as these are managed by the other respective committees and defined in their respective charters. Deliverables Gather inputs from the other respective PeeringDB committees on developments and significant updates and ensure these are communicated the community Coordinate with partner committees and prepare presentations with relevant PeeringDB updates Identify and attend relevant community events to publicize PeeringDB developments and engage the community to drive additional records to be created Identify marketing opportunities for relevant PeeringDB activities Share key milestones and engage with the community through social media channels Participation The PeeringDB Outreach Committee members serve a one-year renewable term. Volunteers can submit their candidacy to the Outreach Committee Chair. The Chair and Vice Chair will choose a new Outreach Committee member at any time they see the necessity to ensure the continuity of the Outreach Committee. Communication Questions and suggestions for the Outreach Committee can be sent to outreachcom@lists.peeringdb.com Decision policy Outreach Committee members will decide by simple majority vote on contested issues called by the Outreach Committee Chair. PeeringDB Common Committee Charter Provisions: Dispute resolution If the committee handles an issue in a manner in which a user believes that their view has not been adequately considered, their first action should be to raise the concern with the Committee Chair for further consideration. If the dispute is between the user and the Committee Chair then the issue may alternatively be raised with the Committee Vice Chair. If the dispute cannot be resolved the matter may be brought forward to the PeeringDB Board. The decision by the PeeringDB Board shall be final. Committee Chair and Vice Chair The committee elects their Chair and Vice Chair from among their members, subject to PeeringDB Board approval. The Chair and Vice Chair work as a team and distribute the workload between themselves as they deem appropriate. Decisions should be unanimous, however the final decision on any matter is with the Chair. In case the Chair becomes unavailable, the Vice Chair may assume the position of Acting Chair. If the Chair or Vice Chair become permanently unavailable, replacement(s) are elected from the remaining committee members, subject to PeeringDB Board approval.","title":"Charter"},{"location":"committee/outreach/charter/#peeringdb-outreach-committee-charter","text":"Approved by Board July 9th, 2020","title":"PeeringDB Outreach Committee Charter"},{"location":"committee/outreach/charter/#scope","text":"The PeeringDB Outreach Committee (OC) is charged with the marketing efforts and running the organization's external engagement to continuously improve the value that PeeringDB delivers to the organizations registered with PeeringDB, and the broader community.","title":"Scope"},{"location":"committee/outreach/charter/#out-of-scope","text":"The OC Committee does not work on other areas, such as product development, as these are managed by the other respective committees and defined in their respective charters.","title":"Out of scope"},{"location":"committee/outreach/charter/#deliverables","text":"Gather inputs from the other respective PeeringDB committees on developments and significant updates and ensure these are communicated the community Coordinate with partner committees and prepare presentations with relevant PeeringDB updates Identify and attend relevant community events to publicize PeeringDB developments and engage the community to drive additional records to be created Identify marketing opportunities for relevant PeeringDB activities Share key milestones and engage with the community through social media channels","title":"Deliverables"},{"location":"committee/outreach/charter/#participation","text":"The PeeringDB Outreach Committee members serve a one-year renewable term. Volunteers can submit their candidacy to the Outreach Committee Chair. The Chair and Vice Chair will choose a new Outreach Committee member at any time they see the necessity to ensure the continuity of the Outreach Committee.","title":"Participation"},{"location":"committee/outreach/charter/#communication","text":"Questions and suggestions for the Outreach Committee can be sent to outreachcom@lists.peeringdb.com","title":"Communication"},{"location":"committee/outreach/charter/#decision-policy","text":"Outreach Committee members will decide by simple majority vote on contested issues called by the Outreach Committee Chair. PeeringDB Common Committee Charter Provisions:","title":"Decision policy"},{"location":"committee/outreach/charter/#dispute-resolution","text":"If the committee handles an issue in a manner in which a user believes that their view has not been adequately considered, their first action should be to raise the concern with the Committee Chair for further consideration. If the dispute is between the user and the Committee Chair then the issue may alternatively be raised with the Committee Vice Chair. If the dispute cannot be resolved the matter may be brought forward to the PeeringDB Board. The decision by the PeeringDB Board shall be final.","title":"Dispute resolution"},{"location":"committee/outreach/charter/#committee-chair-and-vice-chair","text":"The committee elects their Chair and Vice Chair from among their members, subject to PeeringDB Board approval. The Chair and Vice Chair work as a team and distribute the workload between themselves as they deem appropriate. Decisions should be unanimous, however the final decision on any matter is with the Chair. In case the Chair becomes unavailable, the Vice Chair may assume the position of Acting Chair. If the Chair or Vice Chair become permanently unavailable, replacement(s) are elected from the remaining committee members, subject to PeeringDB Board approval.","title":"Committee Chair and Vice Chair"},{"location":"committee/product/","text":"PeeringDB Product Committee Purpose is to study and recommend feature needs. Interested in volunteering? Contact productcom@lists.peeringdb.com . PeeringDB Product Committee Charter Approved by Board July 7th, 2017 Scope The PeeringDB Product Committee (PC) is charged with steering the future product development and running the market outreach efforts to continuously improve the value that PeeringDB delivers to the networks registered with PeeringDB, and the broader community. Out of scope The PC does not drive PeeringDB improvements related to the administrative interfaces & functions used by the PeeringDB Admin Committee. The PC does not consider PeeringDB improvements related to the server, storage, hosting or network infrastructure. Deliverables Gather inputs from stakeholders regarding the evolution of PeeringDB in terms of product features and overall long term objectives. Formulate the long term objectives and validate them with the PeeringDB Board and the members of the PeeringDB Governance mailing list. Document and maintain workflow process to handle requests and issues. Maintain the product roadmap and feature request backlog and makes them publicly accessible. Create and maintain PeeringDB product documentation and presentation materials. Develop market outreach and evangelization to increase the uptake of PeeringDB use and improve data quality. Propose new features or enhancements based on the long term objectives and validates significant product evolutions with key stakeholders. Collaboration The PC shall work with other PeeringDB committees to ensure an equitable division of development resources in recognition of the volunteer efforts that are ensuring the daily operations. Participation The PeeringDB Product Committee members serve a 2 years renewable term, potential volunteers may submit their candidacy to the PeeringDB Board. The product committee will select their own Chair and Vice Chair by simple majority vote. The Board may add or remove members at any time it deems necessary. Communication Questions and suggestions for the Product Committee can be sent to productcom@lists.peeringdb.com The committee will use a range of mechanisms for communication and community input gathering efforts, including the PeeringDB Governance Mailinglist pdb-gov@lists.peeringdb.com Decisions, including their rationale, will be documented in GitHub issues All issues and the product roadmap and feature backlog can be found at in GitHub issues Decision policy Product Committee members will decide by simple majority vote on contested issues called by the Product Committee Chair. PeeringDB Common Committee Charter Provisions: Dispute resolution If the committee handles an issue in a manner in which a user believes that their view has not been adequately considered, their first action should be to raise the concern with the Committee Chair for further consideration. If the dispute is between the user and the Committee Chair then the issue may alternatively be raised with the Committee Vice Chair. If the dispute cannot be resolved the matter may be brought forward to the PeeringDB Board. The decision by the PeeringDB Board shall be final. Committee Chair and Vice Chair The committee elects their Chair and Vice Chair from among their members, subject to PeeringDB Board approval. The Chair and Vice Chair work as a team and distribute the workload between themselves as they deem appropriate. Decisions should be unanimous, however the final decision on any matter is with the Chair. In case the Chair becomes unavailable, the Vice Chair may assume the position of Acting Chair. If the Chair or Vice Chair become permanently unavailable, replacement(s) are elected from the remaining committee members, subject to PeeringDB Board approval. Decision making process and workflow Product Committee members are responsible for driving the development of PeeringDB. To do this, GitHub issues are used to track proposed and in progress work. Product Committee members play two roles in driving forward work: 1) As a shepherd - responsible for driving consensus for a given issue 2) As a stakeholder - voting on a consensus that has been reached Each Product Committee member will choose issues to shepherd to a decision. They will indicate responsibility for this task by assigning the issue to themselves and placing it in the Decide queue. To decide whether we act on a given issue that has been reported, a stakeholder group will be formed. This group will consist of Product Committee members, who are responsible for representing the users of PeeringDB. A stakeholder group on a given issue must consist of at least three Product Committee members, including the shepherding member. Any Product Committee member can be a stakeholder in the decision on an issue. They become a stakeholder on a given issue by either commenting on the issue on GitHub or participating in discussion of the issue on the Product Committee Mailing list. It is up to the shepherding member to help reach a unanimous consensus within the stakeholder group on what should be done with the issue - including not acting on it. If and only if there are opposing views on how to proceed, and unanimous consensus cannot be reached by the stakeholder committee members, decisions fall to the entire Product Committee (see below). The final proposal of how to resolve each issue, along with votes from stakeholders must be documented in the GitHub issue to be considered to have reached consensus. Product Committee members must document any offline discussion in the GitHub issue to ensure transparency of the discussion process. Issues in the Decide queue are regularly reviewed by the Product Committee to make sure the most impactful issues are being moved along to resolution. All issues in the Decide queue will be reviewed in the monthly Product Committee call to ensure stakeholders have reached consensus and to give members who have not participated in the issue an opportunity to participate. After an issue with consensus has been reviewed, Product Committee members who disagree with the proposal have five days after the monthly Product Committee call to vote against the proposed solution, otherwise the issue will move to the backlog. For any issues where consensus cannot be reached, an issue may move forward only if a quorum of 50% or more of the Product Committee has no more than 25% of the quorum in opposition to the issue. Meeting notes 2024 November 7th, 2024: Meeting Notes October 3rd, 2024: Meeting Notes September 5th, 2024: Meeting Notes August 1st, 2024: Meeting Notes July 11th, 2024: Meeting Notes June 6th, 2024: Meeting Notes May 2nd, 2024: Meeting Notes April 4th, 2024: Meeting Notes March 14th, 2024: Meeting Notes February 1st, 2024: Meeting Notes January 4th, 2024: Meeting Notes 2023 December 7th, 2023: Meeting Notes November 2nd, 2023: Meeting Notes October 5th, 2023: Meeting Notes September 7th, 2023: Meeting Notes August 3rd, 2023: Meeting Notes July 6th, 2023: Meeting Notes June 1st, 2023: Meeting Notes May 4th, 2023: Meeting Notes April 6th, 2023: Meeting Notes March 2nd, 2023: Meeting Notes February 14th, 2023: Meeting Notes February 2nd, 2023: Meeting Notes January 5th, 2023: Meeting Notes 2022 No formal meeting in December 2022 November 3rd, 2022: Meeting Notes October 17th, 2022: Meeting Notes October 6th, 2022: Meeting Notes September 8th, 2022: Meeting Notes August 4th, 2022: Meeting Notes July 7th, 2022: Meeting Notes June 2nd, 2022: Meeting Notes May 5th, 2022: Meeting Notes April 7th, 2022: Meeting Notes March 3rd, 2022: Meeting Notes February 3rd, 2022: Meeting Notes January 6th, 2022: Meeting Notes 2021 December 2nd, 2021: Meeting Notes No formal meeting in November 2021 October 7th, 2021: Meeting Notes No formal meeting in September 2021 No formal meeting in August 2021 No formal meeting in July 2021 No formal meeting in June 2021 May 6th, 2021: Meeting Notes April 1st, 2021: Meeting Notes March 11th, 2021: Meeting Notes February 4th, 2021: Meeting Notes January 7th, 2021: Meeting Notes 2020 December 3rd, 2020: Meeting Notes November 5th, 2020: Meeting Notes October 1st, 2020: Meeting Notes September 3rd, 2020: Meeting Notes August 6th, 2020: Meeting Notes July 2nd, 2020: Meeting Notes June 4th, 2020: Meeting Notes May 7th, 2020: Meeting Notes April 2nd, 2020: Meeting Notes No formal meeting in March 2020 February 6th, 2020: Meeting Notes January 9th, 2020: Meeting Notes 2019 No formal meeting in December 2019 November 14th, 2019: Meeting Notes October 3rd, 2019: Meeting Notes September 5th, 2019: Meeting Notes August 8th, 2019: Meeting Notes July 11th, 2019: Meeting Notes June 7th, 2019: Meeting Notes May 2nd, 2019: Meeting Notes No formal meeting in April 2019 March 7th, 2019: Meeting Notes February 7th, 2019: Meeting Notes January 3rd, 2019: Meeting Notes 2018 December 6th, 2018: Meeting Notes November 1st, 2018: Meeting Notes October 4th, 2018: Meeting Notes September 6th, 2018: Meeting Notes No formal meeting in August 2018 July 5th, 2018: Meeting Notes June 7th, 2018: Meeting Notes No formal meeting in May 2018 April 5th, 2018: Meeting Notes March 14th, 2018: Meeting Notes No formal meeting in February 2018 January 4th, 2018: Meeting Notes 2017 December 7th, 2017: Meeting Notes No formal meeting in November 2017 October 12th, 2017: Meeting Notes No formal meeting in September 2017 August 3rd, 2017: Meeting Notes July 6th, 2017: Meeting Notes June 1st, 2017: Meeting Notes No formal meeting in May 2017 April 13th, 2017: Meeting Notes March 21st, 2017: Meeting Notes Members Jeff Bartig Yan Berthier Jack Carrozzo - Chair Yolandi Cloete Matt Griswold - Vice Chair Martin Hannigan Peter Helmenstine Paul Hoogsteder Aaron Hughes - Board Liaison Laurent Jarbinet Stephen McManus Arnold Nipper Terry Sweetser Leo Vegoda - Product Manager","title":"Product Committee"},{"location":"committee/product/#peeringdb-product-committee","text":"Purpose is to study and recommend feature needs. Interested in volunteering? Contact productcom@lists.peeringdb.com .","title":"PeeringDB Product Committee"},{"location":"committee/product/#peeringdb-product-committee-charter","text":"Approved by Board July 7th, 2017","title":"PeeringDB Product Committee Charter"},{"location":"committee/product/#scope","text":"The PeeringDB Product Committee (PC) is charged with steering the future product development and running the market outreach efforts to continuously improve the value that PeeringDB delivers to the networks registered with PeeringDB, and the broader community.","title":"Scope"},{"location":"committee/product/#out-of-scope","text":"The PC does not drive PeeringDB improvements related to the administrative interfaces & functions used by the PeeringDB Admin Committee. The PC does not consider PeeringDB improvements related to the server, storage, hosting or network infrastructure.","title":"Out of scope"},{"location":"committee/product/#deliverables","text":"Gather inputs from stakeholders regarding the evolution of PeeringDB in terms of product features and overall long term objectives. Formulate the long term objectives and validate them with the PeeringDB Board and the members of the PeeringDB Governance mailing list. Document and maintain workflow process to handle requests and issues. Maintain the product roadmap and feature request backlog and makes them publicly accessible. Create and maintain PeeringDB product documentation and presentation materials. Develop market outreach and evangelization to increase the uptake of PeeringDB use and improve data quality. Propose new features or enhancements based on the long term objectives and validates significant product evolutions with key stakeholders.","title":"Deliverables"},{"location":"committee/product/#collaboration","text":"The PC shall work with other PeeringDB committees to ensure an equitable division of development resources in recognition of the volunteer efforts that are ensuring the daily operations.","title":"Collaboration"},{"location":"committee/product/#participation","text":"The PeeringDB Product Committee members serve a 2 years renewable term, potential volunteers may submit their candidacy to the PeeringDB Board. The product committee will select their own Chair and Vice Chair by simple majority vote. The Board may add or remove members at any time it deems necessary.","title":"Participation"},{"location":"committee/product/#communication","text":"Questions and suggestions for the Product Committee can be sent to productcom@lists.peeringdb.com The committee will use a range of mechanisms for communication and community input gathering efforts, including the PeeringDB Governance Mailinglist pdb-gov@lists.peeringdb.com Decisions, including their rationale, will be documented in GitHub issues All issues and the product roadmap and feature backlog can be found at in GitHub issues","title":"Communication"},{"location":"committee/product/#decision-policy","text":"Product Committee members will decide by simple majority vote on contested issues called by the Product Committee Chair. PeeringDB Common Committee Charter Provisions:","title":"Decision policy"},{"location":"committee/product/#dispute-resolution","text":"If the committee handles an issue in a manner in which a user believes that their view has not been adequately considered, their first action should be to raise the concern with the Committee Chair for further consideration. If the dispute is between the user and the Committee Chair then the issue may alternatively be raised with the Committee Vice Chair. If the dispute cannot be resolved the matter may be brought forward to the PeeringDB Board. The decision by the PeeringDB Board shall be final.","title":"Dispute resolution"},{"location":"committee/product/#committee-chair-and-vice-chair","text":"The committee elects their Chair and Vice Chair from among their members, subject to PeeringDB Board approval. The Chair and Vice Chair work as a team and distribute the workload between themselves as they deem appropriate. Decisions should be unanimous, however the final decision on any matter is with the Chair. In case the Chair becomes unavailable, the Vice Chair may assume the position of Acting Chair. If the Chair or Vice Chair become permanently unavailable, replacement(s) are elected from the remaining committee members, subject to PeeringDB Board approval.","title":"Committee Chair and Vice Chair"},{"location":"committee/product/#decision-making-process-and-workflow","text":"Product Committee members are responsible for driving the development of PeeringDB. To do this, GitHub issues are used to track proposed and in progress work. Product Committee members play two roles in driving forward work: 1) As a shepherd - responsible for driving consensus for a given issue 2) As a stakeholder - voting on a consensus that has been reached Each Product Committee member will choose issues to shepherd to a decision. They will indicate responsibility for this task by assigning the issue to themselves and placing it in the Decide queue. To decide whether we act on a given issue that has been reported, a stakeholder group will be formed. This group will consist of Product Committee members, who are responsible for representing the users of PeeringDB. A stakeholder group on a given issue must consist of at least three Product Committee members, including the shepherding member. Any Product Committee member can be a stakeholder in the decision on an issue. They become a stakeholder on a given issue by either commenting on the issue on GitHub or participating in discussion of the issue on the Product Committee Mailing list. It is up to the shepherding member to help reach a unanimous consensus within the stakeholder group on what should be done with the issue - including not acting on it. If and only if there are opposing views on how to proceed, and unanimous consensus cannot be reached by the stakeholder committee members, decisions fall to the entire Product Committee (see below). The final proposal of how to resolve each issue, along with votes from stakeholders must be documented in the GitHub issue to be considered to have reached consensus. Product Committee members must document any offline discussion in the GitHub issue to ensure transparency of the discussion process. Issues in the Decide queue are regularly reviewed by the Product Committee to make sure the most impactful issues are being moved along to resolution. All issues in the Decide queue will be reviewed in the monthly Product Committee call to ensure stakeholders have reached consensus and to give members who have not participated in the issue an opportunity to participate. After an issue with consensus has been reviewed, Product Committee members who disagree with the proposal have five days after the monthly Product Committee call to vote against the proposed solution, otherwise the issue will move to the backlog. For any issues where consensus cannot be reached, an issue may move forward only if a quorum of 50% or more of the Product Committee has no more than 25% of the quorum in opposition to the issue.","title":"Decision making process and workflow"},{"location":"committee/product/#meeting-notes","text":"","title":"Meeting notes"},{"location":"committee/product/#2024","text":"November 7th, 2024: Meeting Notes October 3rd, 2024: Meeting Notes September 5th, 2024: Meeting Notes August 1st, 2024: Meeting Notes July 11th, 2024: Meeting Notes June 6th, 2024: Meeting Notes May 2nd, 2024: Meeting Notes April 4th, 2024: Meeting Notes March 14th, 2024: Meeting Notes February 1st, 2024: Meeting Notes January 4th, 2024: Meeting Notes","title":"2024"},{"location":"committee/product/#2023","text":"December 7th, 2023: Meeting Notes November 2nd, 2023: Meeting Notes October 5th, 2023: Meeting Notes September 7th, 2023: Meeting Notes August 3rd, 2023: Meeting Notes July 6th, 2023: Meeting Notes June 1st, 2023: Meeting Notes May 4th, 2023: Meeting Notes April 6th, 2023: Meeting Notes March 2nd, 2023: Meeting Notes February 14th, 2023: Meeting Notes February 2nd, 2023: Meeting Notes January 5th, 2023: Meeting Notes","title":"2023"},{"location":"committee/product/#2022","text":"No formal meeting in December 2022 November 3rd, 2022: Meeting Notes October 17th, 2022: Meeting Notes October 6th, 2022: Meeting Notes September 8th, 2022: Meeting Notes August 4th, 2022: Meeting Notes July 7th, 2022: Meeting Notes June 2nd, 2022: Meeting Notes May 5th, 2022: Meeting Notes April 7th, 2022: Meeting Notes March 3rd, 2022: Meeting Notes February 3rd, 2022: Meeting Notes January 6th, 2022: Meeting Notes","title":"2022"},{"location":"committee/product/#2021","text":"December 2nd, 2021: Meeting Notes No formal meeting in November 2021 October 7th, 2021: Meeting Notes No formal meeting in September 2021 No formal meeting in August 2021 No formal meeting in July 2021 No formal meeting in June 2021 May 6th, 2021: Meeting Notes April 1st, 2021: Meeting Notes March 11th, 2021: Meeting Notes February 4th, 2021: Meeting Notes January 7th, 2021: Meeting Notes","title":"2021"},{"location":"committee/product/#2020","text":"December 3rd, 2020: Meeting Notes November 5th, 2020: Meeting Notes October 1st, 2020: Meeting Notes September 3rd, 2020: Meeting Notes August 6th, 2020: Meeting Notes July 2nd, 2020: Meeting Notes June 4th, 2020: Meeting Notes May 7th, 2020: Meeting Notes April 2nd, 2020: Meeting Notes No formal meeting in March 2020 February 6th, 2020: Meeting Notes January 9th, 2020: Meeting Notes","title":"2020"},{"location":"committee/product/#2019","text":"No formal meeting in December 2019 November 14th, 2019: Meeting Notes October 3rd, 2019: Meeting Notes September 5th, 2019: Meeting Notes August 8th, 2019: Meeting Notes July 11th, 2019: Meeting Notes June 7th, 2019: Meeting Notes May 2nd, 2019: Meeting Notes No formal meeting in April 2019 March 7th, 2019: Meeting Notes February 7th, 2019: Meeting Notes January 3rd, 2019: Meeting Notes","title":"2019"},{"location":"committee/product/#2018","text":"December 6th, 2018: Meeting Notes November 1st, 2018: Meeting Notes October 4th, 2018: Meeting Notes September 6th, 2018: Meeting Notes No formal meeting in August 2018 July 5th, 2018: Meeting Notes June 7th, 2018: Meeting Notes No formal meeting in May 2018 April 5th, 2018: Meeting Notes March 14th, 2018: Meeting Notes No formal meeting in February 2018 January 4th, 2018: Meeting Notes","title":"2018"},{"location":"committee/product/#2017","text":"December 7th, 2017: Meeting Notes No formal meeting in November 2017 October 12th, 2017: Meeting Notes No formal meeting in September 2017 August 3rd, 2017: Meeting Notes July 6th, 2017: Meeting Notes June 1st, 2017: Meeting Notes No formal meeting in May 2017 April 13th, 2017: Meeting Notes March 21st, 2017: Meeting Notes","title":"2017"},{"location":"committee/product/#members","text":"Jeff Bartig Yan Berthier Jack Carrozzo - Chair Yolandi Cloete Matt Griswold - Vice Chair Martin Hannigan Peter Helmenstine Paul Hoogsteder Aaron Hughes - Board Liaison Laurent Jarbinet Stephen McManus Arnold Nipper Terry Sweetser Leo Vegoda - Product Manager","title":"Members"},{"location":"committee/product/charter/","text":"PeeringDB Product Committee Charter Approved by Board July 7th, 2017 Scope The PeeringDB Product Committee (PC) is charged with steering the future product development and running the market outreach efforts to continuously improve the value that PeeringDB delivers to the networks registered with PeeringDB, and the broader community. Out of scope The PC does not drive PeeringDB improvements related to the administrative interfaces & functions used by the PeeringDB Admin Committee. The PC does not consider PeeringDB improvements related to the server, storage, hosting or network infrastructure. Deliverables Gather inputs from stakeholders regarding the evolution of PeeringDB in terms of product features and overall long term objectives. Formulate the long term objectives and validate them with the PeeringDB Board and the members of the PeeringDB Governance mailing list. Document and maintain workflow process to handle requests and issues. Maintain the product roadmap and feature request backlog and makes them publicly accessible. Create and maintain PeeringDB product documentation and presentation materials. Develop market outreach and evangelization to increase the uptake of PeeringDB use and improve data quality. Propose new features or enhancements based on the long term objectives and validates significant product evolutions with key stakeholders. Collaboration The PC shall work with other PeeringDB committees to ensure an equitable division of development resources in recognition of the volunteer efforts that are ensuring the daily operations. Participation The PeeringDB Product Committee members serve a 2 years renewable term, potential volunteers may submit their candidacy to the PeeringDB Board. The product committee will select their own Chair and Vice Chair by simple majority vote. The Board may add or remove members at any time it deems necessary. Communication Questions and suggestions for the Product Committee can be sent to productcom@lists.peeringdb.com The committee will use a range of mechanisms for communication and community input gathering efforts, including the PeeringDB Governance Mailinglist pdb-gov@lists.peeringdb.com Decisions, including their rationale, will be documented in GitHub issues All issues and the product roadmap and feature backlog can be found at in GitHub issues Decision policy Product Committee members will decide by simple majority vote on contested issues called by the Product Committee Chair. PeeringDB Common Committee Charter Provisions: Dispute resolution If the committee handles an issue in a manner in which a user believes that their view has not been adequately considered, their first action should be to raise the concern with the Committee Chair for further consideration. If the dispute is between the user and the Committee Chair then the issue may alternatively be raised with the Committee Vice Chair. If the dispute cannot be resolved the matter may be brought forward to the PeeringDB Board. The decision by the PeeringDB Board shall be final. Committee Chair and Vice Chair The committee elects their Chair and Vice Chair from among their members, subject to PeeringDB Board approval. The Chair and Vice Chair work as a team and distribute the workload between themselves as they deem appropriate. Decisions should be unanimous, however the final decision on any matter is with the Chair. In case the Chair becomes unavailable, the Vice Chair may assume the position of Acting Chair. If the Chair or Vice Chair become permanently unavailable, replacement(s) are elected from the remaining committee members, subject to PeeringDB Board approval.","title":"Charter"},{"location":"committee/product/charter/#peeringdb-product-committee-charter","text":"Approved by Board July 7th, 2017","title":"PeeringDB Product Committee Charter"},{"location":"committee/product/charter/#scope","text":"The PeeringDB Product Committee (PC) is charged with steering the future product development and running the market outreach efforts to continuously improve the value that PeeringDB delivers to the networks registered with PeeringDB, and the broader community.","title":"Scope"},{"location":"committee/product/charter/#out-of-scope","text":"The PC does not drive PeeringDB improvements related to the administrative interfaces & functions used by the PeeringDB Admin Committee. The PC does not consider PeeringDB improvements related to the server, storage, hosting or network infrastructure.","title":"Out of scope"},{"location":"committee/product/charter/#deliverables","text":"Gather inputs from stakeholders regarding the evolution of PeeringDB in terms of product features and overall long term objectives. Formulate the long term objectives and validate them with the PeeringDB Board and the members of the PeeringDB Governance mailing list. Document and maintain workflow process to handle requests and issues. Maintain the product roadmap and feature request backlog and makes them publicly accessible. Create and maintain PeeringDB product documentation and presentation materials. Develop market outreach and evangelization to increase the uptake of PeeringDB use and improve data quality. Propose new features or enhancements based on the long term objectives and validates significant product evolutions with key stakeholders.","title":"Deliverables"},{"location":"committee/product/charter/#collaboration","text":"The PC shall work with other PeeringDB committees to ensure an equitable division of development resources in recognition of the volunteer efforts that are ensuring the daily operations.","title":"Collaboration"},{"location":"committee/product/charter/#participation","text":"The PeeringDB Product Committee members serve a 2 years renewable term, potential volunteers may submit their candidacy to the PeeringDB Board. The product committee will select their own Chair and Vice Chair by simple majority vote. The Board may add or remove members at any time it deems necessary.","title":"Participation"},{"location":"committee/product/charter/#communication","text":"Questions and suggestions for the Product Committee can be sent to productcom@lists.peeringdb.com The committee will use a range of mechanisms for communication and community input gathering efforts, including the PeeringDB Governance Mailinglist pdb-gov@lists.peeringdb.com Decisions, including their rationale, will be documented in GitHub issues All issues and the product roadmap and feature backlog can be found at in GitHub issues","title":"Communication"},{"location":"committee/product/charter/#decision-policy","text":"Product Committee members will decide by simple majority vote on contested issues called by the Product Committee Chair. PeeringDB Common Committee Charter Provisions:","title":"Decision policy"},{"location":"committee/product/charter/#dispute-resolution","text":"If the committee handles an issue in a manner in which a user believes that their view has not been adequately considered, their first action should be to raise the concern with the Committee Chair for further consideration. If the dispute is between the user and the Committee Chair then the issue may alternatively be raised with the Committee Vice Chair. If the dispute cannot be resolved the matter may be brought forward to the PeeringDB Board. The decision by the PeeringDB Board shall be final.","title":"Dispute resolution"},{"location":"committee/product/charter/#committee-chair-and-vice-chair","text":"The committee elects their Chair and Vice Chair from among their members, subject to PeeringDB Board approval. The Chair and Vice Chair work as a team and distribute the workload between themselves as they deem appropriate. Decisions should be unanimous, however the final decision on any matter is with the Chair. In case the Chair becomes unavailable, the Vice Chair may assume the position of Acting Chair. If the Chair or Vice Chair become permanently unavailable, replacement(s) are elected from the remaining committee members, subject to PeeringDB Board approval.","title":"Committee Chair and Vice Chair"},{"location":"committee/product/workflow/","text":"Decision making process and workflow Product Committee members are responsible for driving the development of PeeringDB. To do this, GitHub issues are used to track proposed and in progress work. Product Committee members play two roles in driving forward work: 1) As a shepherd - responsible for driving consensus for a given issue 2) As a stakeholder - voting on a consensus that has been reached Each Product Committee member will choose issues to shepherd to a decision. They will indicate responsibility for this task by assigning the issue to themselves and placing it in the Decide queue. To decide whether we act on a given issue that has been reported, a stakeholder group will be formed. This group will consist of Product Committee members, who are responsible for representing the users of PeeringDB. A stakeholder group on a given issue must consist of at least three Product Committee members, including the shepherding member. Any Product Committee member can be a stakeholder in the decision on an issue. They become a stakeholder on a given issue by either commenting on the issue on GitHub or participating in discussion of the issue on the Product Committee Mailing list. It is up to the shepherding member to help reach a unanimous consensus within the stakeholder group on what should be done with the issue - including not acting on it. If and only if there are opposing views on how to proceed, and unanimous consensus cannot be reached by the stakeholder committee members, decisions fall to the entire Product Committee (see below). The final proposal of how to resolve each issue, along with votes from stakeholders must be documented in the GitHub issue to be considered to have reached consensus. Product Committee members must document any offline discussion in the GitHub issue to ensure transparency of the discussion process. Issues in the Decide queue are regularly reviewed by the Product Committee to make sure the most impactful issues are being moved along to resolution. All issues in the Decide queue will be reviewed in the monthly Product Committee call to ensure stakeholders have reached consensus and to give members who have not participated in the issue an opportunity to participate. After an issue with consensus has been reviewed, Product Committee members who disagree with the proposal have five days after the monthly Product Committee call to vote against the proposed solution, otherwise the issue will move to the backlog. For any issues where consensus cannot be reached, an issue may move forward only if a quorum of 50% or more of the Product Committee has no more than 25% of the quorum in opposition to the issue.","title":"Workflow"},{"location":"committee/product/workflow/#decision-making-process-and-workflow","text":"Product Committee members are responsible for driving the development of PeeringDB. To do this, GitHub issues are used to track proposed and in progress work. Product Committee members play two roles in driving forward work: 1) As a shepherd - responsible for driving consensus for a given issue 2) As a stakeholder - voting on a consensus that has been reached Each Product Committee member will choose issues to shepherd to a decision. They will indicate responsibility for this task by assigning the issue to themselves and placing it in the Decide queue. To decide whether we act on a given issue that has been reported, a stakeholder group will be formed. This group will consist of Product Committee members, who are responsible for representing the users of PeeringDB. A stakeholder group on a given issue must consist of at least three Product Committee members, including the shepherding member. Any Product Committee member can be a stakeholder in the decision on an issue. They become a stakeholder on a given issue by either commenting on the issue on GitHub or participating in discussion of the issue on the Product Committee Mailing list. It is up to the shepherding member to help reach a unanimous consensus within the stakeholder group on what should be done with the issue - including not acting on it. If and only if there are opposing views on how to proceed, and unanimous consensus cannot be reached by the stakeholder committee members, decisions fall to the entire Product Committee (see below). The final proposal of how to resolve each issue, along with votes from stakeholders must be documented in the GitHub issue to be considered to have reached consensus. Product Committee members must document any offline discussion in the GitHub issue to ensure transparency of the discussion process. Issues in the Decide queue are regularly reviewed by the Product Committee to make sure the most impactful issues are being moved along to resolution. All issues in the Decide queue will be reviewed in the monthly Product Committee call to ensure stakeholders have reached consensus and to give members who have not participated in the issue an opportunity to participate. After an issue with consensus has been reviewed, Product Committee members who disagree with the proposal have five days after the monthly Product Committee call to vote against the proposed solution, otherwise the issue will move to the backlog. For any issues where consensus cannot be reached, an issue may move forward only if a quorum of 50% or more of the Product Committee has no more than 25% of the quorum in opposition to the issue.","title":"Decision making process and workflow"},{"location":"howto/api_keys/","text":"HOWTO: Get Started with API Keys 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. API What is our API? An Application Programming Interface (API) is a way for computer software to communicate with other computers software. Our API allows PeeringDB users to query and update PeeringDB programmatically. That means they can automate work instead of using the website. What Are API keys? An API key is a secret token for identifying and authenticating a user. That user can be an individual or an organization. That\u2019s why we support both user and organizational API keys. PeeringDB offers API keys for authenticating API requests. There are two main forms of API keys: User-level Organizational-level User-level API keys These API keys are tied to an individual user account and can be created from the user profile page. There are only two permission levels: a normal key will mirror the same permissions of the user, while a readonly key will have read only permissions to all the same namespaces as the user. Organization-level API keys These API keys are created and revoked from the organization admin panel. Each key gets its own custom permissions, which can be modified from the API Key Permissions panel. Each key must have an email attached to it. This is because keys may be allowed to create and modify data in PeeringDB, and we need a contact to reach out to in case of questions. You should use an organization-level API key for automation that should not be tied to individual users. Copy or write down keys immediately The full API key string is only ever exposed to the user or organization at its moment of creation . If this string is lost, then the user or organization should revoke that key and create and permission a new one. Command line example using Python and requests API keys allow developers to interact with their PeeringDB account programmatically, rather than through the website. Here is an example script in Python. It uses the module Requests to GET data about a particular Facility, and then sends a PUT request to modify that data. This example assumes we have an environment variable set with our API key. To do that from the command line, we can run: export API_KEY=\"[created api key string]\" Then the Python script would look like the following. First we get the API key from the environment: import os import requests API_KEY = os.environ.get(\"API_KEY\") We set the url for the Facility we want to interact with. Note the /api in the URL, which signals we are making calls to the REST API. URL = \"https://www.peeringdb.com/api/fac/1\" We set the headers to include our API key as authorization. Printing the headers variable should allow us to see the API key. headers = {\"Authorization\": \"Api-Key \" + API_KEY} print(headers) First we make a GET request, to simply get data about example Facility number 1 response = requests.get(URL, headers=headers) data = response.json()[\"data\"][0] print(data) Printing this data allows us to see what fields we would like to change. Let's say we decide to change the name of this facility. We overwrite the value for key \"name\" data[\"name\"] = \"Newly decided name\" Then we use a PUT request to send that modified data back to PeeringDB. Note that this time, we must provide data to the API, using the keyword argument \"data\" put_response = requests.put(URL, headers=headers, data=data) We can print the status code to see if our request was successful. print(put_response.status_code) This will return a code 200 to signal success. Additionally the content of the request should include data for the now modified Facility print(put_response.json()) Would return a dictionary of the values of the now modified Facility. Command line example using curl API keys provide a cleaner way to authenticate API requests. PeeringDB recommends the command line user creates a API_KEY variable like so export API_KEY=\"[created api key string]\" then requests can be made with Curl like in the following examples: GET The following request would return JSON data coresponding to the ChiX Internet Exchange. curl -H \"Authorization: Api-Key $API_KEY\" -H \"Content-Type: application/json\" -X GET https://www.peeringdb.com/api/ix/239 POST The following request would create a new Network under the organization United IX . curl -H \"Authorization: Api-Key $API_KEY\" -H \"Content-Type: application/json\" -X POST --data \"{\\\"\"org_id\"\\\":\\\"10843\\\", \\\"\"name\"\\\":\\\"Brand New Network\\\", \\\"\"asn\"\\\":\\\"63311\\\"}\" https://www.peeringdb.com/api/net PUT The following request would update the data about a particular Network, ChIX Route Servers , in particular changing the name to \"Edited Name\". curl -H \"Authorization: Api-Key $API_KEY\" -H \"Content-Type: application/json\" -X PUT --data \"{\\\"\"org_id\"\\\":\\\"10843\\\", \\\"\"name\"\\\":\\\"Edited Name\\\", \\\"\"asn\"\\\":\\\"33713\\\"}\" https://www.peeringdb.com/api/net/7889 DELETE The following request would delete the ChiX Internet Exchange. The API key holder would need delete privileges to that particular Exchange. curl -H \"Authorization: Api-Key $API_KEY\" -H \"Content-Type: application/json\" -X DELETE https://www.peeringdb.com/api/ix/239","title":"HOWTO: Get Started with API Keys"},{"location":"howto/api_keys/#howto-get-started-with-api-keys","text":"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.","title":"HOWTO: Get Started with API Keys"},{"location":"howto/api_keys/#api","text":"","title":"API"},{"location":"howto/api_keys/#what-is-our-api","text":"An Application Programming Interface (API) is a way for computer software to communicate with other computers software. Our API allows PeeringDB users to query and update PeeringDB programmatically. That means they can automate work instead of using the website.","title":"What is our API?"},{"location":"howto/api_keys/#what-are-api-keys","text":"An API key is a secret token for identifying and authenticating a user. That user can be an individual or an organization. That\u2019s why we support both user and organizational API keys. PeeringDB offers API keys for authenticating API requests. There are two main forms of API keys: User-level Organizational-level","title":"What Are API keys?"},{"location":"howto/api_keys/#user-level-api-keys","text":"These API keys are tied to an individual user account and can be created from the user profile page. There are only two permission levels: a normal key will mirror the same permissions of the user, while a readonly key will have read only permissions to all the same namespaces as the user.","title":"User-level API keys"},{"location":"howto/api_keys/#organization-level-api-keys","text":"These API keys are created and revoked from the organization admin panel. Each key gets its own custom permissions, which can be modified from the API Key Permissions panel. Each key must have an email attached to it. This is because keys may be allowed to create and modify data in PeeringDB, and we need a contact to reach out to in case of questions. You should use an organization-level API key for automation that should not be tied to individual users.","title":"Organization-level API keys"},{"location":"howto/api_keys/#copy-or-write-down-keys-immediately","text":"The full API key string is only ever exposed to the user or organization at its moment of creation . If this string is lost, then the user or organization should revoke that key and create and permission a new one.","title":"Copy or write down keys immediately"},{"location":"howto/api_keys/#command-line-example-using-python-and-requests","text":"API keys allow developers to interact with their PeeringDB account programmatically, rather than through the website. Here is an example script in Python. It uses the module Requests to GET data about a particular Facility, and then sends a PUT request to modify that data. This example assumes we have an environment variable set with our API key. To do that from the command line, we can run: export API_KEY=\"[created api key string]\" Then the Python script would look like the following. First we get the API key from the environment: import os import requests API_KEY = os.environ.get(\"API_KEY\") We set the url for the Facility we want to interact with. Note the /api in the URL, which signals we are making calls to the REST API. URL = \"https://www.peeringdb.com/api/fac/1\" We set the headers to include our API key as authorization. Printing the headers variable should allow us to see the API key. headers = {\"Authorization\": \"Api-Key \" + API_KEY} print(headers) First we make a GET request, to simply get data about example Facility number 1 response = requests.get(URL, headers=headers) data = response.json()[\"data\"][0] print(data) Printing this data allows us to see what fields we would like to change. Let's say we decide to change the name of this facility. We overwrite the value for key \"name\" data[\"name\"] = \"Newly decided name\" Then we use a PUT request to send that modified data back to PeeringDB. Note that this time, we must provide data to the API, using the keyword argument \"data\" put_response = requests.put(URL, headers=headers, data=data) We can print the status code to see if our request was successful. print(put_response.status_code) This will return a code 200 to signal success. Additionally the content of the request should include data for the now modified Facility print(put_response.json()) Would return a dictionary of the values of the now modified Facility.","title":"Command line example using Python and requests"},{"location":"howto/api_keys/#command-line-example-using-curl","text":"API keys provide a cleaner way to authenticate API requests. PeeringDB recommends the command line user creates a API_KEY variable like so export API_KEY=\"[created api key string]\" then requests can be made with Curl like in the following examples:","title":"Command line example using curl"},{"location":"howto/api_keys/#get","text":"The following request would return JSON data coresponding to the ChiX Internet Exchange. curl -H \"Authorization: Api-Key $API_KEY\" -H \"Content-Type: application/json\" -X GET https://www.peeringdb.com/api/ix/239","title":"GET"},{"location":"howto/api_keys/#post","text":"The following request would create a new Network under the organization United IX . curl -H \"Authorization: Api-Key $API_KEY\" -H \"Content-Type: application/json\" -X POST --data \"{\\\"\"org_id\"\\\":\\\"10843\\\", \\\"\"name\"\\\":\\\"Brand New Network\\\", \\\"\"asn\"\\\":\\\"63311\\\"}\" https://www.peeringdb.com/api/net","title":"POST"},{"location":"howto/api_keys/#put","text":"The following request would update the data about a particular Network, ChIX Route Servers , in particular changing the name to \"Edited Name\". curl -H \"Authorization: Api-Key $API_KEY\" -H \"Content-Type: application/json\" -X PUT --data \"{\\\"\"org_id\"\\\":\\\"10843\\\", \\\"\"name\"\\\":\\\"Edited Name\\\", \\\"\"asn\"\\\":\\\"33713\\\"}\" https://www.peeringdb.com/api/net/7889","title":"PUT"},{"location":"howto/api_keys/#delete","text":"The following request would delete the ChiX Internet Exchange. The API key holder would need delete privileges to that particular Exchange. curl -H \"Authorization: Api-Key $API_KEY\" -H \"Content-Type: application/json\" -X DELETE https://www.peeringdb.com/api/ix/239","title":"DELETE"},{"location":"howto/authenticate/","text":"HOWTO: Authenticate to PeeringDB This article explains the authentication mechanisms we offer. It also explains how organizations can apply policies for their affiliated users. Why authenticate? You don't need to login to make single queries to PeeringDB. But some features do require you to authenticate. Update the database If you want to make updates then you need to authenticate. You can update PeeringDB via the API if you want. So you can either login to the website to make changes, or automate them with tools if you prefer. Access contact data We encourage you to publish contact information for your facility, IXP, or network. You can choose to make contact information public but many organizations limit it to other PeeringDB users. So you\u2019ll need to authenticate if you want access to most contact information. Higher query limits Authenticated users are allowed more frequent API queries. They are also able to repeat an identical API query more frequently without being throttled. Help PeeringDB\u2019s operations team If you authenticate when you send queries, we can contact you if your PeeringDB use starts to cause an unexpected problem. If you don\u2019t authenticate then all we can do is restrict queries from your IP address. Password You can use password authentication. We recommend adding MFA to password authentication. Multi-factor authentication We support two MFA methods. You can either use a time-based one-time password, as defined in RFC 6238 or a FIDO U2F hardware token. You can configure these in your account profile. 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. We have a guide to implementing PeeringDB's OAuth service for your application. Automating PeeringDB access API keys We support both user and organizational API keys. You should use organizational API keys when you don't want to tie your application to an individual. We have a detailed guide on how to create, configure, and use API keys. Authentication HTTP header The HTTP authentication header must use the same character set the connection is using. This example shows a request and HTTP response: $ curl -v -sG https://www.peeringdb.com/api/net/416 -H 'Authorization: Api-Key example.valid_apikey' 2>&1 | grep \\<\\ HTTP < HTTP/2 200 This example shows what happens if the API key is not authorized: $ curl -v -sG https://www.peeringdb.com/api/net/416 -H 'Authorization: Api-Key example.invalid_apikey' 2>&1 | grep \\<\\ HTTP < HTTP/2 401 Canonical URL The canonical URL for PeeringDB is https://www.peeringdb.com . There is a redirect from https://peeringdb.com but we strongly encourage use of the canonical URL since industry practice in software packages is to drop the authentication header upon redirect, as a safety precaution. Password authentication Using an API key for command line access is simple and more secure. Our guide on API keys explains how to create and manage keys, including setting read-only permissions, with examples.","title":"HOWTO: Authenticate to PeeringDB"},{"location":"howto/authenticate/#howto-authenticate-to-peeringdb","text":"This article explains the authentication mechanisms we offer. It also explains how organizations can apply policies for their affiliated users.","title":"HOWTO: Authenticate to PeeringDB"},{"location":"howto/authenticate/#why-authenticate","text":"You don't need to login to make single queries to PeeringDB. But some features do require you to authenticate.","title":"Why authenticate?"},{"location":"howto/authenticate/#update-the-database","text":"If you want to make updates then you need to authenticate. You can update PeeringDB via the API if you want. So you can either login to the website to make changes, or automate them with tools if you prefer.","title":"Update the database"},{"location":"howto/authenticate/#access-contact-data","text":"We encourage you to publish contact information for your facility, IXP, or network. You can choose to make contact information public but many organizations limit it to other PeeringDB users. So you\u2019ll need to authenticate if you want access to most contact information.","title":"Access contact data"},{"location":"howto/authenticate/#higher-query-limits","text":"Authenticated users are allowed more frequent API queries. They are also able to repeat an identical API query more frequently without being throttled.","title":"Higher query limits"},{"location":"howto/authenticate/#help-peeringdbs-operations-team","text":"If you authenticate when you send queries, we can contact you if your PeeringDB use starts to cause an unexpected problem. If you don\u2019t authenticate then all we can do is restrict queries from your IP address.","title":"Help PeeringDB\u2019s operations team"},{"location":"howto/authenticate/#password","text":"You can use password authentication. We recommend adding MFA to password authentication.","title":"Password"},{"location":"howto/authenticate/#multi-factor-authentication","text":"We support two MFA methods. You can either use a time-based one-time password, as defined in RFC 6238 or a FIDO U2F hardware token. You can configure these in your account profile.","title":"Multi-factor authentication"},{"location":"howto/authenticate/#oauth","text":"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. We have a guide to implementing PeeringDB's OAuth service for your application.","title":"OAuth"},{"location":"howto/authenticate/#automating-peeringdb-access","text":"","title":"Automating PeeringDB access"},{"location":"howto/authenticate/#api-keys","text":"We support both user and organizational API keys. You should use organizational API keys when you don't want to tie your application to an individual. We have a detailed guide on how to create, configure, and use API keys.","title":"API keys"},{"location":"howto/authenticate/#authentication-http-header","text":"The HTTP authentication header must use the same character set the connection is using. This example shows a request and HTTP response: $ curl -v -sG https://www.peeringdb.com/api/net/416 -H 'Authorization: Api-Key example.valid_apikey' 2>&1 | grep \\<\\ HTTP < HTTP/2 200 This example shows what happens if the API key is not authorized: $ curl -v -sG https://www.peeringdb.com/api/net/416 -H 'Authorization: Api-Key example.invalid_apikey' 2>&1 | grep \\<\\ HTTP < HTTP/2 401","title":"Authentication HTTP header"},{"location":"howto/authenticate/#canonical-url","text":"The canonical URL for PeeringDB is https://www.peeringdb.com . There is a redirect from https://peeringdb.com but we strongly encourage use of the canonical URL since industry practice in software packages is to drop the authentication header upon redirect, as a safety precaution.","title":"Canonical URL"},{"location":"howto/authenticate/#password-authentication","text":"Using an API key for command line access is simple and more secure. Our guide on API keys explains how to create and manage keys, including setting read-only permissions, with examples.","title":"Password authentication"},{"location":"howto/enable_require_2fa/","text":"HOWTO: Turn on 2FA and Require Users to Enable It What is 2FA? 2FA is two-factor authentication. Enabling 2FA for PeeringDB means you must both have an account password and another factor. We support both TOTP and U2F tokens as additional factors. There are many popular software and hardware devices supporting these standards. How do users enable 2FA? Click on your account name. Then click on the green \"Manage Two-Factor Authentication\" box and follow the instructions. How do organizations require users to enable it? In the Manage panel at the bottom of the screen, select the Users tab and check the box \"Require users in your organization to enable 2FA.\"","title":"HOWTO: Turn on 2FA and Require Users to Enable It"},{"location":"howto/enable_require_2fa/#howto-turn-on-2fa-and-require-users-to-enable-it","text":"","title":"HOWTO: Turn on 2FA and Require Users to Enable It"},{"location":"howto/enable_require_2fa/#what-is-2fa","text":"2FA is two-factor authentication. Enabling 2FA for PeeringDB means you must both have an account password and another factor. We support both TOTP and U2F tokens as additional factors. There are many popular software and hardware devices supporting these standards.","title":"What is 2FA?"},{"location":"howto/enable_require_2fa/#how-do-users-enable-2fa","text":"Click on your account name. Then click on the green \"Manage Two-Factor Authentication\" box and follow the instructions.","title":"How do users enable 2FA?"},{"location":"howto/enable_require_2fa/#how-do-organizations-require-users-to-enable-it","text":"In the Manage panel at the bottom of the screen, select the Users tab and check the box \"Require users in your organization to enable 2FA.\"","title":"How do organizations require users to enable it?"},{"location":"howto/get-started-carrier/","text":"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. Why? PeeringDB is the interconnection database. Registering information about your carrier in PeeringDB makes it visible to IXPs and network operators who want to use your services to bring in peer or connect to other parts of their own network. Getting started Routine use of PeeringDB can be automated using our API but this document is intended to help new carrier administrators get started. Carriers 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 presence in PeeringDB and assumes you are using the web interface, which is available in 14 languages. If you need additional help getting started, please contact us at: support@peeringdb.com . What is a Carrier? The carrier object is used to describe providers offering L1 or L2 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. Information required You will need to create several database records, known as objects, to establish your presence in PeeringDB. Database objects organize relevant information. Most information is optional but sharing all the relevant information maximizes the benefit you get from listing in PeeringDB. You can create your entry with the minimum required data and add and update the information you share over time. To maximize the value of your entry in PeeringDB you\u2019ll probably want to include more than the minimum required information. Your company name is required. This information is not required but is useful: AKA - If your carrier has an alternative name you can show it here to improve visibility in searches Long name - If your carrier has a long name, you can show it here to improve visibility in searches Notes - this field, which supports Markdown , can be used to describe the characteristics of your carrier that would be most useful to PeeringDB users You can look at the information shared by other PeeringDB users to work out what your organization should be sharing. Database records to create User The org is the parent for the carrier but you will need to start the process by creating a user account. 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 The org object is your organization\u2019s 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 carrier object. Carrier Once you have created your organization you may add the carrier object. You do this by using the Add Carrier tab in the \u201cManage\u201d menu below your organization. You then click the edit button in the top right of the carrier screen and indicate which facilities your carrier has a presence in. The manager of the facility needs to approve the association. Next steps 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.","title":"HOWTO: Get Started with PeeringDB as a Carrier Operator"},{"location":"howto/get-started-carrier/#howto-get-started-with-peeringdb-as-a-carrier-operator","text":"","title":"HOWTO: Get Started with PeeringDB as a Carrier Operator"},{"location":"howto/get-started-carrier/#about-peeringdb","text":"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.","title":"About PeeringDB"},{"location":"howto/get-started-carrier/#why","text":"PeeringDB is the interconnection database. Registering information about your carrier in PeeringDB makes it visible to IXPs and network operators who want to use your services to bring in peer or connect to other parts of their own network.","title":"Why?"},{"location":"howto/get-started-carrier/#getting-started","text":"Routine use of PeeringDB can be automated using our API but this document is intended to help new carrier administrators get started. Carriers 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 presence in PeeringDB and assumes you are using the web interface, which is available in 14 languages. If you need additional help getting started, please contact us at: support@peeringdb.com .","title":"Getting started"},{"location":"howto/get-started-carrier/#what-is-a-carrier","text":"The carrier object is used to describe providers offering L1 or L2 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.","title":"What is a Carrier?"},{"location":"howto/get-started-carrier/#information-required","text":"You will need to create several database records, known as objects, to establish your presence in PeeringDB. Database objects organize relevant information. Most information is optional but sharing all the relevant information maximizes the benefit you get from listing in PeeringDB. You can create your entry with the minimum required data and add and update the information you share over time. To maximize the value of your entry in PeeringDB you\u2019ll probably want to include more than the minimum required information. Your company name is required. This information is not required but is useful: AKA - If your carrier has an alternative name you can show it here to improve visibility in searches Long name - If your carrier has a long name, you can show it here to improve visibility in searches Notes - this field, which supports Markdown , can be used to describe the characteristics of your carrier that would be most useful to PeeringDB users You can look at the information shared by other PeeringDB users to work out what your organization should be sharing.","title":"Information required"},{"location":"howto/get-started-carrier/#database-records-to-create","text":"","title":"Database records to create"},{"location":"howto/get-started-carrier/#user","text":"The org is the parent for the carrier but you will need to start the process by creating a user account. 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.","title":"User"},{"location":"howto/get-started-carrier/#org","text":"The org object is your organization\u2019s 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 carrier object.","title":"Org"},{"location":"howto/get-started-carrier/#carrier","text":"Once you have created your organization you may add the carrier object. You do this by using the Add Carrier tab in the \u201cManage\u201d menu below your organization. You then click the edit button in the top right of the carrier screen and indicate which facilities your carrier has a presence in. The manager of the facility needs to approve the association.","title":"Carrier"},{"location":"howto/get-started-carrier/#next-steps","text":"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.","title":"Next steps"},{"location":"howto/get-started-developing/","text":"HOWTO: Get Started with Developing for PeeringDB Technology We use Python with Django and MySQL. Django manages interaction with the database. We publish all our code on GitHub. We have documented how to set up our development environment. What to develop PeeringDB users can request features and report bugs by creating issues on GitHub . Review open issues to either find a project you\u2019d like to work on, or to see if there\u2019s an existing issue for the feature you want. If you want to develop a feature that has not been discussed on GitHub, you should either create an issue or contact us to discuss what you need. You can send a message to productcom@lists.peeringdb.com or contact any of the members of the Product Committee . If you want to develop code for an issue that has achieved consensus on GitHub, we suggest starting with issues labeled as \"Good first issue\". These are simple issues that will help you get a feel for PeeringDB. Style Before you start developing code look at how similar functions have been implemented. Use the same design as existing functions and develop unit tests for your code. We aim for 80% unit test coverage. You also need to run black on your code before submitting a pull request. We use black to ensure that all of our code has the same formatting. Reusing designs, developing unit tests, and using consistent formatting makes it easier for us to maintain the code over time. We keep the feature parity between the web interface and the API. A feature added to one needs to be added to the other. The implementation details documented in issues should be detailed enough to use as documentation for the web interface. Documentation is also needed for the API. The minimum we need for API documentation is an example of how to format the request and a pointer to the document section to update. Pull requests It's good to let us know which issues you are working on when you start work. It's also helpful if you include the issues being fixed in your pull request. Please include \"Fixes #issue\" for each issue addressed in your pull request. We can then close those issues when we deploy your code. What happens next? When you submit your pull request we will run continuous integration tests on the code. We'll also review it ourselves. We'll report on the output of the tests in comments on the pull request and let you know if you need to make any changes.","title":"HOWTO: Get Started with Developing for PeeringDB"},{"location":"howto/get-started-developing/#howto-get-started-with-developing-for-peeringdb","text":"","title":"HOWTO: Get Started with Developing for PeeringDB"},{"location":"howto/get-started-developing/#technology","text":"We use Python with Django and MySQL. Django manages interaction with the database. We publish all our code on GitHub. We have documented how to set up our development environment.","title":"Technology"},{"location":"howto/get-started-developing/#what-to-develop","text":"PeeringDB users can request features and report bugs by creating issues on GitHub . Review open issues to either find a project you\u2019d like to work on, or to see if there\u2019s an existing issue for the feature you want. If you want to develop a feature that has not been discussed on GitHub, you should either create an issue or contact us to discuss what you need. You can send a message to productcom@lists.peeringdb.com or contact any of the members of the Product Committee . If you want to develop code for an issue that has achieved consensus on GitHub, we suggest starting with issues labeled as \"Good first issue\". These are simple issues that will help you get a feel for PeeringDB.","title":"What to develop"},{"location":"howto/get-started-developing/#style","text":"Before you start developing code look at how similar functions have been implemented. Use the same design as existing functions and develop unit tests for your code. We aim for 80% unit test coverage. You also need to run black on your code before submitting a pull request. We use black to ensure that all of our code has the same formatting. Reusing designs, developing unit tests, and using consistent formatting makes it easier for us to maintain the code over time. We keep the feature parity between the web interface and the API. A feature added to one needs to be added to the other. The implementation details documented in issues should be detailed enough to use as documentation for the web interface. Documentation is also needed for the API. The minimum we need for API documentation is an example of how to format the request and a pointer to the document section to update.","title":"Style"},{"location":"howto/get-started-developing/#pull-requests","text":"It's good to let us know which issues you are working on when you start work. It's also helpful if you include the issues being fixed in your pull request. Please include \"Fixes #issue\" for each issue addressed in your pull request. We can then close those issues when we deploy your code.","title":"Pull requests"},{"location":"howto/get-started-developing/#what-happens-next","text":"When you submit your pull request we will run continuous integration tests on the code. We'll also review it ourselves. We'll report on the output of the tests in comments on the pull request and let you know if you need to make any changes.","title":"What happens next?"},{"location":"howto/get-started-exchange/","text":"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. 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. Getting started Routine use of PeeringDB can be automated using our API but this document is intended to help new exchange operators get started. Most exchange networks get set up using the web interface and then use the API to automate things that change regularly. This document focuses on the key steps for establishing your exchange\u2019s presence in PeeringDB and assumes you are using the web interface, which is available in 14 languages. If you need additional help getting started, please contact us at: support@peeringdb.com . Information required You will need to create several database records, known as objects, to establish your presence in PeeringDB. Database objects organize relevant information and document your exchange\u2019s current participants, making it attractive to new ones. Most information is optional but sharing all the relevant information maximises the benefit you get from listing in PeeringDB. You can create your entry with the minimum required data and add and update the information you share over time. To maximize the value of your entry in PeeringDB you\u2019ll probably want to include more than the minimum required information. This information is required: Company Name IPv4 and IPv6 Prefixes Contact information This information is not required but is useful: Facilities, where your service is available Link to traffic statistics Geographical information: city/country/continental region. That will help networks locate your exchange. 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. Database records to create User The org is the parent for the IX but you will need to start the process by creating a user account. 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 The org object is your organization\u2019s 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. Ix Once you have created your organization you may add the ix object. You do this by using the Add Exchange tab in the \u201cManage\u201d menu below your organization. You\u2019ll 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 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 if you would like to use another mask. The prefix information is used to verify connections from your participants. Next steps 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. Things to consider sharing: Encourage your exchange participants to add PeeringDB entries when they join, leave or upgrade the capacity they have with the exchange We recommend you automate the process of publishing details about networks that peer at your exchange using an IX-F JSON export . For that provide an URL at \u201cIX-F Member Export URL\u201d and enable the import. The visibility flag lets you set who is able to see your URL. And the \u201cPreview\u201d button pops a new window showing what actions the next import causes. Many networks are building automation that relies on PeeringDB. If networks peering at your exchange don't have an up to date PeeringDB record this might stop their automation configuring sessions. Use the \u201cMTU\u201d field to specify the MTU at your exchange. The field \u201cDOT1Q\u201d may go away, so it is not recommended to use it. More information The PeeringDB Data Ownership Policy describes all the objects in PeeringDB.","title":"HOWTO: Get Started with PeeringDB as an Exchange Operator"},{"location":"howto/get-started-exchange/#howto-get-started-with-peeringdb-as-an-exchange-operator","text":"","title":"HOWTO: Get Started with PeeringDB as an Exchange Operator"},{"location":"howto/get-started-exchange/#about-peeringdb","text":"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.","title":"About PeeringDB"},{"location":"howto/get-started-exchange/#why","text":"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.","title":"Why?"},{"location":"howto/get-started-exchange/#getting-started","text":"Routine use of PeeringDB can be automated using our API but this document is intended to help new exchange operators get started. Most exchange networks get set up using the web interface and then use the API to automate things that change regularly. This document focuses on the key steps for establishing your exchange\u2019s presence in PeeringDB and assumes you are using the web interface, which is available in 14 languages. If you need additional help getting started, please contact us at: support@peeringdb.com .","title":"Getting started"},{"location":"howto/get-started-exchange/#information-required","text":"You will need to create several database records, known as objects, to establish your presence in PeeringDB. Database objects organize relevant information and document your exchange\u2019s current participants, making it attractive to new ones. Most information is optional but sharing all the relevant information maximises the benefit you get from listing in PeeringDB. You can create your entry with the minimum required data and add and update the information you share over time. To maximize the value of your entry in PeeringDB you\u2019ll probably want to include more than the minimum required information. This information is required: Company Name IPv4 and IPv6 Prefixes Contact information This information is not required but is useful: Facilities, where your service is available Link to traffic statistics Geographical information: city/country/continental region. That will help networks locate your exchange. 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.","title":"Information required"},{"location":"howto/get-started-exchange/#database-records-to-create","text":"","title":"Database records to create"},{"location":"howto/get-started-exchange/#user","text":"The org is the parent for the IX but you will need to start the process by creating a user account. 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.","title":"User"},{"location":"howto/get-started-exchange/#org","text":"The org object is your organization\u2019s 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.","title":"Org"},{"location":"howto/get-started-exchange/#ix","text":"Once you have created your organization you may add the ix object. You do this by using the Add Exchange tab in the \u201cManage\u201d menu below your organization. You\u2019ll 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.","title":"Ix"},{"location":"howto/get-started-exchange/#prefixes","text":"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 if you would like to use another mask. The prefix information is used to verify connections from your participants.","title":"Prefixes"},{"location":"howto/get-started-exchange/#next-steps","text":"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. Things to consider sharing: Encourage your exchange participants to add PeeringDB entries when they join, leave or upgrade the capacity they have with the exchange We recommend you automate the process of publishing details about networks that peer at your exchange using an IX-F JSON export . For that provide an URL at \u201cIX-F Member Export URL\u201d and enable the import. The visibility flag lets you set who is able to see your URL. And the \u201cPreview\u201d button pops a new window showing what actions the next import causes. Many networks are building automation that relies on PeeringDB. If networks peering at your exchange don't have an up to date PeeringDB record this might stop their automation configuring sessions. Use the \u201cMTU\u201d field to specify the MTU at your exchange. The field \u201cDOT1Q\u201d may go away, so it is not recommended to use it.","title":"Next steps"},{"location":"howto/get-started-exchange/#more-information","text":"The PeeringDB Data Ownership Policy describes all the objects in PeeringDB.","title":"More information"},{"location":"howto/get-started-facility/","text":"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. 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. Getting started Routine use of PeeringDB can be automated using our API 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. If you need additional help getting started, please contact us at: support@peeringdb.com . Information required You will need to create several database records, known as objects, to establish your presence in PeeringDB. Database objects organize relevant information. Your facility\u2019s current participants can add their presence in your facility, making it attractive to others. Most information is optional but sharing all the relevant information maximizes the benefit you get from listing in PeeringDB. You can create your entry with the minimum required data and add and update the information you share over time. To maximize the value of your entry in PeeringDB you\u2019ll probably want to include more than the minimum required information. This information is required: Company Name Full street address This information is not required but is useful: AKA - If your facility has an alternative name you can show it here to improve visibility in searches Long name - If your facility has a long name, you can show it here to improve visibility in searches Floor - If your facility does not fill an entire building Suite - If your facility does not fill an entire building CLLI - this is a location code used in parts of the US telecommunications industry and is most useful to facilities located in the USA Notes - this field, which supports Markdown , can be used to describe the characteristics of your facility that would be most useful to PeeringDB users 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 The org is the parent for the facility but you will need to start the process by creating a user account. 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 The org object is your organization\u2019s 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. Facility Once you have created your organization you may add the facility object. You do this by using the Add Facility tab in the \u201cManage\u201d menu below your organization. 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 \u201cManage\u201d menu below your organization. PeeringDB relies on facility operators to decide whether their interconnected facilities should be listed as a campus. Facilities need to be within 50 kilometers of each other. The software enforces this limit to help users avoid configuration mistakes. Next steps 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. Things to consider sharing: 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. More information The PeeringDB Data Ownership Policy describes all the objects in PeeringDB.","title":"HOWTO: Get Started with PeeringDB as a Facility or Campus Operator"},{"location":"howto/get-started-facility/#howto-get-started-with-peeringdb-as-a-facility-or-campus-operator","text":"","title":"HOWTO: Get Started with PeeringDB as a Facility or Campus Operator"},{"location":"howto/get-started-facility/#about-peeringdb","text":"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.","title":"About PeeringDB"},{"location":"howto/get-started-facility/#why","text":"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.","title":"Why?"},{"location":"howto/get-started-facility/#getting-started","text":"Routine use of PeeringDB can be automated using our API 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. If you need additional help getting started, please contact us at: support@peeringdb.com .","title":"Getting started"},{"location":"howto/get-started-facility/#information-required","text":"You will need to create several database records, known as objects, to establish your presence in PeeringDB. Database objects organize relevant information. Your facility\u2019s current participants can add their presence in your facility, making it attractive to others. Most information is optional but sharing all the relevant information maximizes the benefit you get from listing in PeeringDB. You can create your entry with the minimum required data and add and update the information you share over time. To maximize the value of your entry in PeeringDB you\u2019ll probably want to include more than the minimum required information. This information is required: Company Name Full street address This information is not required but is useful: AKA - If your facility has an alternative name you can show it here to improve visibility in searches Long name - If your facility has a long name, you can show it here to improve visibility in searches Floor - If your facility does not fill an entire building Suite - If your facility does not fill an entire building CLLI - this is a location code used in parts of the US telecommunications industry and is most useful to facilities located in the USA Notes - this field, which supports Markdown , can be used to describe the characteristics of your facility that would be most useful to PeeringDB users You can look at the information shared by other facility managers to work out what your organization should be sharing.","title":"Information required"},{"location":"howto/get-started-facility/#database-records-to-create","text":"","title":"Database records to create"},{"location":"howto/get-started-facility/#user","text":"The org is the parent for the facility but you will need to start the process by creating a user account. 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.","title":"User"},{"location":"howto/get-started-facility/#org","text":"The org object is your organization\u2019s 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.","title":"Org"},{"location":"howto/get-started-facility/#facility","text":"Once you have created your organization you may add the facility object. You do this by using the Add Facility tab in the \u201cManage\u201d menu below your organization.","title":"Facility"},{"location":"howto/get-started-facility/#campus","text":"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 \u201cManage\u201d menu below your organization. PeeringDB relies on facility operators to decide whether their interconnected facilities should be listed as a campus. Facilities need to be within 50 kilometers of each other. The software enforces this limit to help users avoid configuration mistakes.","title":"Campus"},{"location":"howto/get-started-facility/#next-steps","text":"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. Things to consider sharing: 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.","title":"Next steps"},{"location":"howto/get-started-facility/#more-information","text":"The PeeringDB Data Ownership Policy describes all the objects in PeeringDB.","title":"More information"},{"location":"howto/get-started-operator/","text":"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. 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? Almost one-third 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\u2019ll be able to confidently find information about networks looking to interconnect, where and how to connect with them, and they\u2019ll 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. Many networks are building automation that relies on PeeringDB. If you don't have an up to date PeeringDB record this might stop their automation configuring sessions. Getting started Routine use of PeeringDB can be automated using our API but this document is intended to help new networks get started. Most networks get set up using the web interface and then use the API to automate things that change regularly. This document focuses on the key steps for establishing your network\u2019s presence in PeeringDB and assumes you are using the web interface, which is available in 14 languages. If you need additional help getting started, please contact us at: support@peeringdb.com . Information required You will need to create several database records, known as objects, to establish your presence in PeeringDB. Database objects organize relevant information and document the connections making your network attractive to potential peers. Most information is optional but the less you share the less likely your network will benefit from listing itself in PeeringDB. You can create your entry with the minimum required data and add and update the information you share over time. To maximize the value of your entry in PeeringDB you\u2019ll probably want to include more than the minimum required information. This information is required: Company name AS number Contact information (mandatory for networks with a connection to an Internet Exchange) This information is not required but is useful: IRR information Network type Network operational area (so-called geographic scope) 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 formatting for the notes to make them more readable. User 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\u2019s ASN so that we can automatically validate your affiliation with the network. 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 The org object is your organization\u2019s 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 Basic network information is automatically retrieved from the RIR or NIR\u2019s 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 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 Maintenance NOC Policy Public Relations Sales Technical The information for each type of contact is the same, with optional telephone numbers, e-mail addresses, and URLs. Visibility of the POC information can be different for each POC. Each of the POCs associated with your network can have different visibility permissions. The options are: Users (meaning that only other PeeringDB users can see the POC), and Public (meaning that the record is shown to anonymous users as well as authenticated users). Some organizations will want to make their Abuse, Public Relations, and/or Sales POCs Public but limit the visibility of other POCs to authenticated Users . If your network will be present at Public Peering Exchange Points you can grant them permission to add and modify entries for your network via their ixp_member data . You grant permission using the \u201cAllow IXP Update\u201d box, which will show when you add a Public Peering Exchange Point. Next steps This short document describes the first steps for getting set up in PeeringDB. Once you have established your presence you should consider sharing information with current and potential peers about your network(s). Things to consider sharing: We recommend you include the name of your AS-SET or ROUTE-SET if you have multiple net objects. Edit your network object to provide information about your routing policy, traffic ratios and more. What is the maximum number of IPv4 and/or IPv6 prefixes should peers expect to see advertised by your network? You can use the info_prefixes4 and info_prefixes6 with integer values to share this information. How much traffic crosses your network and in which direction? You can share this information using the info_traffic and info_ratio attributes in your net object. You can enter numbers or pre-defined ranges for both attributes. Do you have a peering policy? If you do you can use the various policy attributes on your net object to communicate it to potential peers. More information The PeeringDB Data Ownership Policy describes all the objects in PeeringDB.","title":"HOWTO: Get Started with PeeringDB as a Network Operator"},{"location":"howto/get-started-operator/#howto-get-started-with-peeringdb-as-a-network-operator","text":"","title":"HOWTO: Get Started with PeeringDB as a Network Operator"},{"location":"howto/get-started-operator/#about-peeringdb","text":"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.","title":"About PeeringDB"},{"location":"howto/get-started-operator/#why-should-i-add-my-network","text":"Almost one-third 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\u2019ll be able to confidently find information about networks looking to interconnect, where and how to connect with them, and they\u2019ll 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. Many networks are building automation that relies on PeeringDB. If you don't have an up to date PeeringDB record this might stop their automation configuring sessions.","title":"Why should I add my network?"},{"location":"howto/get-started-operator/#getting-started","text":"Routine use of PeeringDB can be automated using our API but this document is intended to help new networks get started. Most networks get set up using the web interface and then use the API to automate things that change regularly. This document focuses on the key steps for establishing your network\u2019s presence in PeeringDB and assumes you are using the web interface, which is available in 14 languages. If you need additional help getting started, please contact us at: support@peeringdb.com .","title":"Getting started"},{"location":"howto/get-started-operator/#information-required","text":"You will need to create several database records, known as objects, to establish your presence in PeeringDB. Database objects organize relevant information and document the connections making your network attractive to potential peers. Most information is optional but the less you share the less likely your network will benefit from listing itself in PeeringDB. You can create your entry with the minimum required data and add and update the information you share over time. To maximize the value of your entry in PeeringDB you\u2019ll probably want to include more than the minimum required information. This information is required: Company name AS number Contact information (mandatory for networks with a connection to an Internet Exchange) This information is not required but is useful: IRR information Network type Network operational area (so-called geographic scope) 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.","title":"Information required"},{"location":"howto/get-started-operator/#database-records-to-create","text":"Some objects have a notes field to share additional information. You can use Markdown formatting for the notes to make them more readable.","title":"Database records to create"},{"location":"howto/get-started-operator/#user","text":"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\u2019s ASN so that we can automatically validate your affiliation with the network. 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.","title":"User"},{"location":"howto/get-started-operator/#org","text":"The org object is your organization\u2019s 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.","title":"Org"},{"location":"howto/get-started-operator/#net","text":"Basic network information is automatically retrieved from the RIR or NIR\u2019s 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","title":"Net"},{"location":"howto/get-started-operator/#permissions-to-grant","text":"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 Maintenance NOC Policy Public Relations Sales Technical The information for each type of contact is the same, with optional telephone numbers, e-mail addresses, and URLs. Visibility of the POC information can be different for each POC. Each of the POCs associated with your network can have different visibility permissions. The options are: Users (meaning that only other PeeringDB users can see the POC), and Public (meaning that the record is shown to anonymous users as well as authenticated users). Some organizations will want to make their Abuse, Public Relations, and/or Sales POCs Public but limit the visibility of other POCs to authenticated Users . If your network will be present at Public Peering Exchange Points you can grant them permission to add and modify entries for your network via their ixp_member data . You grant permission using the \u201cAllow IXP Update\u201d box, which will show when you add a Public Peering Exchange Point.","title":"Permissions to grant"},{"location":"howto/get-started-operator/#next-steps","text":"This short document describes the first steps for getting set up in PeeringDB. Once you have established your presence you should consider sharing information with current and potential peers about your network(s). Things to consider sharing: We recommend you include the name of your AS-SET or ROUTE-SET if you have multiple net objects. Edit your network object to provide information about your routing policy, traffic ratios and more. What is the maximum number of IPv4 and/or IPv6 prefixes should peers expect to see advertised by your network? You can use the info_prefixes4 and info_prefixes6 with integer values to share this information. How much traffic crosses your network and in which direction? You can share this information using the info_traffic and info_ratio attributes in your net object. You can enter numbers or pre-defined ranges for both attributes. Do you have a peering policy? If you do you can use the various policy attributes on your net object to communicate it to potential peers.","title":"Next steps"},{"location":"howto/get-started-operator/#more-information","text":"The PeeringDB Data Ownership Policy describes all the objects in PeeringDB.","title":"More information"},{"location":"howto/make-a-security-report/","text":"HOWTO: Report a Security Issue to PeeringDB PeeringDB works hard to keep its systems and data as secure as possible. If you are a security researcher and have discovered a security vulnerability in one of our services, we appreciate your help in disclosing it to us in a responsible manner. Our responsible disclosure policy is not an invitation to actively hack and potentially disrupt our system and services. We reserve the right to sue researchers for penetrating or attempting to penetrate our systems. PeeringDB does not permit the following types of security research While we encourage you to discover and report to us any vulnerabilities you find in a responsible manner, the following conduct is prohibited: Performing actions that may negatively affect PeeringDB or its users (e.g. any form of Denial of Service attacks) Accessing, or attempting to access, data or information that does not belong to you Destroying or corrupting, or attempting to destroy or corrupt, data or information that does not belong to you Conducting any kind of physical or electronic attack on PeeringDB personnel, property or data centers Using social engineering to target any PeeringDB team member Violating any laws or breaching any agreements to discover vulnerabilities Scope of the network The following is in scope: The www.peeringdb.com website and any of its sub-domains, services, APIs and infrastructure. Any (internet-facing) infrastructure owned and operated by PeeringDB. Exclusions The following list of issues have already been reported to our Security team, reviewed, and deemed out of scope for the purposes of this program. Please do not report any of the following classes of issues. Unless there are exceptional circumstances or novel attacks, these issues will be rejected: Missing, or not 'properly' configured SPF, DKIM or DMARC records. The presence of public services such as robots.txt or FTP. The availability of DNS zone transfers. Reports of old software versions without a working Proof of Concept of an exploit. This is not an exclusive list. If you report a vulnerability that has already been reported by someone else, we will let you know. In that case you are not eligible for our Security Hall of Fame or swag. What we request from you Please do not share the issue with others until it has been resolved. Please do not publish anything about the resolved issue unless this has been discussed with us. Email your findings to security@peeringdb.com. You may submit a notification under a pseudonym. Please provide enough information for us to reproduce the issue so that we can resolve it as soon as possible. Please delete all confidential information obtained through the vulnerability as soon as possible after reporting it. Please do this after consulting us to make sure that we can reproduce the issue. What we promise We will act with urgency and necessary resources to resolve the issue. We will strive to respond to your report within three business days with our evaluation of the report and an expected resolution date. We will handle your report with strict confidentiality and not pass on your personal details to third parties without your permission. After a major security issue has been solved, we will publish a report on our website explaining the vulnerability discovered and how we fixed it. If you agree to have your name used in the report, we will credit you. Note that we will only credit the first person that reported a specific vulnerability to us. After your vulnerability report is verified, the security team will inform you if you are eligible. We will send you a unique token of our gratitude, such as a personalized cup, hat, or hoodie. We do not issue monetary rewards for reported vulnerabilities.","title":"HOWTO: Report a Security Issue to PeeringDB"},{"location":"howto/make-a-security-report/#howto-report-a-security-issue-to-peeringdb","text":"PeeringDB works hard to keep its systems and data as secure as possible. If you are a security researcher and have discovered a security vulnerability in one of our services, we appreciate your help in disclosing it to us in a responsible manner. Our responsible disclosure policy is not an invitation to actively hack and potentially disrupt our system and services. We reserve the right to sue researchers for penetrating or attempting to penetrate our systems.","title":"HOWTO: Report a Security Issue to PeeringDB"},{"location":"howto/make-a-security-report/#peeringdb-does-not-permit-the-following-types-of-security-research","text":"While we encourage you to discover and report to us any vulnerabilities you find in a responsible manner, the following conduct is prohibited: Performing actions that may negatively affect PeeringDB or its users (e.g. any form of Denial of Service attacks) Accessing, or attempting to access, data or information that does not belong to you Destroying or corrupting, or attempting to destroy or corrupt, data or information that does not belong to you Conducting any kind of physical or electronic attack on PeeringDB personnel, property or data centers Using social engineering to target any PeeringDB team member Violating any laws or breaching any agreements to discover vulnerabilities","title":"PeeringDB does not permit the following types of security research"},{"location":"howto/make-a-security-report/#scope-of-the-network","text":"The following is in scope: The www.peeringdb.com website and any of its sub-domains, services, APIs and infrastructure. Any (internet-facing) infrastructure owned and operated by PeeringDB.","title":"Scope of the network"},{"location":"howto/make-a-security-report/#exclusions","text":"The following list of issues have already been reported to our Security team, reviewed, and deemed out of scope for the purposes of this program. Please do not report any of the following classes of issues. Unless there are exceptional circumstances or novel attacks, these issues will be rejected: Missing, or not 'properly' configured SPF, DKIM or DMARC records. The presence of public services such as robots.txt or FTP. The availability of DNS zone transfers. Reports of old software versions without a working Proof of Concept of an exploit. This is not an exclusive list. If you report a vulnerability that has already been reported by someone else, we will let you know. In that case you are not eligible for our Security Hall of Fame or swag.","title":"Exclusions"},{"location":"howto/make-a-security-report/#what-we-request-from-you","text":"Please do not share the issue with others until it has been resolved. Please do not publish anything about the resolved issue unless this has been discussed with us. Email your findings to security@peeringdb.com. You may submit a notification under a pseudonym. Please provide enough information for us to reproduce the issue so that we can resolve it as soon as possible. Please delete all confidential information obtained through the vulnerability as soon as possible after reporting it. Please do this after consulting us to make sure that we can reproduce the issue.","title":"What we request from you"},{"location":"howto/make-a-security-report/#what-we-promise","text":"We will act with urgency and necessary resources to resolve the issue. We will strive to respond to your report within three business days with our evaluation of the report and an expected resolution date. We will handle your report with strict confidentiality and not pass on your personal details to third parties without your permission. After a major security issue has been solved, we will publish a report on our website explaining the vulnerability discovered and how we fixed it. If you agree to have your name used in the report, we will credit you. Note that we will only credit the first person that reported a specific vulnerability to us. After your vulnerability report is verified, the security team will inform you if you are eligible. We will send you a unique token of our gratitude, such as a personalized cup, hat, or hoodie. We do not issue monetary rewards for reported vulnerabilities.","title":"What we promise"},{"location":"howto/manage-permissions/","text":"HOWTO: Manage User Permissions Do I need a PeeringDB account? You only need a PeeringDB user account if you want to do one of three things: Access contact information Create, update, or delete entries in PeeringDB Use PeeringDB to login to external services, using the PeeringDB OAuth service . If you just want to look up information about networks, exchanges, or facilities in PeeringDB, you can do that without an account using the web interface or the API . How can I manage permissions for users affiliated with my organization? Unless you want your users to manage parts of the data your organization publishes, they don\u2019t need to be affiliated with your organization. When you allow a user account to affiliate with your organization, you can delegate some permissions to it. You can delegate them permissions related to exchanges, facilities, and networks. For each type of entry you can delegate permissions to create, update, or delete. The table below shows an example for an affiliated user who has only been delegated permission to update the organization\u2019s net object. Create Update Delete Campus No No No Carriers No No No Exchanges No No No Facilities No No No Networks No Yes No Admin users for an organization can do all these things and can delegate granular permissions to users based on the needs of their organization. How do I give permissions to a user who is already affiliated with other organizations? User accounts can be associated with multiple organizations. For instance, a consultant could be associated with each of their client\u2019s organizations. Similarly, a large organization composed of several operating companies could have a different organization for each operating company in PeeringDB and have some users affiliated with those instead of trying to centralize control. The user just needs to request, and be granted affiliation with each organization whose data they will be updating in PeeringDB. How do I authenticate at external services using my PeeringDB account? If your organization operates a network and has the Autonomous System registered with PeeringDB, your users can use their PeeringDB accounts to authenticate at external services that have enabled PeeringDB\u2019s OAuth service. In mid-2021 about 150 applications had enabled PeeringDB OAuth. It is used to facilitate peering requests, use network telemetry services, and more.","title":"HOWTO: Manage User Permissions"},{"location":"howto/manage-permissions/#howto-manage-user-permissions","text":"","title":"HOWTO: Manage User Permissions"},{"location":"howto/manage-permissions/#do-i-need-a-peeringdb-account","text":"You only need a PeeringDB user account if you want to do one of three things: Access contact information Create, update, or delete entries in PeeringDB Use PeeringDB to login to external services, using the PeeringDB OAuth service . If you just want to look up information about networks, exchanges, or facilities in PeeringDB, you can do that without an account using the web interface or the API .","title":"Do I need a PeeringDB account?"},{"location":"howto/manage-permissions/#how-can-i-manage-permissions-for-users-affiliated-with-my-organization","text":"Unless you want your users to manage parts of the data your organization publishes, they don\u2019t need to be affiliated with your organization. When you allow a user account to affiliate with your organization, you can delegate some permissions to it. You can delegate them permissions related to exchanges, facilities, and networks. For each type of entry you can delegate permissions to create, update, or delete. The table below shows an example for an affiliated user who has only been delegated permission to update the organization\u2019s net object. Create Update Delete Campus No No No Carriers No No No Exchanges No No No Facilities No No No Networks No Yes No Admin users for an organization can do all these things and can delegate granular permissions to users based on the needs of their organization.","title":"How can I manage permissions for users affiliated with my organization?"},{"location":"howto/manage-permissions/#how-do-i-give-permissions-to-a-user-who-is-already-affiliated-with-other-organizations","text":"User accounts can be associated with multiple organizations. For instance, a consultant could be associated with each of their client\u2019s organizations. Similarly, a large organization composed of several operating companies could have a different organization for each operating company in PeeringDB and have some users affiliated with those instead of trying to centralize control. The user just needs to request, and be granted affiliation with each organization whose data they will be updating in PeeringDB.","title":"How do I give permissions to a user who is already affiliated with other organizations?"},{"location":"howto/manage-permissions/#how-do-i-authenticate-at-external-services-using-my-peeringdb-account","text":"If your organization operates a network and has the Autonomous System registered with PeeringDB, your users can use their PeeringDB accounts to authenticate at external services that have enabled PeeringDB\u2019s OAuth service. In mid-2021 about 150 applications had enabled PeeringDB OAuth. It is used to facilitate peering requests, use network telemetry services, and more.","title":"How do I authenticate at external services using my PeeringDB account?"},{"location":"howto/member_vote/","text":"HOWTO: Become a PeeringDB Member and Vote PeeringDB is a membership organization. We do not charge for membership. You become a member when you have data in PeeringDB and subscribe to our governance mailing list. When you are a member, you may attend Members\u2019 Meetings and vote in elections. How is PeeringDB governed? PeeringDB members elect our board. The board elects officers (President, Vice President, Secretary/Treasurer) and appoints committees. The board, the officers, the chairs of the committees, and the Product Manager are the PeeringDB Stewards. Non-board Stewards are responsible for keeping the board informed. The board and officers hold fiduciary responsibility for PeeringDB as a legal entity. How do I become a member? Make sure you have data in PeeringDB (see other HOWTOs ). Join the pdb-gov mailing list . You are now a member. How can I vote? Each member is entitled to one vote. Members who are affiliated with each other share a single vote. For instance, if Big Company owns Small Company they may only have one vote between them, not one vote each. At the start of the election process, the Secretary/Treasurer will ask each member to nominate a single authorized voter. The Secretary will send each authorized voter an invitation to vote. Can I join a committee? Yes! Volunteers run our committees. They are: Admin \u2013 provides support to our users Operations \u2013 keeps PeeringDB services running smoothly Outreach \u2013 keeps the interconnection community aware of PeeringDB activity Product \u2013 reviews and refines PeeringDB\u2019s product design If you want to join a committee, send a message to stewards@peeringdb.com . Where can I learn more? We publish detailed governance documentation and records on our governance website .","title":"HOWTO: Become a PeeringDB Member and Vote"},{"location":"howto/member_vote/#howto-become-a-peeringdb-member-and-vote","text":"PeeringDB is a membership organization. We do not charge for membership. You become a member when you have data in PeeringDB and subscribe to our governance mailing list. When you are a member, you may attend Members\u2019 Meetings and vote in elections.","title":"HOWTO: Become a PeeringDB Member and Vote"},{"location":"howto/member_vote/#how-is-peeringdb-governed","text":"PeeringDB members elect our board. The board elects officers (President, Vice President, Secretary/Treasurer) and appoints committees. The board, the officers, the chairs of the committees, and the Product Manager are the PeeringDB Stewards. Non-board Stewards are responsible for keeping the board informed. The board and officers hold fiduciary responsibility for PeeringDB as a legal entity.","title":"How is PeeringDB governed?"},{"location":"howto/member_vote/#how-do-i-become-a-member","text":"Make sure you have data in PeeringDB (see other HOWTOs ). Join the pdb-gov mailing list . You are now a member.","title":"How do I become a member?"},{"location":"howto/member_vote/#how-can-i-vote","text":"Each member is entitled to one vote. Members who are affiliated with each other share a single vote. For instance, if Big Company owns Small Company they may only have one vote between them, not one vote each. At the start of the election process, the Secretary/Treasurer will ask each member to nominate a single authorized voter. The Secretary will send each authorized voter an invitation to vote.","title":"How can I vote?"},{"location":"howto/member_vote/#can-i-join-a-committee","text":"Yes! Volunteers run our committees. They are: Admin \u2013 provides support to our users Operations \u2013 keeps PeeringDB services running smoothly Outreach \u2013 keeps the interconnection community aware of PeeringDB activity Product \u2013 reviews and refines PeeringDB\u2019s product design If you want to join a committee, send a message to stewards@peeringdb.com .","title":"Can I join a committee?"},{"location":"howto/member_vote/#where-can-i-learn-more","text":"We publish detailed governance documentation and records on our governance website .","title":"Where can I learn more?"},{"location":"howto/organizational_policy/","text":"HOWTO: Manage Organizational Policy Your organization can apply policies for its users in the Manage section of the organization profile. Restrict email domains You can set a policy that only allows users to affiliate when their email address uses a specific domain. You can set a list of the domains your organization allows. If users do not meet the policy when it is configured they will not lose their affiliation. You will be notified so you can manage the change with your users. A user with multiple email addresses associated with their account only needs one address to match. For instance, if the policy requires users to have an example.com address and the user has both an example.com and an example.net address, the user can affiliate. Periodic validation of user\u2019s contact information You can require users to validate the contact information for their PeeringDB user account. You set the time after which the validation process will be run. The default is 1 year but you can set it as short as 1 week. This options is managed in the same control panel shown in the image above. When an unvalidated user tries to login a link will be sent to their email address. They will need to go to that web page to validate their contact information before they can login. Some users are affiliated with multiple organizations. When this is the case, the link will be sent to the most suitable address for that organization. When a user is affiliated with multiple organizations, those organizations can set different revalidation periods. The user\u2019s affiliation is suspended at the end of the validation counter only for that organization. For example, Alice is affiliated to Example Networks and Example Facilities. Example Networks requires users to validate after 90 days but Example Facilities requires users to revalidate after a year. If Alice validates to both organizations on 1 January, she will remain a valid user for Example Facilities until the end of the year but will need to validate for Example Networks on 1 April. Multiple email addresses per user Users may have multiple email addresses associated with their account. They must select one address as the primary address and this will be used for notifications. This is managed in each user's own profile, which is located in the hamburger menu by the user's username. Each email address can only be associated with one user. When a user with multiple email addresses associated with their account wants to remove the primary address, they will have to select another address as the primary address.","title":"HOWTO: Manage Organizational Policy"},{"location":"howto/organizational_policy/#howto-manage-organizational-policy","text":"Your organization can apply policies for its users in the Manage section of the organization profile.","title":"HOWTO: Manage Organizational Policy"},{"location":"howto/organizational_policy/#restrict-email-domains","text":"You can set a policy that only allows users to affiliate when their email address uses a specific domain. You can set a list of the domains your organization allows. If users do not meet the policy when it is configured they will not lose their affiliation. You will be notified so you can manage the change with your users. A user with multiple email addresses associated with their account only needs one address to match. For instance, if the policy requires users to have an example.com address and the user has both an example.com and an example.net address, the user can affiliate.","title":"Restrict email domains"},{"location":"howto/organizational_policy/#periodic-validation-of-users-contact-information","text":"You can require users to validate the contact information for their PeeringDB user account. You set the time after which the validation process will be run. The default is 1 year but you can set it as short as 1 week. This options is managed in the same control panel shown in the image above. When an unvalidated user tries to login a link will be sent to their email address. They will need to go to that web page to validate their contact information before they can login. Some users are affiliated with multiple organizations. When this is the case, the link will be sent to the most suitable address for that organization. When a user is affiliated with multiple organizations, those organizations can set different revalidation periods. The user\u2019s affiliation is suspended at the end of the validation counter only for that organization. For example, Alice is affiliated to Example Networks and Example Facilities. Example Networks requires users to validate after 90 days but Example Facilities requires users to revalidate after a year. If Alice validates to both organizations on 1 January, she will remain a valid user for Example Facilities until the end of the year but will need to validate for Example Networks on 1 April.","title":"Periodic validation of user\u2019s contact information"},{"location":"howto/organizational_policy/#multiple-email-addresses-per-user","text":"Users may have multiple email addresses associated with their account. They must select one address as the primary address and this will be used for notifications. This is managed in each user's own profile, which is located in the hamburger menu by the user's username. Each email address can only be associated with one user. When a user with multiple email addresses associated with their account wants to remove the primary address, they will have to select another address as the primary address.","title":"Multiple email addresses per user"},{"location":"howto/peeringdb-py/","text":"HOWTO: Install peeringdb-py You can install peeringdb-py on a wide selection of operating systems. Users have installed it on several Linux distributions, macOS, and Windows Subsystem for Linux. It will give you a local version of PeeringDB\u2019s SQL database. Unlike the PeeringDB API, the SQL data structure might change without notice. Please do not build tools that make SQL queries. We suggest using our library to make API calls on your local cache. We maintain the library and commit to maintaining the API functionality, even if the underlying database structure changes. Please let us know if you find a query that is only possible with SQL and not via the API. Either create an issue in GitHub , or send a mail describing the problems to support@peeringdb.com . PeeringDB credentials You only need a PeeringDB account if you want to synchronize the contact information to your peeringdb-py cache. If you want to synchronize the whole database, including the contact data, you will need an API Key. If you are installing peeringdb-py for organizational use you should use an organizational API Key. You can use an API Key tied to a user account for personal use. We have a HOWTO guide for API Keys . Software requirements You must ensure these these packages are installed to install and use peeringdb-py : - git - pip - python - virtualenv You will also need to have a database installed. The configuration defaults to using SQLite. Database peeringdb-py \u2019s defaults to an SQLite3 database. You can choose to use a different database. If you want to do this you must adjust the database engine statement in the config.yaml , which is placed in your .peeringdb/config.yaml , which sits in your home directory. Whichever database you choose, it must use UTF-8 as the character set. Installation instructions for peeringdb-py Create a directory for peeringdb-py and go there mkdir ~/peeringdb-py && cd ~/peeringdb-py Create a virtual environment virtualenv --python=python3 pdbvenv Activate the virtual environment source pdbvenv/bin/activate Install peeringdb-py Run pip to install the local cache and Django. sh pip install --upgrade pip setuptools pip install peeringdb django-peeringdb # check for which version of django suits you # when in doubt use the LTS version from https://www.djangoproject.com/download/ pip install \"django>=3.2,<3.3\" Create a peeringdb-py configuration file peeringdb config set -n Edit your configuration edit [HOME]/.peeringdb/config.yaml . Make sure you adjust the directory name. Replace [HOME] with the relevant file path. Replace [CENSORED] with your own API Key, if you are authenticating. Remove [CENSORED] if you choose to remain anonymous. Anonymous users cannot see some contact information. orm: backend: django_peeringdb database: engine: sqlite3 host: '' name: [HOME]/peeringdb-py/peeringdb.sqlite3 password: '' port: 0 user: '' migrate: true secret_key: '' sync: api_key: [CENSORED] only: [] password: '' strip_tz: 1 timeout: 0 url: https://www.peeringdb.com/api user: '' Check that the software is installed This will confirm that peeringdb-py is running by showing you the software version: peeringdb --version You will see something like: peeringdb 1.2.1.1 This will confirm that Django is running by showing you the software version: django-admin --version You will see something like: 2.2.28 This will show that you have django-peeringdb installed and what version it is. pip freeze | grep django-peeringdb You will see something like this: django-peeringdb==2.14.1 Synchronize your new local cache This will synchronize your local cache with the server and tell you how long it took. time peeringdb sync You will see something like this: real 14m47.515s user 14m27.077s sys 0m1.939s If you wait and then synchronize again you'll get the changes since your initial sync. The process does not pull the full database, making it a very efficient update process. You will see a faster synchronization for updates than the initial pull. time peeringdb sync The times you see will look something like this: real 0m3.110s user 0m1.074s sys 0m0.088s Fetch private data The initial sync will happen from the public cache, which does not contain data that isn't available to unauthenticated requests, such as network contacts that are set to Users visibility. In order to fetch this data you can pass the --fetch-private argument. Note that you will need to have valid authentication set up for this (preferably with an API key), for example: peeringdb sync --fetch-private Automatically refreshing data You can schedule automatic database updates by creating an entry in your crontab. We recommend synchronizing every hour. You should not synchronize on the hour but offset at a random minute in the hour. This distributes users across the hour and reduces the burden on the server. This will open your default editor and allow you to create a scheduled task. crontab -e Place this entry in your crontab and save the file, changing [HOME] to the relevant file path. 00 * * * * sleep $[RANDOM\\%300] ; cd [HOME]/peeringdb-py ; touch peeringdb.sync.log ; date >> peeringdb.sync.log ; ./pdbvenv/bin/peeringdb sync >> peeringdb.sync.log 2>&1 Confirm what is scheduled: crontab -l Upgrade peeringdb-py to the latest version sh pip install --upgrade peeringdb django-peeringdb Example usage The SQL data structure might change without notice. Please do not build tools that make SQL queries. We suggest using our library to make API calls on your local cache. We maintain the library and commit to maintaining the API functionality, even if the underlying database structure changes.","title":"HOWTO: Install peeringdb-py"},{"location":"howto/peeringdb-py/#howto-install-peeringdb-py","text":"You can install peeringdb-py on a wide selection of operating systems. Users have installed it on several Linux distributions, macOS, and Windows Subsystem for Linux. It will give you a local version of PeeringDB\u2019s SQL database. Unlike the PeeringDB API, the SQL data structure might change without notice. Please do not build tools that make SQL queries. We suggest using our library to make API calls on your local cache. We maintain the library and commit to maintaining the API functionality, even if the underlying database structure changes. Please let us know if you find a query that is only possible with SQL and not via the API. Either create an issue in GitHub , or send a mail describing the problems to support@peeringdb.com .","title":"HOWTO: Install peeringdb-py"},{"location":"howto/peeringdb-py/#peeringdb-credentials","text":"You only need a PeeringDB account if you want to synchronize the contact information to your peeringdb-py cache. If you want to synchronize the whole database, including the contact data, you will need an API Key. If you are installing peeringdb-py for organizational use you should use an organizational API Key. You can use an API Key tied to a user account for personal use. We have a HOWTO guide for API Keys .","title":"PeeringDB credentials"},{"location":"howto/peeringdb-py/#software-requirements","text":"You must ensure these these packages are installed to install and use peeringdb-py : - git - pip - python - virtualenv You will also need to have a database installed. The configuration defaults to using SQLite.","title":"Software requirements"},{"location":"howto/peeringdb-py/#database","text":"peeringdb-py \u2019s defaults to an SQLite3 database. You can choose to use a different database. If you want to do this you must adjust the database engine statement in the config.yaml , which is placed in your .peeringdb/config.yaml , which sits in your home directory. Whichever database you choose, it must use UTF-8 as the character set.","title":"Database"},{"location":"howto/peeringdb-py/#installation-instructions-for-peeringdb-py","text":"","title":"Installation instructions for peeringdb-py"},{"location":"howto/peeringdb-py/#create-a-directory-for-peeringdb-py-and-go-there","text":"mkdir ~/peeringdb-py && cd ~/peeringdb-py","title":"Create a directory for peeringdb-py and go there"},{"location":"howto/peeringdb-py/#create-a-virtual-environment","text":"virtualenv --python=python3 pdbvenv","title":"Create a virtual environment"},{"location":"howto/peeringdb-py/#activate-the-virtual-environment","text":"source pdbvenv/bin/activate","title":"Activate the virtual environment"},{"location":"howto/peeringdb-py/#install-peeringdb-py","text":"Run pip to install the local cache and Django. sh pip install --upgrade pip setuptools pip install peeringdb django-peeringdb # check for which version of django suits you # when in doubt use the LTS version from https://www.djangoproject.com/download/ pip install \"django>=3.2,<3.3\"","title":"Install peeringdb-py"},{"location":"howto/peeringdb-py/#create-a-peeringdb-py-configuration-file","text":"peeringdb config set -n","title":"Create a peeringdb-py configuration file"},{"location":"howto/peeringdb-py/#edit-your-configuration","text":"edit [HOME]/.peeringdb/config.yaml . Make sure you adjust the directory name. Replace [HOME] with the relevant file path. Replace [CENSORED] with your own API Key, if you are authenticating. Remove [CENSORED] if you choose to remain anonymous. Anonymous users cannot see some contact information. orm: backend: django_peeringdb database: engine: sqlite3 host: '' name: [HOME]/peeringdb-py/peeringdb.sqlite3 password: '' port: 0 user: '' migrate: true secret_key: '' sync: api_key: [CENSORED] only: [] password: '' strip_tz: 1 timeout: 0 url: https://www.peeringdb.com/api user: ''","title":"Edit your configuration"},{"location":"howto/peeringdb-py/#check-that-the-software-is-installed","text":"This will confirm that peeringdb-py is running by showing you the software version: peeringdb --version You will see something like: peeringdb 1.2.1.1 This will confirm that Django is running by showing you the software version: django-admin --version You will see something like: 2.2.28 This will show that you have django-peeringdb installed and what version it is. pip freeze | grep django-peeringdb You will see something like this: django-peeringdb==2.14.1","title":"Check that the software is installed"},{"location":"howto/peeringdb-py/#synchronize-your-new-local-cache","text":"This will synchronize your local cache with the server and tell you how long it took. time peeringdb sync You will see something like this: real 14m47.515s user 14m27.077s sys 0m1.939s If you wait and then synchronize again you'll get the changes since your initial sync. The process does not pull the full database, making it a very efficient update process. You will see a faster synchronization for updates than the initial pull. time peeringdb sync The times you see will look something like this: real 0m3.110s user 0m1.074s sys 0m0.088s","title":"Synchronize your new local cache"},{"location":"howto/peeringdb-py/#fetch-private-data","text":"The initial sync will happen from the public cache, which does not contain data that isn't available to unauthenticated requests, such as network contacts that are set to Users visibility. In order to fetch this data you can pass the --fetch-private argument. Note that you will need to have valid authentication set up for this (preferably with an API key), for example: peeringdb sync --fetch-private","title":"Fetch private data"},{"location":"howto/peeringdb-py/#automatically-refreshing-data","text":"You can schedule automatic database updates by creating an entry in your crontab. We recommend synchronizing every hour. You should not synchronize on the hour but offset at a random minute in the hour. This distributes users across the hour and reduces the burden on the server. This will open your default editor and allow you to create a scheduled task. crontab -e Place this entry in your crontab and save the file, changing [HOME] to the relevant file path. 00 * * * * sleep $[RANDOM\\%300] ; cd [HOME]/peeringdb-py ; touch peeringdb.sync.log ; date >> peeringdb.sync.log ; ./pdbvenv/bin/peeringdb sync >> peeringdb.sync.log 2>&1 Confirm what is scheduled: crontab -l","title":"Automatically refreshing data"},{"location":"howto/peeringdb-py/#upgrade-peeringdb-py-to-the-latest-version","text":"sh pip install --upgrade peeringdb django-peeringdb","title":"Upgrade peeringdb-py to the latest version"},{"location":"howto/peeringdb-py/#example-usage","text":"The SQL data structure might change without notice. Please do not build tools that make SQL queries. We suggest using our library to make API calls on your local cache. We maintain the library and commit to maintaining the API functionality, even if the underlying database structure changes.","title":"Example usage"},{"location":"howto/run_development_container/","text":"HOWTO: Setup a PeeringDB Development Environment Install and run Docker PeeringDB runs inside a Docker container. Docker Compose is used to build both the PeeringDB container and a MySQL server container for testing. Make sure the docker and docker-compose commands are installed on your system, and that the Docker Engine is running. Docker Desktop for Mac/Windows (>=2.5.0.1) includes these tools and they are also available for various POSIX systems. Ensure that docker-compose version indicates at least version 1.25.4, and that docker version indicates Engine version at least 19.03.5 and does not report any connection errors to Docker Engine. Connection errors may indicate a need to start the engine. Fork the PeeringDB repository, clone it, set upstream Your development and experimentation with the PeeringDB code base should take place in a fork of the project . When you have improvements or fixes to share, you will be able to point other developers to your code, or submit a pull request. Navigate to https://github.com/peeringdb/peeringdb . In the top-right corner of the page, click Fork . On GitHub, navigate to your fork of the PeeringDB repository. Above the list of files, click Code . Copy the HTTPS URL. It will be something like: https://github.com/YOUR-USERNAME/peeringdb.git Perform the following: PDBHOME=~/src/peeringdb # Adjust as appropriate to your environment. mkdir -p $PDBHOME && cd $PDBHOME git clone https://github.com/YOUR-USERNAME/peeringdb.git cd $PDBHOME/peeringdb # Henceforth commands on this page assume you are in this working directory. git remote add upstream https://github.com/peeringdb/peeringdb.git git remote -v > origin https://github.com/YOUR-USERNAME/peeringdb.git (fetch) > origin https://github.com/YOUR-USERNAME/peeringdb.git (push) > upstream https://github.com/peeringdb/peeringdb.git (fetch) > upstream https://github.com/peeringdb/peeringdb.git (push) Keep your fork up-to-date with the upstream repository: https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/syncing-a-fork git fetch upstream git checkout master # or other branch you are working on git merge upstream/master Create environment variable override file Environment variables for the server config can be added in Ctl/dev/.env . This file can be empty which will make the django SECRET_KEY ephemeral, but the file does need to exist. Empty file: touch Ctl/dev/.env Alternatively, create a SECRET_KEY using uuidgen or replace with something similar on your system: echo SECRET_KEY=\\\"$(uuidgen)\\\" > Ctl/dev/.env If you are serving from anywhere but localhost you will also need to specify the SESSION_COOKIE_DOMAIN echo \"SESSION_COOKIE_DOMAIN=example.com\" >> Ctl/dev/.env If you want to enable OIDC's JWT RS256 token signing, you need to specify the file with the RSA secret key found inside the container with the OIDC_RSA_PRIVATE_KEY_ACTIVE_PATH variable. You can create the key with open ssl and place it in Ctl/dev/jwks/filename.key or let the build system auto generated from the path specified with the variable. echo \"OIDC_RSA_PRIVATE_KEY_ACTIVE_PATH=/srv/www.peeringdb.com/var/jwks/oidc.key\" >> Ctl/dev/.env Build the container and set up your developement instance ./Ctl/dev/compose.sh build peeringdb ./Ctl/dev/compose.sh up -d database ./Ctl/dev/run.sh migrate # Re-run if there are errors. The database may not yet have started. ./Ctl/dev/run.sh loaddata fixtures/initial_data.json ./Ctl/dev/run.sh createsuperuser ./Ctl/dev/run.sh createcachetable ./Ctl/dev/compose.sh up -d peeringdb On some docker versions build can fail with a ERROR: Service 'peeringdb' failed to build: failed to export image: failed to create image: failed to get layer error. Simply running it again should fix the issue. If you want a copy of the current public production data, run this command which often takes more than 15 minutes: ./Ctl/dev/run.sh pdb_load_data --commit After it is done you should have a PeeringDB instance exposed on port :8000 : http://localhost:8000/ (should you want to change this port you can do so by setting the environment variable DJANGO_PORT ) Migration notes Organization management of OAuth applications Once migration 0085 has been applied you should override the OAUTH2_PROVIDER_APPLICATION_MODEL environment variable to \"peeringdb_server.OAuthApplication\" in order to enable organization management of oauth applications. Warning: Overriding before migration 0085 has been applied will result in the following migration error and a broken migration state. Related model 'peeringdb_server.oauthapplication` cannot be resolved Stop and start the containers ./Ctl/dev/compose.sh down ./Ctl/dev/compose.sh up -d Environment variables Edit Ctl/dev/.env and then stop and start the containers. PDB_NO_MIGRATE : If set to anything, will skip migrations when running the uwsgi command, otherwise, migrations will always be applied first thing while running uwsgi . DATABASE_ENGINE default \"mysql\" DATABASE_HOST default \"127.0.0.1\" DATABASE_PORT default \"\" DATABASE_NAME default \"peeringdb\" DATABASE_USER default \"peeringdb\" DATABASE_PASSWORD default \"\" EMAIL_HOST default \"localhost\" EMAIL_PORT default \"25\" EMAIL_HOST_USERHOST default \"\" EMAIL_HOST_PASSWORD default \"\" Mount points /srv/www.peeringdb.com/api-cache : api cache /srv/www.peeringdb.com/locale : translations /srv/www.peeringdb.com/mainsite : site settings /srv/www.peeringdb.com/media : media files /srv/www.peeringdb.com/peeringdb_server : server code /srv/www.peeringdb.com/static : static files /srv/www.peeringdb.com/var/log : log files Entry point With the exception of some specific commands (see below) the entry point will pass directly to django's manage script. ./Ctl/dev/run.sh help Other options: migrate apply database migrations run_tests run unit tests uwsgi start the uwsgi process /bin/sh to drop to shell inetd run the inetd whois server Contributing your code After testing and carefully code-reviewing your changes, commit and push them to your repository. You can then share the changes with other developers, such as those on the pdb-tech@lists.peeringdb.com mailing list: https://lists.peeringdb.com/cgi-bin/mailman/listinfo/pdb-tech . When ready to contribute the change to the project, create a pull request to the main repository along with a description of your goals for the change and/or what you are fixing.","title":"HOWTO: Setup a PeeringDB Development Environment"},{"location":"howto/run_development_container/#howto-setup-a-peeringdb-development-environment","text":"","title":"HOWTO: Setup a PeeringDB Development Environment"},{"location":"howto/run_development_container/#install-and-run-docker","text":"PeeringDB runs inside a Docker container. Docker Compose is used to build both the PeeringDB container and a MySQL server container for testing. Make sure the docker and docker-compose commands are installed on your system, and that the Docker Engine is running. Docker Desktop for Mac/Windows (>=2.5.0.1) includes these tools and they are also available for various POSIX systems. Ensure that docker-compose version indicates at least version 1.25.4, and that docker version indicates Engine version at least 19.03.5 and does not report any connection errors to Docker Engine. Connection errors may indicate a need to start the engine.","title":"Install and run Docker"},{"location":"howto/run_development_container/#fork-the-peeringdb-repository-clone-it-set-upstream","text":"Your development and experimentation with the PeeringDB code base should take place in a fork of the project . When you have improvements or fixes to share, you will be able to point other developers to your code, or submit a pull request. Navigate to https://github.com/peeringdb/peeringdb . In the top-right corner of the page, click Fork . On GitHub, navigate to your fork of the PeeringDB repository. Above the list of files, click Code . Copy the HTTPS URL. It will be something like: https://github.com/YOUR-USERNAME/peeringdb.git Perform the following: PDBHOME=~/src/peeringdb # Adjust as appropriate to your environment. mkdir -p $PDBHOME && cd $PDBHOME git clone https://github.com/YOUR-USERNAME/peeringdb.git cd $PDBHOME/peeringdb # Henceforth commands on this page assume you are in this working directory. git remote add upstream https://github.com/peeringdb/peeringdb.git git remote -v > origin https://github.com/YOUR-USERNAME/peeringdb.git (fetch) > origin https://github.com/YOUR-USERNAME/peeringdb.git (push) > upstream https://github.com/peeringdb/peeringdb.git (fetch) > upstream https://github.com/peeringdb/peeringdb.git (push) Keep your fork up-to-date with the upstream repository: https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/syncing-a-fork git fetch upstream git checkout master # or other branch you are working on git merge upstream/master","title":"Fork the PeeringDB repository, clone it, set upstream"},{"location":"howto/run_development_container/#create-environment-variable-override-file","text":"Environment variables for the server config can be added in Ctl/dev/.env . This file can be empty which will make the django SECRET_KEY ephemeral, but the file does need to exist. Empty file: touch Ctl/dev/.env Alternatively, create a SECRET_KEY using uuidgen or replace with something similar on your system: echo SECRET_KEY=\\\"$(uuidgen)\\\" > Ctl/dev/.env If you are serving from anywhere but localhost you will also need to specify the SESSION_COOKIE_DOMAIN echo \"SESSION_COOKIE_DOMAIN=example.com\" >> Ctl/dev/.env If you want to enable OIDC's JWT RS256 token signing, you need to specify the file with the RSA secret key found inside the container with the OIDC_RSA_PRIVATE_KEY_ACTIVE_PATH variable. You can create the key with open ssl and place it in Ctl/dev/jwks/filename.key or let the build system auto generated from the path specified with the variable. echo \"OIDC_RSA_PRIVATE_KEY_ACTIVE_PATH=/srv/www.peeringdb.com/var/jwks/oidc.key\" >> Ctl/dev/.env","title":"Create environment variable override file"},{"location":"howto/run_development_container/#build-the-container-and-set-up-your-developement-instance","text":"./Ctl/dev/compose.sh build peeringdb ./Ctl/dev/compose.sh up -d database ./Ctl/dev/run.sh migrate # Re-run if there are errors. The database may not yet have started. ./Ctl/dev/run.sh loaddata fixtures/initial_data.json ./Ctl/dev/run.sh createsuperuser ./Ctl/dev/run.sh createcachetable ./Ctl/dev/compose.sh up -d peeringdb On some docker versions build can fail with a ERROR: Service 'peeringdb' failed to build: failed to export image: failed to create image: failed to get layer error. Simply running it again should fix the issue. If you want a copy of the current public production data, run this command which often takes more than 15 minutes: ./Ctl/dev/run.sh pdb_load_data --commit After it is done you should have a PeeringDB instance exposed on port :8000 : http://localhost:8000/ (should you want to change this port you can do so by setting the environment variable DJANGO_PORT )","title":"Build the container and set up your developement instance"},{"location":"howto/run_development_container/#migration-notes","text":"","title":"Migration notes"},{"location":"howto/run_development_container/#organization-management-of-oauth-applications","text":"Once migration 0085 has been applied you should override the OAUTH2_PROVIDER_APPLICATION_MODEL environment variable to \"peeringdb_server.OAuthApplication\" in order to enable organization management of oauth applications. Warning: Overriding before migration 0085 has been applied will result in the following migration error and a broken migration state. Related model 'peeringdb_server.oauthapplication` cannot be resolved","title":"Organization management of OAuth applications"},{"location":"howto/run_development_container/#stop-and-start-the-containers","text":"./Ctl/dev/compose.sh down ./Ctl/dev/compose.sh up -d","title":"Stop and start the containers"},{"location":"howto/run_development_container/#environment-variables","text":"Edit Ctl/dev/.env and then stop and start the containers. PDB_NO_MIGRATE : If set to anything, will skip migrations when running the uwsgi command, otherwise, migrations will always be applied first thing while running uwsgi . DATABASE_ENGINE default \"mysql\" DATABASE_HOST default \"127.0.0.1\" DATABASE_PORT default \"\" DATABASE_NAME default \"peeringdb\" DATABASE_USER default \"peeringdb\" DATABASE_PASSWORD default \"\" EMAIL_HOST default \"localhost\" EMAIL_PORT default \"25\" EMAIL_HOST_USERHOST default \"\" EMAIL_HOST_PASSWORD default \"\"","title":"Environment variables"},{"location":"howto/run_development_container/#mount-points","text":"/srv/www.peeringdb.com/api-cache : api cache /srv/www.peeringdb.com/locale : translations /srv/www.peeringdb.com/mainsite : site settings /srv/www.peeringdb.com/media : media files /srv/www.peeringdb.com/peeringdb_server : server code /srv/www.peeringdb.com/static : static files /srv/www.peeringdb.com/var/log : log files","title":"Mount points"},{"location":"howto/run_development_container/#entry-point","text":"With the exception of some specific commands (see below) the entry point will pass directly to django's manage script. ./Ctl/dev/run.sh help Other options: migrate apply database migrations run_tests run unit tests uwsgi start the uwsgi process /bin/sh to drop to shell inetd run the inetd whois server","title":"Entry point"},{"location":"howto/run_development_container/#contributing-your-code","text":"After testing and carefully code-reviewing your changes, commit and push them to your repository. You can then share the changes with other developers, such as those on the pdb-tech@lists.peeringdb.com mailing list: https://lists.peeringdb.com/cgi-bin/mailman/listinfo/pdb-tech . When ready to contribute the change to the project, create a pull request to the main repository along with a description of your goals for the change and/or what you are fixing.","title":"Contributing your code"},{"location":"howto/search/","text":"HOWTO: Get Started with Search in PeeringDB Introduction to PeeringDB PeeringDB is a publicly available network database that is the go-to location for interconnection data. The database facilitates global network connections at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and it serves as a starting point for interconnection decisions. This online database is a non-profit, community-driven effort that encourages the exchange of Peering-related information and is totally managed and maintained by volunteers. It's a tool for the Internet's growth and enhancement. Why use PeeringDB to search for networks, exchange and data centers? About a third of networks (Autonomous Systems) use PeeringDB to share information about how they interconnect. You can use PeeringDB to find information about other networks, exchanges, and more. You make your services easier to find when you contribute your data to PeeringDB. You don't need an account to use the basic search functionality. But if you want to access private contact information and use advanced search features, like radius search, you'll need to sign up for an account. How to search for campuses, carriers, exchanges, facilities and networks in PeeringDB There is a s simple search box on the front page of PeeringDB. You can use it to search for campuses, carriers, exchanges, facilities and networks listed in PeeringDB by simply entering the name you want. Let\u2019s demonstrate with some examples to see how this works. Place name normalization PeeringDB normalizes place names at the presentation layer. For example, M\u00fcnchen will always be normalized to Munich in search output. This ensures that users can get all the results for Munich in a single search. Users can search using multiple names. As long as the name selected is well known, the search will be centered on the correct place. Networks For this example, we have this network KENET which is a non-profit operator for education and research and we want to search for it on PeeringDB. There are two ways to search for networks in PeeringDB: Name search You can search for networks by using the name of the networks by: - Entering the name of the network as seen below - From the search result, under the Networks section, locate the network you have searched - It would be visible if it is in the PeeringDB database ASN search You can search for networks using their ASN by: - Entering the name of the network as seen below, for the example below the ASN is (36914) - From the search result, under the Networks section, locate the network you have searched Note : Either of the two methods will get the same search results. Exchanges For this example, let\u2019s consider this exchange UNY-IX which is an open Internet exchange located in Universitas Negeri Yogyakarta. To search for an exchange: - Enter the name of the exchange as shown below - From the search result, under the exchanges section, locate the exchange you have searched Facilities Data centers are also referred to as facilities. For this example, let\u2019s consider this university University of Oslo which is an institution in Oslo. To search for a facility: - Enter the name of the data center or facility as shown below - From the search result, under the facilities section, locate the facility or data center you have searched How to search for your own organization If your organization already uses PeeringDB, when you are logged in to the website you can always find your own information using the self search. If you are not logged in, these links will take you to some PeeringDB examples objects. Organization Campus Carrier Facility Internet Exchange Point Network The self identifier also works for queries made using our API. We encourage the use of multi-factor authentication . This means using an API Key instead of basic authentication for API queries. How to use the search in PeeringDB extension The PeeringDB search extension is a free to use Google Chrome extension with which you can use to search for ASNs, networks, and exchanges in PeeringDB. To get started, go to the Chrome Web Store and download the extension, then enable it and add it to your extension bar. There are two ways to use the extension once it has been enabled: Using the Extension Bar Icon : Click the icon and type your search term into the box. The search will open in a new tab with the search result. Below is the result: Using the Context Menu : Right-click on any text on a page and select \"Search in PeeringDB\". The search will open in a new tab with the search result. Below is the result: If the query or highlighted text contains a number, the extension will attempt to find an ASN. How to search based on a partial name You can search based on a partial name. When an organization, network, facility or exchange name has two parts, you can search for just the first or second part and then select from all the organizations that share that name. This makes it easier to find the organization you want. This can also be helpful in a situation where you can not remember the name of the organization in full. In the example below, we want to search for \u201cinternet archive\u201d. We will search for it with a single part and not with the full name. In the search box, input \u201carchive''. This brings out a search result that have similar parts in their names. You can now search through the results to find the what you want. What is an advanced search? Advanced search in PeeringDB lets you explicitly filter a search location, network presence, service level and a wide range of other features. You get the results you\u2019re looking for and can export them in structured data formats (JSON or CSV), so you can import the data into tools that will help you make decisions. Note : You need to be logged in to PeeringDB in order to use some of the advanced search features, including the radius search. Let\u2019s take a look at this example below to demonstrate how advanced search works. We are going to search for an exchange within a particular region. On the front page of PeeringDB you will see the Advanced Search box which you can use to search for campuses, exchanges, facilities and networks that are in PeeringDB. Click on the Advanced Search link. This takes you to the advanced search landing page. The search page shows the campus, exchanges, facilities, networks, and organizations tabs. Go to the Exchanges tab, in the country field select a country of your choice by scrolling through the different options. On the right hand side, in the Network Presence field, enter the name of the network. You can follow the example shown below and add KENET. Click on the drop down list that appears as you input the network name. Click on Search. Scroll down to view information regarding the exchange that you searched for. Click on JSON or CSV to download the information in a structured format. Geographic search As new facilities are created in our database they will be linked to geographic coordinates. PeeringDB has improved search by changing the way it records data for location in its database. You can now search for facilities with a distance radius of a chosen coordinate. How to search for a campus You can search for a campus of facilities using the Advanced Search interface. Users can search from a country and city, and select a radius in kilometers or miles. Of course, you can achieve the same results using the API or the web interface, which means you can integrate this feature into your own tools. Note : You need to be logged in to PeeringDB in order to search for a campus of facilities. How to search for facilities within a given radius You can search for facilities within a given radius, using the Advanced Search interface. Users can search from a country and city, and select a radius in kilometers or miles. Of course, you can achieve the same results using the API or the web interface, which means you can integrate this feature into your own tools. Note : You need to be logged in to PeeringDB in order to search for facilities within a given radius. Login in or register an account on PeeringDB. On the front page of PeeringDB, click on the Advanced Search link. Go to the Facilities Tab and in the city/postal field add a city or postal of your choice. In the country field select a country of your choice. In the Within Distance field add a specified distance of your choice. On the right hand side of the page, click on search. Scroll down to view the information you searched for. The search result will bring up facilities which are in that country, city and state. You can download your information in a JSON or CSV format. 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\u2019s 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 . 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 done through basic HTTP authorization. People who are accessing the API as a guest do not need any authentication. For example: curl -sG https://username:password@www.peeringdb.com/api/net/961 curl -u username:password 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 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\u2019s 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\u2019s look at an example: - HTTP: GET /api/OBJ/38 where 38 is the ID - curl: curl -H \"Accept: application/json\" -X GET https://<username>:<password>@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 <object_type>_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\u2019s look at an example: - HTTP: GET /api/OBJ/ which is the endpoint - curl: curl -X GET https://<username>:<password>@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\u2019ll have to first install Python if you don\u2019t have it installed. Then, install pip and requests . 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 . 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 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 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[]' .","title":"HOWTO: Get Started with Search in PeeringDB"},{"location":"howto/search/#howto-get-started-with-search-in-peeringdb","text":"","title":"HOWTO: Get Started with Search in PeeringDB"},{"location":"howto/search/#introduction-to-peeringdb","text":"PeeringDB is a publicly available network database that is the go-to location for interconnection data. The database facilitates global network connections at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and it serves as a starting point for interconnection decisions. This online database is a non-profit, community-driven effort that encourages the exchange of Peering-related information and is totally managed and maintained by volunteers. It's a tool for the Internet's growth and enhancement.","title":"Introduction to PeeringDB"},{"location":"howto/search/#why-use-peeringdb-to-search-for-networks-exchange-and-data-centers","text":"About a third of networks (Autonomous Systems) use PeeringDB to share information about how they interconnect. You can use PeeringDB to find information about other networks, exchanges, and more. You make your services easier to find when you contribute your data to PeeringDB. You don't need an account to use the basic search functionality. But if you want to access private contact information and use advanced search features, like radius search, you'll need to sign up for an account.","title":"Why use PeeringDB to search for networks, exchange and data centers?"},{"location":"howto/search/#how-to-search-for-campuses-carriers-exchanges-facilities-and-networks-in-peeringdb","text":"There is a s simple search box on the front page of PeeringDB. You can use it to search for campuses, carriers, exchanges, facilities and networks listed in PeeringDB by simply entering the name you want. Let\u2019s demonstrate with some examples to see how this works.","title":"How to search for campuses, carriers, exchanges, facilities and networks in PeeringDB"},{"location":"howto/search/#place-name-normalization","text":"PeeringDB normalizes place names at the presentation layer. For example, M\u00fcnchen will always be normalized to Munich in search output. This ensures that users can get all the results for Munich in a single search. Users can search using multiple names. As long as the name selected is well known, the search will be centered on the correct place.","title":"Place name normalization"},{"location":"howto/search/#networks","text":"For this example, we have this network KENET which is a non-profit operator for education and research and we want to search for it on PeeringDB. There are two ways to search for networks in PeeringDB:","title":"Networks"},{"location":"howto/search/#name-search","text":"You can search for networks by using the name of the networks by: - Entering the name of the network as seen below - From the search result, under the Networks section, locate the network you have searched - It would be visible if it is in the PeeringDB database","title":"Name search"},{"location":"howto/search/#asn-search","text":"You can search for networks using their ASN by: - Entering the name of the network as seen below, for the example below the ASN is (36914) - From the search result, under the Networks section, locate the network you have searched Note : Either of the two methods will get the same search results.","title":"ASN search"},{"location":"howto/search/#exchanges","text":"For this example, let\u2019s consider this exchange UNY-IX which is an open Internet exchange located in Universitas Negeri Yogyakarta. To search for an exchange: - Enter the name of the exchange as shown below - From the search result, under the exchanges section, locate the exchange you have searched","title":"Exchanges"},{"location":"howto/search/#facilities","text":"Data centers are also referred to as facilities. For this example, let\u2019s consider this university University of Oslo which is an institution in Oslo. To search for a facility: - Enter the name of the data center or facility as shown below - From the search result, under the facilities section, locate the facility or data center you have searched","title":"Facilities"},{"location":"howto/search/#how-to-search-for-your-own-organization","text":"If your organization already uses PeeringDB, when you are logged in to the website you can always find your own information using the self search. If you are not logged in, these links will take you to some PeeringDB examples objects. Organization Campus Carrier Facility Internet Exchange Point Network The self identifier also works for queries made using our API. We encourage the use of multi-factor authentication . This means using an API Key instead of basic authentication for API queries.","title":"How to search for your own organization"},{"location":"howto/search/#how-to-use-the-search-in-peeringdb-extension","text":"The PeeringDB search extension is a free to use Google Chrome extension with which you can use to search for ASNs, networks, and exchanges in PeeringDB. To get started, go to the Chrome Web Store and download the extension, then enable it and add it to your extension bar. There are two ways to use the extension once it has been enabled: Using the Extension Bar Icon : Click the icon and type your search term into the box. The search will open in a new tab with the search result. Below is the result: Using the Context Menu : Right-click on any text on a page and select \"Search in PeeringDB\". The search will open in a new tab with the search result. Below is the result: If the query or highlighted text contains a number, the extension will attempt to find an ASN.","title":"How to use the search in PeeringDB extension"},{"location":"howto/search/#how-to-search-based-on-a-partial-name","text":"You can search based on a partial name. When an organization, network, facility or exchange name has two parts, you can search for just the first or second part and then select from all the organizations that share that name. This makes it easier to find the organization you want. This can also be helpful in a situation where you can not remember the name of the organization in full. In the example below, we want to search for \u201cinternet archive\u201d. We will search for it with a single part and not with the full name. In the search box, input \u201carchive''. This brings out a search result that have similar parts in their names. You can now search through the results to find the what you want.","title":"How to search based on a partial name"},{"location":"howto/search/#what-is-an-advanced-search","text":"Advanced search in PeeringDB lets you explicitly filter a search location, network presence, service level and a wide range of other features. You get the results you\u2019re looking for and can export them in structured data formats (JSON or CSV), so you can import the data into tools that will help you make decisions. Note : You need to be logged in to PeeringDB in order to use some of the advanced search features, including the radius search. Let\u2019s take a look at this example below to demonstrate how advanced search works. We are going to search for an exchange within a particular region. On the front page of PeeringDB you will see the Advanced Search box which you can use to search for campuses, exchanges, facilities and networks that are in PeeringDB. Click on the Advanced Search link. This takes you to the advanced search landing page. The search page shows the campus, exchanges, facilities, networks, and organizations tabs. Go to the Exchanges tab, in the country field select a country of your choice by scrolling through the different options. On the right hand side, in the Network Presence field, enter the name of the network. You can follow the example shown below and add KENET. Click on the drop down list that appears as you input the network name. Click on Search. Scroll down to view information regarding the exchange that you searched for. Click on JSON or CSV to download the information in a structured format.","title":"What is an advanced search?"},{"location":"howto/search/#geographic-search","text":"As new facilities are created in our database they will be linked to geographic coordinates. PeeringDB has improved search by changing the way it records data for location in its database. You can now search for facilities with a distance radius of a chosen coordinate.","title":"Geographic search"},{"location":"howto/search/#how-to-search-for-a-campus","text":"You can search for a campus of facilities using the Advanced Search interface. Users can search from a country and city, and select a radius in kilometers or miles. Of course, you can achieve the same results using the API or the web interface, which means you can integrate this feature into your own tools. Note : You need to be logged in to PeeringDB in order to search for a campus of facilities.","title":"How to search for a campus"},{"location":"howto/search/#how-to-search-for-facilities-within-a-given-radius","text":"You can search for facilities within a given radius, using the Advanced Search interface. Users can search from a country and city, and select a radius in kilometers or miles. Of course, you can achieve the same results using the API or the web interface, which means you can integrate this feature into your own tools. Note : You need to be logged in to PeeringDB in order to search for facilities within a given radius. Login in or register an account on PeeringDB. On the front page of PeeringDB, click on the Advanced Search link. Go to the Facilities Tab and in the city/postal field add a city or postal of your choice. In the country field select a country of your choice. In the Within Distance field add a specified distance of your choice. On the right hand side of the page, click on search. Scroll down to view the information you searched for. The search result will bring up facilities which are in that country, city and state. You can download your information in a JSON or CSV format.","title":"How to search for facilities within a given radius"},{"location":"howto/search/#querying-with-the-peeringdb-api","text":"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\u2019s 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.","title":"Querying with the PeeringDB API"},{"location":"howto/search/#object-types","text":"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 . 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","title":"Object types"},{"location":"howto/search/#basic-objects","text":"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.","title":"Basic objects"},{"location":"howto/search/#derived-objects","text":"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.","title":"Derived objects"},{"location":"howto/search/#authentication","text":"Authentication is done through basic HTTP authorization. People who are accessing the API as a guest do not need any authentication. For example: curl -sG https://username:password@www.peeringdb.com/api/net/961 curl -u username:password 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 and these are set at a lower threshold for unauthenticated users.","title":"Authentication"},{"location":"howto/search/#making-a-request","text":"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","title":"Making a request"},{"location":"howto/search/#operations","text":"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\u2019s look at each of them individually.","title":"Operations"},{"location":"howto/search/#single-object","text":"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\u2019s look at an example: - HTTP: GET /api/OBJ/38 where 38 is the ID - curl: curl -H \"Accept: application/json\" -X GET https://<username>:<password>@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","title":"Single object"},{"location":"howto/search/#nested-sets-and-objects","text":"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 <object_type>_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","title":"Nested sets and objects"},{"location":"howto/search/#multiple-objects","text":"To retrieve a single object you need to use this URL: https://www.peeringdb.com/api/OBJ/ with this endpoint GET: /api/OBJ/ . Let\u2019s look at an example: - HTTP: GET /api/OBJ/ which is the endpoint - curl: curl -X GET https://<username>:<password>@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","title":"Multiple objects"},{"location":"howto/search/#real-world-use-cases","text":"We will show you different use cases on how to use the PeeringDB API.","title":"Real world use cases"},{"location":"howto/search/#how-do-i-query-by-asn","text":"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.","title":"How do I query by ASN?"},{"location":"howto/search/#how-do-i-query-for-an-ixs-in-a-particular-state","text":"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.","title":"How do I query for an IXs in a particular state?"},{"location":"howto/search/#using-curl","text":"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 .","title":"Using curl"},{"location":"howto/search/#using-python","text":"To make use of this Python code, first, you\u2019ll have to first install Python if you don\u2019t have it installed. Then, install pip and requests . 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.","title":"Using Python"},{"location":"howto/search/#using-jq","text":"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 . 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","title":"Using jq"},{"location":"howto/search/#using-an-online-converter","text":"Alternatively you can use an online tool such as 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.","title":"Using an online converter"},{"location":"howto/search/#how-to-get-all-the-objects-owned-by-httpswwwpeeringdbcomnet961-and-convert-the-data-to-csv","text":"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 .","title":"How to get all the objects owned by https://www.peeringdb.com/net/961 and convert the data to CSV?"},{"location":"howto/search/#i-want-the-list-of-networks-and-their-type-peering-at-mice-in-minneapolis","text":"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[] .","title":"I want the list of networks and their 'type' peering at MICE in Minneapolis."},{"location":"howto/search/#how-to-find-all-the-exchanges-where-my-organization-has-a-presence","text":"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[]' .","title":"How to find all the exchanges where my organization has a presence?"},{"location":"howto/updates-for-as112/","text":"HOWTO: What is AS112? Many networks using private address space ( RFC 1918 ) leak the reverse DNS lookups instead of running a local DNS server to respond to them. To stop this traffic from overwhelming root nameservers, volunteers run AS112 nameservers , which provide authoritative, local answers. What is PeeringDB? PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions. The database is a non-profit, community-driven initiative run and promoted by volunteers. It is a public tool for the growth and good of the Internet. Join the community and support the continued development of the Internet. How Does PeeringDB Visibility Help? The listing for AS112 in PeeringDB contains the peering LAN IP addresses of the routers for the network. This can be used as a source of configuration information for the peering routers of other networks at the same IXP. What you need to do IXPs sharing technical information using the IX-F Member Export Schema When an IXP shares technical information about its infrastructure using the IX-F Member Export Schema the existence of the AS112 node, and its peering LAN address, will automatically be populated in PeeringDB. You, as the operators of the node do not need to do anything. This is because AS112 has enabled the option to allow the IXPs' IX-F data to automatically populate its entry in PeeringDB. IXPs not sharing technical information using the IX-F Member Export Schema If your IXP does not share technical information about its infrastructure using the IX-F Member Export Schema you can ask them to do so. You can also reach out to ops@as112.net and the PeeringDB entry for AS112 will be manually updated.","title":"HOWTO: What is AS112?"},{"location":"howto/updates-for-as112/#howto-what-is-as112","text":"Many networks using private address space ( RFC 1918 ) leak the reverse DNS lookups instead of running a local DNS server to respond to them. To stop this traffic from overwhelming root nameservers, volunteers run AS112 nameservers , which provide authoritative, local answers.","title":"HOWTO: What is AS112?"},{"location":"howto/updates-for-as112/#what-is-peeringdb","text":"PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions. The database is a non-profit, community-driven initiative run and promoted by volunteers. It is a public tool for the growth and good of the Internet. Join the community and support the continued development of the Internet.","title":"What is PeeringDB?"},{"location":"howto/updates-for-as112/#how-does-peeringdb-visibility-help","text":"The listing for AS112 in PeeringDB contains the peering LAN IP addresses of the routers for the network. This can be used as a source of configuration information for the peering routers of other networks at the same IXP.","title":"How Does PeeringDB Visibility Help?"},{"location":"howto/updates-for-as112/#what-you-need-to-do","text":"","title":"What you need to do"},{"location":"howto/updates-for-as112/#ixps-sharing-technical-information-using-the-ix-f-member-export-schema","text":"When an IXP shares technical information about its infrastructure using the IX-F Member Export Schema the existence of the AS112 node, and its peering LAN address, will automatically be populated in PeeringDB. You, as the operators of the node do not need to do anything. This is because AS112 has enabled the option to allow the IXPs' IX-F data to automatically populate its entry in PeeringDB.","title":"IXPs sharing technical information using the IX-F Member Export Schema"},{"location":"howto/updates-for-as112/#ixps-not-sharing-technical-information-using-the-ix-f-member-export-schema","text":"If your IXP does not share technical information about its infrastructure using the IX-F Member Export Schema you can ask them to do so. You can also reach out to ops@as112.net and the PeeringDB entry for AS112 will be manually updated.","title":"IXPs not sharing technical information using the IX-F Member Export Schema"},{"location":"howto/v2_search/","text":"HOWTO: v2 Search We are testing v2 search in parallel with our production v1 search tools. We encourage you to test it and give us feedback . Is it faster? Does it simplify the search process? Does it give you the results you expect? Your input helps us deliver the tools you want. When you click one the link for v2 search , you just type your query in the box and hit enter, like normal. Concept v2 lets you use some natural language queries in combination with the name for an area. It helps you get the results in fewer searches, ideally just one! Search for a network Searches for numbers can be interpreted as a search for a location as well as a network. When searching for a network prefixed with 'AS', partial matches show all relevant networks while direct matches take you straight to the network's page. Fig 1: A search for as333 shows results for AS3330 and AS33309 Support for metro sizes For many areas it will automatically set an appropriate radius. When a common business area crosses a jurisdictional boundary, the search is based on the common business area and not limited to the named metro area. Fig 2: A search for fac near new york includes results for facilities in Jersey City, NJ When you want a different radius, our Advanced Search tool lets you manually set a specific radius based on any street address. Searching directly for IXs v2 search finds exchanges based on the facilities they are in. You don\u2019t need to search for facilities in a metro area and then find the exchanges they host. You can do it in a single search. Fig 3: A search for ix in tokyo finds exchanges at facilities we know about in Tokyo Support for campus v2 search knows about campus objects \u2013 interconnected facilities under common ownership \u2013 so you can find campuses for an area as well a getting a full list of facilities. Fig 4: Searching for a campus in amsterdam shows just three entries Fig 5: Searching for a fac in amsterdam shows many more results","title":"HOWTO: v2 Search"},{"location":"howto/v2_search/#howto-v2-search","text":"We are testing v2 search in parallel with our production v1 search tools. We encourage you to test it and give us feedback . Is it faster? Does it simplify the search process? Does it give you the results you expect? Your input helps us deliver the tools you want. When you click one the link for v2 search , you just type your query in the box and hit enter, like normal.","title":"HOWTO: v2 Search"},{"location":"howto/v2_search/#concept","text":"v2 lets you use some natural language queries in combination with the name for an area. It helps you get the results in fewer searches, ideally just one!","title":"Concept"},{"location":"howto/v2_search/#search-for-a-network","text":"Searches for numbers can be interpreted as a search for a location as well as a network. When searching for a network prefixed with 'AS', partial matches show all relevant networks while direct matches take you straight to the network's page. Fig 1: A search for as333 shows results for AS3330 and AS33309","title":"Search for a network"},{"location":"howto/v2_search/#support-for-metro-sizes","text":"For many areas it will automatically set an appropriate radius. When a common business area crosses a jurisdictional boundary, the search is based on the common business area and not limited to the named metro area. Fig 2: A search for fac near new york includes results for facilities in Jersey City, NJ When you want a different radius, our Advanced Search tool lets you manually set a specific radius based on any street address.","title":"Support for metro sizes"},{"location":"howto/v2_search/#searching-directly-for-ixs","text":"v2 search finds exchanges based on the facilities they are in. You don\u2019t need to search for facilities in a metro area and then find the exchanges they host. You can do it in a single search. Fig 3: A search for ix in tokyo finds exchanges at facilities we know about in Tokyo","title":"Searching directly for IXs"},{"location":"howto/v2_search/#support-for-campus","text":"v2 search knows about campus objects \u2013 interconnected facilities under common ownership \u2013 so you can find campuses for an area as well a getting a full list of facilities. Fig 4: Searching for a campus in amsterdam shows just three entries Fig 5: Searching for a fac in amsterdam shows many more results","title":"Support for campus"},{"location":"howto/work_within_peeringdbs_query_limits/","text":"HOWTO: Work Within PeeringDB\u2019s Query Limits PeeringDB implements query throttling to encourage efficiently formatted queries and/or local caching. Many popular tools have been upgraded to use PeeringDB more efficiently. Query limits Duplicate queries: Repeated anonymous identical requests with a response size above 100kb are being limited to 1/hour Repeated anonymous identical requests of any size are being limited to 2/minute Query rate limit: Anonymous queries limited to 20/minute per IP address Authenticated queries limited to 40/minute per user or organization (when an organizational API key is used) Efficient queries We encourage users to make fewer, larger queries instead of making many small queries. Instead of sending each ASN you want to learn about as a separate query, create a list of ASNs and send them in a single query. The query element would look like this: 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 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. We also encourage you to leave at least two seconds between queries. Local cache We encourage you to use a local cache and synchronize it every hour or less frequently in accordance with your organization's needs. When you use a local cache you will only be sent changes since the last sync. We publish peeringdb-py, which can be used directly or as a reference implementation. Code is here and documentation is here . Use of an API key with peeringdb-py is highly recommended. If you want to implement a local cache using different tools and would like advice, we are happy to talk. Contact us at support@peeringdb.com . Tools Popular tools, including arouteserver have been updated to include support for API Keys and to make more efficient queries. We publish a list of tools that we know use PeeringDB. Check the list for tools that you use and upgrade old versions to take advantage of new features and improve everyone\u2019s PeeringDB experience.","title":"HOWTO: Work Within PeeringDB\u2019s Query Limits"},{"location":"howto/work_within_peeringdbs_query_limits/#howto-work-within-peeringdbs-query-limits","text":"PeeringDB implements query throttling to encourage efficiently formatted queries and/or local caching. Many popular tools have been upgraded to use PeeringDB more efficiently.","title":"HOWTO: Work Within PeeringDB\u2019s Query Limits"},{"location":"howto/work_within_peeringdbs_query_limits/#query-limits","text":"Duplicate queries: Repeated anonymous identical requests with a response size above 100kb are being limited to 1/hour Repeated anonymous identical requests of any size are being limited to 2/minute Query rate limit: Anonymous queries limited to 20/minute per IP address Authenticated queries limited to 40/minute per user or organization (when an organizational API key is used)","title":"Query limits"},{"location":"howto/work_within_peeringdbs_query_limits/#efficient-queries","text":"We encourage users to make fewer, larger queries instead of making many small queries. Instead of sending each ASN you want to learn about as a separate query, create a list of ASNs and send them in a single query. The query element would look like this: 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 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. We also encourage you to leave at least two seconds between queries.","title":"Efficient queries"},{"location":"howto/work_within_peeringdbs_query_limits/#local-cache","text":"We encourage you to use a local cache and synchronize it every hour or less frequently in accordance with your organization's needs. When you use a local cache you will only be sent changes since the last sync. We publish peeringdb-py, which can be used directly or as a reference implementation. Code is here and documentation is here . Use of an API key with peeringdb-py is highly recommended. If you want to implement a local cache using different tools and would like advice, we are happy to talk. Contact us at support@peeringdb.com .","title":"Local cache"},{"location":"howto/work_within_peeringdbs_query_limits/#tools","text":"Popular tools, including arouteserver have been updated to include support for API Keys and to make more efficient queries. We publish a list of tools that we know use PeeringDB. Check the list for tools that you use and upgrade old versions to take advantage of new features and improve everyone\u2019s PeeringDB experience.","title":"Tools"},{"location":"release_notes/","text":"Release Notes and Schedule The release notes list the GitHub issues and a summary of what has changed in PeeringDB software releases. Each new release has a one week beta test period on the beta server before it goes live. The beta and new releases are announced on the PeeringDB Announce Mailing List and on Facebook , LinkedIn and X . Release schedule This schedule provides planned dates for PeeringDB\u2019s future releases. We are sharing these dates to help PeeringDB users plan ahead for testing new and improved features in beta. We also want to help volunteer developers know the date on which their code changes are needed for internal testing before beta release. We provide a rolling schedule. Dates can change, so if you have a question or request please contact us at: support@peeringdb.com . Our releases are generally deployed at around 04:00 UTC. Release number Internal testing Beta release Production release 2.63.0 2024-11-06 2024-11-13 2024-11-20 2.64.0 2024-01-08 2024-01-15 2024-01-22 2.65.0 2025-02-05 2025-02-12 2025-02-19 2.66.0 2025-03-14 2025-03-23 2025-03-30 2.67.0 2025-04-22 2025-04-29 2025-04-30 2.68.0 2025-05-07 2025-05-14 2025-05-21 2.69.0 2025-06-11 2025-06-18 2025-05-25 Release 2.63.0 Beta Announcement Date: 13 November 2024 Release Date: 20 November 2024 GitHub issue Summary #1671 Inconsistent netixlan ASN data can result in inability for deleted netixlan to be claimed by new user Nullify the local asn field of netixlan objects and make it a read only view of $network.asn.. #1666 Schedule reset of tutorial server database As title. #1635 ops: add read-only server side switch PeeringDB can now be placed into read-only mode when needed. #1593 Dev module docs auto generation broken Fixes a bug that broke autogeneration of documentation. #1690 New net_side and ix_side fields on netixlan breaks sync once django-peeringdb is released Fixes a bug that blocked the release of an updated django-peeringdb because of the new new net_side and ix_side fields added to netixlan in 2.62.0. peeringdb-py #65 Make spinning up peeringdb-py fully automated As title. Release 2.62.1 Release Date: 24 October 2024 GitHub issue Summary #1692 Fix otp email one time password Fixes compatibility issues after two-factor library upgrade, causing issues with emailing one time passwords. Release 2.62.0 Beta Announcement Date: 9 October 2024 Release Date: 16 October 2024 GitHub issue Summary #1584 Passkey support for login Adds a new 2FA method, Passkeys . #1612 Feature Parity for Carrier Object: Search and Export to JSON, CSV, KMZ As title. #1555 Remove \"Media Type\" field for Internet Exchange object As title. #1563 CSV and JSON exports truncate at 250 records Exports no longer truncate at 250 records. #607 Add location of Physical IX-Port & Router Port IXPs can now indicate the location of their switch using the pdb_facility_id attribute of the switch statement in their IX-F JSON export . peeringdb-py #95 Make client more robust when dealing with api errors. As title. peeringdb-py #86 DB sync fails due to validation error Bug fix as title. #1635 ops: add read-only server side switch Server can go into read-only mode, while allowing user login. This mode allows basic service to be sustained in adverse situations. #1654 Direct query access to Elasticsearch to aid search improvements Direct query access to ElasticSearch for internal PeeringDB users. #1653 Update dependencies and modernise As title. peeringdb-py #94 Update deps and modernize As title. django-peeringdb #103 Update dependencies and modernise As title. #340 switch to uv, update deps Dependency update for docs.peeringdb.com. Release 2.61.0 Beta Announcement Date: 14 August 2024 Release Date: 21 August 2024 GitHub issue Summary #1617 Snag list for preview.beta.peeringdb.com Updates preview.beta.peeringdb.com to improve the UI. #1142 Email one time password button should be less prominent As title. #766 For any forbidden actions set a 403 and give a \"Not Allowed\" header As title. #1302 Fix OpenAPI types where needed As title. peeringdb-py #76 Client should handle rate limiting errors gracefully As title. #1583 bfd_support undocumented parameter in API Documentation improved. django-peeringdb #98 ORM configuration Options is missing (postgreSQL) Config option updated. #1014 When removing a network, removing all netixlans have to happen before removing pocs Fixes blocking of network deletion due to to Prevent deletion of a last technical contact if there is an existing netixlan object #923. Release 2.60.0 Beta Announcement Date: 17 July 2024 Release Date: 24 July 2024 GitHub issue Summary #1452 Normalizing the presentation of place names Place names are now normalized, improving the consistency of search results. #1189 Data export buttons for Network, Exchange, and Facilities As title. #1561 Deploy www on ECS/Fargate www.peeringdb.com will be deployed using containers. peeringdb-py #67 Allow option for logging to co-exist with existing loggers Improves logging support in peeringdb-py local cache. peeringdb-py #72 --output-format in cli does not seem to be working Fixes bug as per title. #1322 Give API writes high priority and limits As title. #1610 possible for ixpfx object with empty prefix to exist in a soft-deleted state Fixes bug as per title. #1040 Verification queue ticket subject changes Fixes bug as per title. Release 2.59.0 Beta Announcement Date: 19 June 2024 Release Date: 26 June 2024 GitHub issue Summary #1585 Publish OAuth authorization server metadata endpoint As title. #1483 Address Change UI Fixes an error where it was not possible to reject the suggestion for an address. #1561 Deploy www on ECS/Fargate Switch www.peeringdb.com to ECS/Fargate. Initial deployment will be on beta.peeringdb.com with www.peeringdb.com following at a later date. peeringdb-py #49 Automatically update docs site on code release As title. peeringdb-py #88 docs need updating to reflect some api changes to the Client.update_all() call As title. #1603 Organization API key table formatting broken Improves the display of Organizational API Keys. #1604 API limit=x does not work when response type set in URL Limits to response sizes were ignored as per title. #971 Remove white space from strings As title. #1606 rir_status update handler: intermittent bug that may attempt to delete a network too early Fixes an over eager data cleanup process. #1608 pdb_delete_outdated_pending_affil_request failure Fixes an error is a data cleanup process. Release 2.58.0 Beta Announcement Date: 29 May 2024 Release Date: 5 June 2024 GitHub issue Summary #1343 Inconsistent return results when querying facilities by state (Datafill) Enforces state naming on validation and normalize data. #1502 Create preview.peeringdb.com with updated web UI Preview site for new PeeringDB web design. #1414 Tooltip with Full IX Name on Mouse-Over IX-Abbreviation As title. #1115 Enhancement to Ownership Information Field Lessee tooltip now says \"Leased or Rented\". #1487 URL Referrer Behavior Clicking on a link now opens it in a new tab or window. #840 Add help text to \"Traffic Levels\" Add tooltip \"Total, self-classified traffic in/out to this network.\". #1491 Add logo watermark and peeringdb.com URL to kmz As title. #975 \"Incomplete data\" complainer for Peering Policy even with General Policy \"None\" or \"Open\" No longer show missing data warning for empty Peering Policy field if General Policy is set to \"Open\" or \"No\". #1580 Validator: Add validator for X usernames, were requirements Validator for usernames on the X social media network. #1481 Network Registration fail results in AC action and retry failure Improved network registration process where email address does not match RDAP output. #1500 pdb_stats needs to be updated to include Campuses, Carriers, etc. & possible bug with user counts Improvements to internal stats package. #1503 Is it possible to create an affiliation request even when the ASN (~Net) has been deleted? (But the ORG still exist) As title. #1038 add default for config key MELISSA_KEY now defaults to a blank string. #1048 TOTP devices sort is by id. However, only username is shown Fixes a UI bug with internal support tools. #85 DB sync fails due to duplicate entries Fixes a peeringdb-py data sync bug. Release 2.57.0 Beta Announcement Date: 17 April 2024 Release Date: 24 April 2024 GitHub issue Summary #1545 Feature request: Allow permissions to be given per user on Carrier As title. #1123 Make a Technical POC mandatory when enabling \"Allow IXP Update\" As title. #1231 Change ix-f to IX-F As title. #1577 Remove more clutter from KMZ Metadata Makes data easier to read and slims download size. #1475 KML Placemark/Point Meta Data Not Displaying Correctly Fixes a bug that broke the way metadata displayed for .KMZ pins. #1546 v2 search: 500 error when last character is a colon As title. #1530 missing search results when doing a city location search for facilities Fixes a bug that did not show fac entries located in a city in simple search. #1533 Exchange Advanced search fails and returns bad search data Fixes and intermittent Advanced Search failure. #1451 Cosmetic issue with affiliation emails and double-slash in URL Fixes a cosmetic bug in autogenerated support messages. #1416 Add (PeeringDB Support) after superuser name in public notifications Support messages now more clearly identified as coming from PeeringDB Support. #1415 Auto-CleanUp old pending \"User to Organization Affiliation Request\" Pending affiliation requests are now cleaned up after 3 months. #1494 drop any facilities without location data (PDB Example) No fac without a geocode is now listed in the .KMZ export. #1528 pdb_rir_status task errors on deskpro ticket creation Fixes a bug in an internal support tool. #1453 DELETION PREVENTED: Link is not formatted as html element Fixes a bug in an internal support tool. #1484 Update ORG Social Media Option \"Twitter\" to \"X\" As title. Release 2.56.1 Release Date: 27 March 2024 GitHub issue Summary #1581 rdap to 1.5.2 Merge third-party library needed for complete fix of #1455 . Release 2.56.0 Beta Announcement Date: 13 March 2024 Release Date: 20 March 2024 GitHub issue Summary #1447 v2 search - support for ISO 3166 alpha-2 country codes v2 search now has support for ISO 3166 alpha-2 codes. #1495 Enable .KMZ export for Advanced Search results As title. #1489 Remove unneeded fields from the KMZ Removes field clutter to optimize file size. #1490 Spelling fix for KMZ Fixes spelling of 'Latitude'. #1099 Expose authentication methods on outbound federation Adds Authentication Method Reference field to OAuth profile, with choices from Section 2 of RFC8176 , documentation, and scope. #1133 Return auth error when multiple auth methods are used Now returns a 401 code with a helpful message when Authorization: Basic fails with corrupt base64 input. #1456 Duplicate AS-SET name Adds a tooltip suggesting hierarchical AS-SET names and a warning if a duplicate name is entered. #1331 BFD support field in Global and IX specific views Adds a boolean value for BFD support per IP address and a mouseover icon on the website when it's true. #1478 Social link controls showing up when not logged in Fixes a cosmetic bug that showed non-operational social media controls when not logged in. #1425 Update social media icons in footer Updates social media icons in the footer. #1152 Tab URLs don't work anymore Fixes tab URLs in the admin interface. Release 2.55.0 Beta Announcement Date: 21 February 2024 Release Date: 28 February 2024 GitHub issue Summary #1410 Adjust IPv4/6 prefix limits automatically Max prefix limit is now automatically adjusted based on the DFZ. #1455 Org name RIPE-NCC-END-MNT for new networks Fixes a bug that named orgs RIPE-NCC-END-MNT. #1468 translation refresh and dependency update translate.peeringdb.com updated to weblate 5.0 and other dependency updates. #1480 pdb_load_data no longer creates necessary org usergroups Fixes a bug with data sync tool. Release 2.54.2 Release Date: 31 January 2024 GitHub issue Summary #1536 Support 202311 rollback ux changes Reverted web UI changes that caused issues. Release 2.54.1 Release Date: 30 January 2024 GitHub issue Summary #1511 Non-obvious search box on the front page Search bar in header is now auto deployed. #1513 Mobile interface front page has lots of misaligned sections Fixes layout issues for some mobile devices. #1514 Two different search boxes on a network page information page in the same area As title. #1515 Bottom search box on some pages does not work correctly As title. Release 2.54.0 Beta Announcement Date: 18 January 2024 Release Date: 24 January 2024 GitHub issue Summary #1463 Update website to take advantage of wider screen and improve mobile device support As title. #1357 Clarifying the Network Type field Add multi-select for Network Type field. #1341 Only indicate availability of DC voltage for facilities Limits power options to non-standard voltages. #1476 v2 search not able to find organization and network - Marconi Solutions Srls Fixes a bug where bad search results are returned. #170 Add a \"flag bad data\" button on various places Adds a box web users can click to report bad data. #1430 Changing ASN field on \"Add Network\" to be numbers only The text box is now restricted to numbers, reducing scope for data entry issues. #1455 Org name RIPE-NCC-END-MNT for new networks Fixes a bug tat set some networks' names to RIPE-NCC-END-MNT. #1280 Improve RIR Update Procedure Improves the process for removing stale networks from PeeringDB. #1065 api-cache improvements As title. #1303 Add headers to API requests Adds a mechanism to indicate that behavior/schema has changed to API consumers. #1410 Adjust IPv4/6 prefix limits automatically Now automatically sets the maximum to 25% of the DFZ. #410 Add a \"last synced at $date\" to beta.peeringdb.com As title. #1468 translation refresh and dependency update As title. #1466 Analysis: Investigate use of ECS/Fargate As title. #1412 Improve performance by updating Python client code As title. Older releases 2023 Release Notes 2022 Release Notes 2021 Release Notes 2020 Release Notes","title":"Release Notes"},{"location":"release_notes/#release-notes-and-schedule","text":"The release notes list the GitHub issues and a summary of what has changed in PeeringDB software releases. Each new release has a one week beta test period on the beta server before it goes live. The beta and new releases are announced on the PeeringDB Announce Mailing List and on Facebook , LinkedIn and X .","title":"Release Notes and Schedule"},{"location":"release_notes/#release-schedule","text":"This schedule provides planned dates for PeeringDB\u2019s future releases. We are sharing these dates to help PeeringDB users plan ahead for testing new and improved features in beta. We also want to help volunteer developers know the date on which their code changes are needed for internal testing before beta release. We provide a rolling schedule. Dates can change, so if you have a question or request please contact us at: support@peeringdb.com . Our releases are generally deployed at around 04:00 UTC. Release number Internal testing Beta release Production release 2.63.0 2024-11-06 2024-11-13 2024-11-20 2.64.0 2024-01-08 2024-01-15 2024-01-22 2.65.0 2025-02-05 2025-02-12 2025-02-19 2.66.0 2025-03-14 2025-03-23 2025-03-30 2.67.0 2025-04-22 2025-04-29 2025-04-30 2.68.0 2025-05-07 2025-05-14 2025-05-21 2.69.0 2025-06-11 2025-06-18 2025-05-25","title":"Release schedule"},{"location":"release_notes/#release-2630","text":"Beta Announcement Date: 13 November 2024 Release Date: 20 November 2024 GitHub issue Summary #1671 Inconsistent netixlan ASN data can result in inability for deleted netixlan to be claimed by new user Nullify the local asn field of netixlan objects and make it a read only view of $network.asn.. #1666 Schedule reset of tutorial server database As title. #1635 ops: add read-only server side switch PeeringDB can now be placed into read-only mode when needed. #1593 Dev module docs auto generation broken Fixes a bug that broke autogeneration of documentation. #1690 New net_side and ix_side fields on netixlan breaks sync once django-peeringdb is released Fixes a bug that blocked the release of an updated django-peeringdb because of the new new net_side and ix_side fields added to netixlan in 2.62.0. peeringdb-py #65 Make spinning up peeringdb-py fully automated As title.","title":"Release 2.63.0"},{"location":"release_notes/#release-2621","text":"Release Date: 24 October 2024 GitHub issue Summary #1692 Fix otp email one time password Fixes compatibility issues after two-factor library upgrade, causing issues with emailing one time passwords.","title":"Release 2.62.1"},{"location":"release_notes/#release-2620","text":"Beta Announcement Date: 9 October 2024 Release Date: 16 October 2024 GitHub issue Summary #1584 Passkey support for login Adds a new 2FA method, Passkeys . #1612 Feature Parity for Carrier Object: Search and Export to JSON, CSV, KMZ As title. #1555 Remove \"Media Type\" field for Internet Exchange object As title. #1563 CSV and JSON exports truncate at 250 records Exports no longer truncate at 250 records. #607 Add location of Physical IX-Port & Router Port IXPs can now indicate the location of their switch using the pdb_facility_id attribute of the switch statement in their IX-F JSON export . peeringdb-py #95 Make client more robust when dealing with api errors. As title. peeringdb-py #86 DB sync fails due to validation error Bug fix as title. #1635 ops: add read-only server side switch Server can go into read-only mode, while allowing user login. This mode allows basic service to be sustained in adverse situations. #1654 Direct query access to Elasticsearch to aid search improvements Direct query access to ElasticSearch for internal PeeringDB users. #1653 Update dependencies and modernise As title. peeringdb-py #94 Update deps and modernize As title. django-peeringdb #103 Update dependencies and modernise As title. #340 switch to uv, update deps Dependency update for docs.peeringdb.com.","title":"Release 2.62.0"},{"location":"release_notes/#release-2610","text":"Beta Announcement Date: 14 August 2024 Release Date: 21 August 2024 GitHub issue Summary #1617 Snag list for preview.beta.peeringdb.com Updates preview.beta.peeringdb.com to improve the UI. #1142 Email one time password button should be less prominent As title. #766 For any forbidden actions set a 403 and give a \"Not Allowed\" header As title. #1302 Fix OpenAPI types where needed As title. peeringdb-py #76 Client should handle rate limiting errors gracefully As title. #1583 bfd_support undocumented parameter in API Documentation improved. django-peeringdb #98 ORM configuration Options is missing (postgreSQL) Config option updated. #1014 When removing a network, removing all netixlans have to happen before removing pocs Fixes blocking of network deletion due to to Prevent deletion of a last technical contact if there is an existing netixlan object #923.","title":"Release 2.61.0"},{"location":"release_notes/#release-2600","text":"Beta Announcement Date: 17 July 2024 Release Date: 24 July 2024 GitHub issue Summary #1452 Normalizing the presentation of place names Place names are now normalized, improving the consistency of search results. #1189 Data export buttons for Network, Exchange, and Facilities As title. #1561 Deploy www on ECS/Fargate www.peeringdb.com will be deployed using containers. peeringdb-py #67 Allow option for logging to co-exist with existing loggers Improves logging support in peeringdb-py local cache. peeringdb-py #72 --output-format in cli does not seem to be working Fixes bug as per title. #1322 Give API writes high priority and limits As title. #1610 possible for ixpfx object with empty prefix to exist in a soft-deleted state Fixes bug as per title. #1040 Verification queue ticket subject changes Fixes bug as per title.","title":"Release 2.60.0"},{"location":"release_notes/#release-2590","text":"Beta Announcement Date: 19 June 2024 Release Date: 26 June 2024 GitHub issue Summary #1585 Publish OAuth authorization server metadata endpoint As title. #1483 Address Change UI Fixes an error where it was not possible to reject the suggestion for an address. #1561 Deploy www on ECS/Fargate Switch www.peeringdb.com to ECS/Fargate. Initial deployment will be on beta.peeringdb.com with www.peeringdb.com following at a later date. peeringdb-py #49 Automatically update docs site on code release As title. peeringdb-py #88 docs need updating to reflect some api changes to the Client.update_all() call As title. #1603 Organization API key table formatting broken Improves the display of Organizational API Keys. #1604 API limit=x does not work when response type set in URL Limits to response sizes were ignored as per title. #971 Remove white space from strings As title. #1606 rir_status update handler: intermittent bug that may attempt to delete a network too early Fixes an over eager data cleanup process. #1608 pdb_delete_outdated_pending_affil_request failure Fixes an error is a data cleanup process.","title":"Release 2.59.0"},{"location":"release_notes/#release-2580","text":"Beta Announcement Date: 29 May 2024 Release Date: 5 June 2024 GitHub issue Summary #1343 Inconsistent return results when querying facilities by state (Datafill) Enforces state naming on validation and normalize data. #1502 Create preview.peeringdb.com with updated web UI Preview site for new PeeringDB web design. #1414 Tooltip with Full IX Name on Mouse-Over IX-Abbreviation As title. #1115 Enhancement to Ownership Information Field Lessee tooltip now says \"Leased or Rented\". #1487 URL Referrer Behavior Clicking on a link now opens it in a new tab or window. #840 Add help text to \"Traffic Levels\" Add tooltip \"Total, self-classified traffic in/out to this network.\". #1491 Add logo watermark and peeringdb.com URL to kmz As title. #975 \"Incomplete data\" complainer for Peering Policy even with General Policy \"None\" or \"Open\" No longer show missing data warning for empty Peering Policy field if General Policy is set to \"Open\" or \"No\". #1580 Validator: Add validator for X usernames, were requirements Validator for usernames on the X social media network. #1481 Network Registration fail results in AC action and retry failure Improved network registration process where email address does not match RDAP output. #1500 pdb_stats needs to be updated to include Campuses, Carriers, etc. & possible bug with user counts Improvements to internal stats package. #1503 Is it possible to create an affiliation request even when the ASN (~Net) has been deleted? (But the ORG still exist) As title. #1038 add default for config key MELISSA_KEY now defaults to a blank string. #1048 TOTP devices sort is by id. However, only username is shown Fixes a UI bug with internal support tools. #85 DB sync fails due to duplicate entries Fixes a peeringdb-py data sync bug.","title":"Release 2.58.0"},{"location":"release_notes/#release-2570","text":"Beta Announcement Date: 17 April 2024 Release Date: 24 April 2024 GitHub issue Summary #1545 Feature request: Allow permissions to be given per user on Carrier As title. #1123 Make a Technical POC mandatory when enabling \"Allow IXP Update\" As title. #1231 Change ix-f to IX-F As title. #1577 Remove more clutter from KMZ Metadata Makes data easier to read and slims download size. #1475 KML Placemark/Point Meta Data Not Displaying Correctly Fixes a bug that broke the way metadata displayed for .KMZ pins. #1546 v2 search: 500 error when last character is a colon As title. #1530 missing search results when doing a city location search for facilities Fixes a bug that did not show fac entries located in a city in simple search. #1533 Exchange Advanced search fails and returns bad search data Fixes and intermittent Advanced Search failure. #1451 Cosmetic issue with affiliation emails and double-slash in URL Fixes a cosmetic bug in autogenerated support messages. #1416 Add (PeeringDB Support) after superuser name in public notifications Support messages now more clearly identified as coming from PeeringDB Support. #1415 Auto-CleanUp old pending \"User to Organization Affiliation Request\" Pending affiliation requests are now cleaned up after 3 months. #1494 drop any facilities without location data (PDB Example) No fac without a geocode is now listed in the .KMZ export. #1528 pdb_rir_status task errors on deskpro ticket creation Fixes a bug in an internal support tool. #1453 DELETION PREVENTED: Link is not formatted as html element Fixes a bug in an internal support tool. #1484 Update ORG Social Media Option \"Twitter\" to \"X\" As title.","title":"Release 2.57.0"},{"location":"release_notes/#release-2561","text":"Release Date: 27 March 2024 GitHub issue Summary #1581 rdap to 1.5.2 Merge third-party library needed for complete fix of #1455 .","title":"Release 2.56.1"},{"location":"release_notes/#release-2560","text":"Beta Announcement Date: 13 March 2024 Release Date: 20 March 2024 GitHub issue Summary #1447 v2 search - support for ISO 3166 alpha-2 country codes v2 search now has support for ISO 3166 alpha-2 codes. #1495 Enable .KMZ export for Advanced Search results As title. #1489 Remove unneeded fields from the KMZ Removes field clutter to optimize file size. #1490 Spelling fix for KMZ Fixes spelling of 'Latitude'. #1099 Expose authentication methods on outbound federation Adds Authentication Method Reference field to OAuth profile, with choices from Section 2 of RFC8176 , documentation, and scope. #1133 Return auth error when multiple auth methods are used Now returns a 401 code with a helpful message when Authorization: Basic fails with corrupt base64 input. #1456 Duplicate AS-SET name Adds a tooltip suggesting hierarchical AS-SET names and a warning if a duplicate name is entered. #1331 BFD support field in Global and IX specific views Adds a boolean value for BFD support per IP address and a mouseover icon on the website when it's true. #1478 Social link controls showing up when not logged in Fixes a cosmetic bug that showed non-operational social media controls when not logged in. #1425 Update social media icons in footer Updates social media icons in the footer. #1152 Tab URLs don't work anymore Fixes tab URLs in the admin interface.","title":"Release 2.56.0"},{"location":"release_notes/#release-2550","text":"Beta Announcement Date: 21 February 2024 Release Date: 28 February 2024 GitHub issue Summary #1410 Adjust IPv4/6 prefix limits automatically Max prefix limit is now automatically adjusted based on the DFZ. #1455 Org name RIPE-NCC-END-MNT for new networks Fixes a bug that named orgs RIPE-NCC-END-MNT. #1468 translation refresh and dependency update translate.peeringdb.com updated to weblate 5.0 and other dependency updates. #1480 pdb_load_data no longer creates necessary org usergroups Fixes a bug with data sync tool.","title":"Release 2.55.0"},{"location":"release_notes/#release-2542","text":"Release Date: 31 January 2024 GitHub issue Summary #1536 Support 202311 rollback ux changes Reverted web UI changes that caused issues.","title":"Release 2.54.2"},{"location":"release_notes/#release-2541","text":"Release Date: 30 January 2024 GitHub issue Summary #1511 Non-obvious search box on the front page Search bar in header is now auto deployed. #1513 Mobile interface front page has lots of misaligned sections Fixes layout issues for some mobile devices. #1514 Two different search boxes on a network page information page in the same area As title. #1515 Bottom search box on some pages does not work correctly As title.","title":"Release 2.54.1"},{"location":"release_notes/#release-2540","text":"Beta Announcement Date: 18 January 2024 Release Date: 24 January 2024 GitHub issue Summary #1463 Update website to take advantage of wider screen and improve mobile device support As title. #1357 Clarifying the Network Type field Add multi-select for Network Type field. #1341 Only indicate availability of DC voltage for facilities Limits power options to non-standard voltages. #1476 v2 search not able to find organization and network - Marconi Solutions Srls Fixes a bug where bad search results are returned. #170 Add a \"flag bad data\" button on various places Adds a box web users can click to report bad data. #1430 Changing ASN field on \"Add Network\" to be numbers only The text box is now restricted to numbers, reducing scope for data entry issues. #1455 Org name RIPE-NCC-END-MNT for new networks Fixes a bug tat set some networks' names to RIPE-NCC-END-MNT. #1280 Improve RIR Update Procedure Improves the process for removing stale networks from PeeringDB. #1065 api-cache improvements As title. #1303 Add headers to API requests Adds a mechanism to indicate that behavior/schema has changed to API consumers. #1410 Adjust IPv4/6 prefix limits automatically Now automatically sets the maximum to 25% of the DFZ. #410 Add a \"last synced at $date\" to beta.peeringdb.com As title. #1468 translation refresh and dependency update As title. #1466 Analysis: Investigate use of ECS/Fargate As title. #1412 Improve performance by updating Python client code As title.","title":"Release 2.54.0"},{"location":"release_notes/#older-releases","text":"2023 Release Notes 2022 Release Notes 2021 Release Notes 2020 Release Notes","title":"Older releases"},{"location":"release_notes/release_notes_2020/","text":"2020 Release Notes The release notes list the GitHub issues and a summary of what has changed in PeeringDB software releases in 2020. Release notes for the current year are available on the Release Notes page. Each new release has a one week beta test period on the beta server before it goes live. The beta and new releases are announced on the PeeringDB Announce Mailing List and on Twitter , LinkedIn and Facebook . Release 2.24.0 Beta Announcement Date: 4 November, 2020 Release Date: 11 November, 2020 GitHub issue Summary #381 Network type: Add \"Government\" \u201cGovernment\u201d added as a network type. #463 Add new network type for networks that provide network services \u201cNetwork Services\" for networks whose function is to provide specialized services, like DNS, RDAP, Whois or DDoS protection added as a network type. #745 Add \u201cRoute Collector\u201d network type \u201cRoute Collector\u201d added as a network type. #747 Clean up info_type if name contains \"Route Servers\" or \"Route Collector\" Data cleanup related to #745. All networks with route collectors have now been properly classified. #665 Drop ixlan name from displaying at \"Peers at this Exchange Point\" Simplified the user interface by removing the name of the ixlan as there is now just one ixlan per exchange point. #775 Misleading tooltip of prefix limit fields NO Improved the user interface with better language in the tooltip. The distinction between maximum prefix length and maximum number of prefixes should now be clearer. #814 Suppress RDAP call for contact data/handles for NIC.br // AUTOTOOL Internal tool change. This change suppresses calls for contact data over RDAP because NIC.br is no longer allowed to provide direct calls for personal data. #803 Searching for a user in /cp/peeringdb_server/userorgaffiliationrequest results in 500 Internal tool change. Fixed an error that could return a 500 error on some searches. #688 Automate creation of Release Notes Internal tool change. A new script that extracts data from Github milestones to build the markdown for the release notes page. #851 sponsorship_notify RuntimeWarning (was: End of Sponsorship notification email is no longer working) Internal tool change to improve the tracking of sponsorship renewals. #861 add explicit order for fields in admin control panel Internal tool change. Display fields in an explicit order. #850 IX-F Importer: Repeated emails are being generated for things already emailed Internal procedure optimisation. A series of improvements to the IX-F importer tool. These changes are all related to improving notifications about data quality that were developed by the Data Ownership Task Force. #856 IX-F Importer: Make hyperlinks clickable when creating DeskPRO tickets See #850. #857 IX-F Importer: intermittent issue with speed validation See #850. #858 IX-F Importer: Make pdb_deskpro_publish command ignore importer tickets See #850. #859 IX-F Importer: ERROR: 'IXFMemberData' object has no attribute 'ixf_log_entry' See #850. #860 IX-F Importer Blocker: \"Days until DeskPRO ticket is created\" should now be ignored/removed, such that no ticket or emails happen after a delay See #850. Release 2.23.0 Beta Announcement Date: 30 September, 2020 Release Date: 7 October, 2020 GitHub issue Summary #833 - IX-F Importer: Add failed email resending Implement re-send mechanic for emails that could not be sent (indicated by a sent value of null). When re-sending an email add a note to the email stating \"This email could not be delivered initially and may contain stale information\". Add a field to the admin-com import emails table to show this note as well. Update sent if send is successful #832 - IX-F Importer: suggested update when it should be add + remove In some edge cases a deletion will end up as a requirement incorrectly to a legitimate new entry still. See #770 #816 #831 - [prod] IX-F importer: NameError: name 'EmailMultiAlternatives' is not defined Fixes broken email function of ix-f importer #826 - Make technical poc mandatory when adding a netixlan Upon creating a netixlan object check that net has at least one ( Technical , NOC , Policy ) poc and that the poc has an e-mail address. If not ask them to create one first. Visibility of at least one ( Technical , NOC , Policy ) poc has to be \"Users\" resp. \"Public\" #825 - [beta] IX-F importer: Make Importer return non-zero when there is an error that Ops should see Improvements to ix-f importer that allow for easier notification and tracking of errors for the Ops team #824 - IX-F Preview - shows the consolidated delete operation when it shouldn't Simplified the UI for consolidated modifications to improve user understanding #759 - Describe the 'never-via-routeservers' flag Add tooltip for never-via-routeservers option: \"Indicates if this network will announce its routes via route servers or not\" #571 - Facility registration tool adds identifier Fixes small UI bug in facility registration tool used by the Admin Committee #481 - Add min_speed and max_speed to ixlan Based on the discussion in #475 adds a new global setting that limits netixlan speed values now. It's not a property on the ixlan anymore. #371 - Clean up users in verification queue A tool to delete user entries older than 90 days from the so-called verification queue and run it on a regular schedule #370 - Make Website mandatory for suggesting a facility Website is now mandatory when suggesting a facility but zipcode only mandatory for countries that have zipcodes #321 - Typos in locale Fixes a number of typographical errors Release 2.22.0 Beta Announcement Date: 15 July, 2020 Release Date: 26 August, 2020 GitHub issue Summary #249 - Add the IX-F Member Export URL to the ixlan API endpoint There are two new fields in the ixlan section resp. the ixlan object, called ixf_ixp_member_list_url and ixf_ixp_member_list_url_visible. The first one contains the URL to the IX-F import file while the second governs the visibility of the URL. Values are the same as for the poc object, namely \"Public\", \"Users\" and \"Private\", defaulting to \"Private\" (i.e. or users who are members of the org). #268 - Database: unique constraints This issue fixes internal DB behaviour. #358 - Lock ASN once the record is created Once a network has been created, the field asn is made read-only. As the ASN is unique there is no reason to change it. Making the field read-only is to prevent unwanted side effects. #431 - Null 'rencode' from facility Null out all values for legacy unused rencode field, and make it read only to prepare for removal in PDB v3 [#625] (https://github.com/peeringdb/peeringdb/issues/625). #600 - Visibility for \"Allow IXP update\" switch A new field is added to the API net object, called allow_ixp_update. Furthermore, a line is added in global stats in the footer with a count (called \"Automated Networks\") of the networks which have \"Allow IXP Update\" enabled. #649 - Possible for 'ok' ixpfx to exist in 'pending' ixlan This issue fixes an internal bug. #683 - Add net_count_ixf field to ix object A field is added to the API object ix, called net_count_ixf, which indicates the number of net objects the exchange has in their IX-F JSON if they provide one. Otherwise, the value is null. #696 - Lock some objects from being deleted by the owner To protect operational data objects fac, ix, ixlan and org are prevented from being deleted as long as there are other objects related to it. First, these objects must be deleted before the object itself can be deleted. The attempt to delete such a protected object gives an error message and also opens a ticket with the PeeringDB support. #697 - Creating, changing, and deleting a netixlan object We completely re-implemented the way a connection to an exchange is handled. This new procedure allows both for a safe heads up a network can give to their peers as well as a safe way for exchanges to get rid of stale entries. Moreover, it allows networks to easily acknowledge new entries at exchanges which use the IX-F importer feature. See also the webinar for detailed information on this new procedure. Release 2.21.0 Beta Announcement Date: 24 June, 2020 Release Date: 1 July, 2020 GitHub issue Summary #72 - Enable sort and reverse sort of IP column in IX display Sort and reverse sort of IP column in IX display are added. Sort of the IP addresses in the expected natural order. The IPv4 address is the primary sort key. The IPv6 address is the secondary key. #121 - missing delete button for organizations New feature. An admin user is able to delete an org if it has no live objects under it. #290 - Offer 2FA 2FA is offered now. The implementation includes optional 2FA using TOTP is offered there is a knob in the user profile to enable and set it up email recovery is added using the verified user email address an icon is added in the org admin section to denote to org admins if users have 2FA enabled #352 - Mark IXP peering LAN as bogon Allow IXP to tag their LAN prefixes as bogons. In general, LAN prefixes should not be visible in the DFZ. If it should be visible, IXPs are able to debogonise them #356 - Sorting by clicking table headers should use local-compare Bugfix. Sorting now honours locale-sorting #519 - Make spelling of traffic levels consistent This is a bug fix and a minor improvement. Spelling is made consistent and traffic levels up to 100+Tbps are added. #526 - Show \"Last Updated\" fields on fac, ix, org records A \"Last Updated\" field is visible now for fac, ix, and org objects #537 - Posting https://www.peeringdb.com onto social media doesn't select a good preview image Add opengraph image for page preview. #566 - Should deleted personal data be accessable through the API? If a poc object is deleted it is made immediately non-gettable via the API, too. In case the corresponding net object was deleted unintentionally the object is still kept in the DB. After 30 days it will be hard-deleted. #569 - Don't return any POC data with status=deleted POC objects do have a visibility scope. If a POC record is deleted it should not be able to retrieve it at all, even if visibility had been set to \"public\" before. The data will still be kept internally for 30 days for rollback if the deletion happened unintentionally. After 30 days the record will be hard-deleted. #580 - Add a clear error message, when user tries to re-add a previously deleted facility Bug fix for an unclear behaviour. If a connection from a network to a facility was deleted the user was unable to re-add this connection by themselves and an unclear error message was given. Now, the user is able to re-add the connection. #618 - Support alternative direction of writing, e.g. Arabic For right-to-left written languages, the entire layout of the PeeringDB website has to be flipped around. #644 - Undeleting an ixlan with an emtpy IPv4 XOR IPv6 field throws a silly error Bugfix for the Admin Committee UI. An empty field was considered to be a legit non-null value and the system hence enforced uniqueness #650 - Add pointer from API docs to tutorial A URL is added from the API documentation website to the PeeringDB tutorials #654 - Add pointer from API docs to tutorial Bugfix for the Admin Committee UI. #663 - change default encoding of API calls to 'utf-8' The output of API calls will change from content-type: application/json; charset=iso-8859-1 to content-type: application/json; charset=utf-8 #664 - Selection should only present undeleted objects Admin Committee only related. Only non-deleted should be presented for selection #666 - Selection should only present undeleted objects When changing owner of an ix admin GUI borks because of \"Ixlan for exchange already exists\" #669 - Add help text to \"Add {Facility, Network, Exchange} tab Added a better help text to make crystal clear that adding a Facility, Network, or Exchange means that you are owning this object. #679 - Add read-only Superuser Provide PC members with a read-only access to the Admin UI. #712 - User is unable to update their net record Bug fix. Missing pointer to where the non-compliant value is Release 2.20.2 Release Date: 23 April, 2020 GitHub issue Summary #707 - Make source not required for IRR records Making source not required for IRR records. This requirement was an oversight during implementation of [#151 - Validation of IRR Records] (https://github.com/peeringdb/peeringdb/issues/151) that was released with 2.20.0 - see below. Product Committee revisited the issue after 2.20.0 and reports of concern from community and decided to retract the requirement in an emergency release Release 2.20.1 Release Date: 21 April, 2020 GitHub issue Summary #702 - Requests from peeringdb-py error 500 Emergency release for a config change Release 2.20.0 Beta Announcement Date: 15 April, 2020 Release Date: 21 April, 2020 GitHub issue Summary #151 - Validation of IRR Records To make the IRR as-set/route-set field of more operational value, strict rules apply the as-set/rs-set name has to conform to RFC 2622 (5.1 and 5.2) the source may be specified by AS-SET@SOURCE or SOURCE::AS-SET (preferred) valid sources are taken from the list of known IRRs multiple values must be separated by either ,, , or , (i.e. comma, space or comma followed by space) #189 - Improve explanatory and help text A clear help text is added for requesting affiliation to an organization. #251 - Limit number of concurrent affiliation requests per user In order to reduce organization affiliation request spamming, the number of pending organization requests has been limited to 5. #295 Desk pro tickets -> DeskPRO tickets This is a bug fix and only affects the Admin UI. #378 - Add contact information for Facilities (fac) the same way as for ix and net Contact information is added to Facilities and IXP. #452 - Org/Network name of a sponsor should not link to /sponsors, only the sponsor badge should This is a bug fix. From now on only when clicking on the sponsor badge will direct to the sponsor page. #462 - Route-server URL starting with ssh:// Add SSH as supported protocol. #539 - Add attribute 'operational' to 'netixlan' This is a new feature and allows networks to give early notice to their peers that they soon will show up at an IXP. There is a new check box when adding an IXP connection. By default, a connection is considered operational and the box is ticked. When the connection is still in provisioning status, please untick the box. When viewing, the warning glyphicon is shown right to the network name. The correspondent API object netixlan is enhanced by a boolean field operational defaulting to true. This feature is in line with the Data Ownership Policy . #548 - containerize server Internal software deployment system has been changed to use containers which reduces time spent by the ops team for deployments, allows for better scaling, and reduces the cost of entry for new developers to write and test their code. #555 - Notes field translate button disappears This is a bug fix. The \"Translate\" button is there for a moment and then disappeared. #557 - Show all languages on beta, even if translation is not ready for prod As soon as a new translation is starting it is available on the beta to help the translators and to encourage the community for input. #598 - bug caused by the org affiliationship request without an asn This is a bug fix and is only relevant for the PeeringDB Admin Committee. #609 - When creating an ix via the API also return ixlan_id and ixpfx_id When creating an IX record via API, the call will also return the implicitly created ixlan_id and ixpfx_id. This makes it simpler and reduces the number of calls that need to be made to the API. #615 - Insert links into ID fields in DESKPRO AUTOASN tickets This only affects tickets generated for PeeringDB Admin Committee. A link to the object in the UI is added. #626 - Update API docs Internal mechanisms for generating the API docs have been updated to current standards. This also allows for easier user contributions to the docs themselves. #634 - Remove support for python2 Python 2.7 and 3.4 support is being removed from PeeringDB packages. #636 - Don't create a new net object, when there only is an ASN block This is a bug fix and is only relevant for the PeeringDB Admin Committee. #667 - Fix use autocomplete fields in the admincom controlpanel to speed up loading times This is a bug fix and is only relevant for the PeeringDB Admin Committee.","title":"2020 Release Notes"},{"location":"release_notes/release_notes_2020/#2020-release-notes","text":"The release notes list the GitHub issues and a summary of what has changed in PeeringDB software releases in 2020. Release notes for the current year are available on the Release Notes page. Each new release has a one week beta test period on the beta server before it goes live. The beta and new releases are announced on the PeeringDB Announce Mailing List and on Twitter , LinkedIn and Facebook .","title":"2020 Release Notes"},{"location":"release_notes/release_notes_2020/#release-2240","text":"Beta Announcement Date: 4 November, 2020 Release Date: 11 November, 2020 GitHub issue Summary #381 Network type: Add \"Government\" \u201cGovernment\u201d added as a network type. #463 Add new network type for networks that provide network services \u201cNetwork Services\" for networks whose function is to provide specialized services, like DNS, RDAP, Whois or DDoS protection added as a network type. #745 Add \u201cRoute Collector\u201d network type \u201cRoute Collector\u201d added as a network type. #747 Clean up info_type if name contains \"Route Servers\" or \"Route Collector\" Data cleanup related to #745. All networks with route collectors have now been properly classified. #665 Drop ixlan name from displaying at \"Peers at this Exchange Point\" Simplified the user interface by removing the name of the ixlan as there is now just one ixlan per exchange point. #775 Misleading tooltip of prefix limit fields NO Improved the user interface with better language in the tooltip. The distinction between maximum prefix length and maximum number of prefixes should now be clearer. #814 Suppress RDAP call for contact data/handles for NIC.br // AUTOTOOL Internal tool change. This change suppresses calls for contact data over RDAP because NIC.br is no longer allowed to provide direct calls for personal data. #803 Searching for a user in /cp/peeringdb_server/userorgaffiliationrequest results in 500 Internal tool change. Fixed an error that could return a 500 error on some searches. #688 Automate creation of Release Notes Internal tool change. A new script that extracts data from Github milestones to build the markdown for the release notes page. #851 sponsorship_notify RuntimeWarning (was: End of Sponsorship notification email is no longer working) Internal tool change to improve the tracking of sponsorship renewals. #861 add explicit order for fields in admin control panel Internal tool change. Display fields in an explicit order. #850 IX-F Importer: Repeated emails are being generated for things already emailed Internal procedure optimisation. A series of improvements to the IX-F importer tool. These changes are all related to improving notifications about data quality that were developed by the Data Ownership Task Force. #856 IX-F Importer: Make hyperlinks clickable when creating DeskPRO tickets See #850. #857 IX-F Importer: intermittent issue with speed validation See #850. #858 IX-F Importer: Make pdb_deskpro_publish command ignore importer tickets See #850. #859 IX-F Importer: ERROR: 'IXFMemberData' object has no attribute 'ixf_log_entry' See #850. #860 IX-F Importer Blocker: \"Days until DeskPRO ticket is created\" should now be ignored/removed, such that no ticket or emails happen after a delay See #850.","title":"Release 2.24.0"},{"location":"release_notes/release_notes_2020/#release-2230","text":"Beta Announcement Date: 30 September, 2020 Release Date: 7 October, 2020 GitHub issue Summary #833 - IX-F Importer: Add failed email resending Implement re-send mechanic for emails that could not be sent (indicated by a sent value of null). When re-sending an email add a note to the email stating \"This email could not be delivered initially and may contain stale information\". Add a field to the admin-com import emails table to show this note as well. Update sent if send is successful #832 - IX-F Importer: suggested update when it should be add + remove In some edge cases a deletion will end up as a requirement incorrectly to a legitimate new entry still. See #770 #816 #831 - [prod] IX-F importer: NameError: name 'EmailMultiAlternatives' is not defined Fixes broken email function of ix-f importer #826 - Make technical poc mandatory when adding a netixlan Upon creating a netixlan object check that net has at least one ( Technical , NOC , Policy ) poc and that the poc has an e-mail address. If not ask them to create one first. Visibility of at least one ( Technical , NOC , Policy ) poc has to be \"Users\" resp. \"Public\" #825 - [beta] IX-F importer: Make Importer return non-zero when there is an error that Ops should see Improvements to ix-f importer that allow for easier notification and tracking of errors for the Ops team #824 - IX-F Preview - shows the consolidated delete operation when it shouldn't Simplified the UI for consolidated modifications to improve user understanding #759 - Describe the 'never-via-routeservers' flag Add tooltip for never-via-routeservers option: \"Indicates if this network will announce its routes via route servers or not\" #571 - Facility registration tool adds identifier Fixes small UI bug in facility registration tool used by the Admin Committee #481 - Add min_speed and max_speed to ixlan Based on the discussion in #475 adds a new global setting that limits netixlan speed values now. It's not a property on the ixlan anymore. #371 - Clean up users in verification queue A tool to delete user entries older than 90 days from the so-called verification queue and run it on a regular schedule #370 - Make Website mandatory for suggesting a facility Website is now mandatory when suggesting a facility but zipcode only mandatory for countries that have zipcodes #321 - Typos in locale Fixes a number of typographical errors","title":"Release 2.23.0"},{"location":"release_notes/release_notes_2020/#release-2220","text":"Beta Announcement Date: 15 July, 2020 Release Date: 26 August, 2020 GitHub issue Summary #249 - Add the IX-F Member Export URL to the ixlan API endpoint There are two new fields in the ixlan section resp. the ixlan object, called ixf_ixp_member_list_url and ixf_ixp_member_list_url_visible. The first one contains the URL to the IX-F import file while the second governs the visibility of the URL. Values are the same as for the poc object, namely \"Public\", \"Users\" and \"Private\", defaulting to \"Private\" (i.e. or users who are members of the org). #268 - Database: unique constraints This issue fixes internal DB behaviour. #358 - Lock ASN once the record is created Once a network has been created, the field asn is made read-only. As the ASN is unique there is no reason to change it. Making the field read-only is to prevent unwanted side effects. #431 - Null 'rencode' from facility Null out all values for legacy unused rencode field, and make it read only to prepare for removal in PDB v3 [#625] (https://github.com/peeringdb/peeringdb/issues/625). #600 - Visibility for \"Allow IXP update\" switch A new field is added to the API net object, called allow_ixp_update. Furthermore, a line is added in global stats in the footer with a count (called \"Automated Networks\") of the networks which have \"Allow IXP Update\" enabled. #649 - Possible for 'ok' ixpfx to exist in 'pending' ixlan This issue fixes an internal bug. #683 - Add net_count_ixf field to ix object A field is added to the API object ix, called net_count_ixf, which indicates the number of net objects the exchange has in their IX-F JSON if they provide one. Otherwise, the value is null. #696 - Lock some objects from being deleted by the owner To protect operational data objects fac, ix, ixlan and org are prevented from being deleted as long as there are other objects related to it. First, these objects must be deleted before the object itself can be deleted. The attempt to delete such a protected object gives an error message and also opens a ticket with the PeeringDB support. #697 - Creating, changing, and deleting a netixlan object We completely re-implemented the way a connection to an exchange is handled. This new procedure allows both for a safe heads up a network can give to their peers as well as a safe way for exchanges to get rid of stale entries. Moreover, it allows networks to easily acknowledge new entries at exchanges which use the IX-F importer feature. See also the webinar for detailed information on this new procedure.","title":"Release 2.22.0"},{"location":"release_notes/release_notes_2020/#release-2210","text":"Beta Announcement Date: 24 June, 2020 Release Date: 1 July, 2020 GitHub issue Summary #72 - Enable sort and reverse sort of IP column in IX display Sort and reverse sort of IP column in IX display are added. Sort of the IP addresses in the expected natural order. The IPv4 address is the primary sort key. The IPv6 address is the secondary key. #121 - missing delete button for organizations New feature. An admin user is able to delete an org if it has no live objects under it. #290 - Offer 2FA 2FA is offered now. The implementation includes optional 2FA using TOTP is offered there is a knob in the user profile to enable and set it up email recovery is added using the verified user email address an icon is added in the org admin section to denote to org admins if users have 2FA enabled #352 - Mark IXP peering LAN as bogon Allow IXP to tag their LAN prefixes as bogons. In general, LAN prefixes should not be visible in the DFZ. If it should be visible, IXPs are able to debogonise them #356 - Sorting by clicking table headers should use local-compare Bugfix. Sorting now honours locale-sorting #519 - Make spelling of traffic levels consistent This is a bug fix and a minor improvement. Spelling is made consistent and traffic levels up to 100+Tbps are added. #526 - Show \"Last Updated\" fields on fac, ix, org records A \"Last Updated\" field is visible now for fac, ix, and org objects #537 - Posting https://www.peeringdb.com onto social media doesn't select a good preview image Add opengraph image for page preview. #566 - Should deleted personal data be accessable through the API? If a poc object is deleted it is made immediately non-gettable via the API, too. In case the corresponding net object was deleted unintentionally the object is still kept in the DB. After 30 days it will be hard-deleted. #569 - Don't return any POC data with status=deleted POC objects do have a visibility scope. If a POC record is deleted it should not be able to retrieve it at all, even if visibility had been set to \"public\" before. The data will still be kept internally for 30 days for rollback if the deletion happened unintentionally. After 30 days the record will be hard-deleted. #580 - Add a clear error message, when user tries to re-add a previously deleted facility Bug fix for an unclear behaviour. If a connection from a network to a facility was deleted the user was unable to re-add this connection by themselves and an unclear error message was given. Now, the user is able to re-add the connection. #618 - Support alternative direction of writing, e.g. Arabic For right-to-left written languages, the entire layout of the PeeringDB website has to be flipped around. #644 - Undeleting an ixlan with an emtpy IPv4 XOR IPv6 field throws a silly error Bugfix for the Admin Committee UI. An empty field was considered to be a legit non-null value and the system hence enforced uniqueness #650 - Add pointer from API docs to tutorial A URL is added from the API documentation website to the PeeringDB tutorials #654 - Add pointer from API docs to tutorial Bugfix for the Admin Committee UI. #663 - change default encoding of API calls to 'utf-8' The output of API calls will change from content-type: application/json; charset=iso-8859-1 to content-type: application/json; charset=utf-8 #664 - Selection should only present undeleted objects Admin Committee only related. Only non-deleted should be presented for selection #666 - Selection should only present undeleted objects When changing owner of an ix admin GUI borks because of \"Ixlan for exchange already exists\" #669 - Add help text to \"Add {Facility, Network, Exchange} tab Added a better help text to make crystal clear that adding a Facility, Network, or Exchange means that you are owning this object. #679 - Add read-only Superuser Provide PC members with a read-only access to the Admin UI. #712 - User is unable to update their net record Bug fix. Missing pointer to where the non-compliant value is","title":"Release 2.21.0"},{"location":"release_notes/release_notes_2020/#release-2202","text":"Release Date: 23 April, 2020 GitHub issue Summary #707 - Make source not required for IRR records Making source not required for IRR records. This requirement was an oversight during implementation of [#151 - Validation of IRR Records] (https://github.com/peeringdb/peeringdb/issues/151) that was released with 2.20.0 - see below. Product Committee revisited the issue after 2.20.0 and reports of concern from community and decided to retract the requirement in an emergency release","title":"Release 2.20.2"},{"location":"release_notes/release_notes_2020/#release-2201","text":"Release Date: 21 April, 2020 GitHub issue Summary #702 - Requests from peeringdb-py error 500 Emergency release for a config change","title":"Release 2.20.1"},{"location":"release_notes/release_notes_2020/#release-2200","text":"Beta Announcement Date: 15 April, 2020 Release Date: 21 April, 2020 GitHub issue Summary #151 - Validation of IRR Records To make the IRR as-set/route-set field of more operational value, strict rules apply the as-set/rs-set name has to conform to RFC 2622 (5.1 and 5.2) the source may be specified by AS-SET@SOURCE or SOURCE::AS-SET (preferred) valid sources are taken from the list of known IRRs multiple values must be separated by either ,, , or , (i.e. comma, space or comma followed by space) #189 - Improve explanatory and help text A clear help text is added for requesting affiliation to an organization. #251 - Limit number of concurrent affiliation requests per user In order to reduce organization affiliation request spamming, the number of pending organization requests has been limited to 5. #295 Desk pro tickets -> DeskPRO tickets This is a bug fix and only affects the Admin UI. #378 - Add contact information for Facilities (fac) the same way as for ix and net Contact information is added to Facilities and IXP. #452 - Org/Network name of a sponsor should not link to /sponsors, only the sponsor badge should This is a bug fix. From now on only when clicking on the sponsor badge will direct to the sponsor page. #462 - Route-server URL starting with ssh:// Add SSH as supported protocol. #539 - Add attribute 'operational' to 'netixlan' This is a new feature and allows networks to give early notice to their peers that they soon will show up at an IXP. There is a new check box when adding an IXP connection. By default, a connection is considered operational and the box is ticked. When the connection is still in provisioning status, please untick the box. When viewing, the warning glyphicon is shown right to the network name. The correspondent API object netixlan is enhanced by a boolean field operational defaulting to true. This feature is in line with the Data Ownership Policy . #548 - containerize server Internal software deployment system has been changed to use containers which reduces time spent by the ops team for deployments, allows for better scaling, and reduces the cost of entry for new developers to write and test their code. #555 - Notes field translate button disappears This is a bug fix. The \"Translate\" button is there for a moment and then disappeared. #557 - Show all languages on beta, even if translation is not ready for prod As soon as a new translation is starting it is available on the beta to help the translators and to encourage the community for input. #598 - bug caused by the org affiliationship request without an asn This is a bug fix and is only relevant for the PeeringDB Admin Committee. #609 - When creating an ix via the API also return ixlan_id and ixpfx_id When creating an IX record via API, the call will also return the implicitly created ixlan_id and ixpfx_id. This makes it simpler and reduces the number of calls that need to be made to the API. #615 - Insert links into ID fields in DESKPRO AUTOASN tickets This only affects tickets generated for PeeringDB Admin Committee. A link to the object in the UI is added. #626 - Update API docs Internal mechanisms for generating the API docs have been updated to current standards. This also allows for easier user contributions to the docs themselves. #634 - Remove support for python2 Python 2.7 and 3.4 support is being removed from PeeringDB packages. #636 - Don't create a new net object, when there only is an ASN block This is a bug fix and is only relevant for the PeeringDB Admin Committee. #667 - Fix use autocomplete fields in the admincom controlpanel to speed up loading times This is a bug fix and is only relevant for the PeeringDB Admin Committee.","title":"Release 2.20.0"},{"location":"release_notes/release_notes_2021/","text":"2021 Release Notes The release notes list the GitHub issues and a summary of what has changed in PeeringDB software releases. Release notes for the current year are available on the Release Notes page. Each new release has a one week beta test period on the beta server before it goes live. The beta and new releases are announced on the PeeringDB Announce Mailing List and on Twitter , LinkedIn and Facebook . Release 2.32.0 Beta Announcement Date: 10 November 2021 Release Date: 17 November 2021 GitHub issue Summary #695 Auto focus cursor on search field on main website Places cursor in search box on first opening https://www.peeringdb.com #954 Rework ordering of dependencies Improved load speed for pages with large lists #748 PeeringDB website has a poor choice of line-breaks for IPv6 addresses IP addresses now have a no wrap style option so their numeric values aren't broken across lines #949 Add sales email and phone contact to ix object ix objects can now have a sales_email and sales_phone #838 Delete childless org objects Notifies admins of childless org s that they have no objects and deletes the org after 30 days if none are added #956 api documentation generate broken Fixes a bug that stopped the https://www.peeringdb.com/apidocs/ beingh updated automatically #962 Increase timeout timer for IX-F JSON importer to 30s Adds setting to control IX-F importer request timeout and default to 30 seconds #1054 IX-F manually triggered import bugs Fixes bugs triggered by manually importing IX-F data #807 [beta] IX-F importer: manual add followed by IX-F prompted add can result in \"The server rejected your data\" Resolves a bug triggered by manually adding netixlan in rare situations Release 2.31.0 Beta Announcement Date: 12 October 2021 Release Date: 20 October 2021 GitHub issue Summary #995 Block registering private ASN ranges Improves error message to user when attempting to register private ASNs and no longer automatically creates a support ticket #1007 Add a continental region field for facilities Continental region is now recorded for fac and is searchable from the advanced search page #18 IXP and Facility summary Presents a short statistical summary for ix 's and fac s #232 Incorrect order of search results ASNs will be moved to the top of the search results when a numeric search is an exact match for that ASN #346 Allow users to upload a small logo to their record orgs can now include a small logo in their record #453 Missing sponsor status in translations Fixed a bug so sponsor badges now show up properly in translations Release 2.30.0 Beta Announcement Date: 14 September 2021 Release Date: 22 September 2021 GitHub issue Summary #1944 Remove visibility \"Private\" from POC Make the \"Private\" visibility status invalid and requires an admin to review and update contacts when next making an update to their poc information #800 Additional self-selection fields for Facilities Adds additional fields to Facilities: Offered Space, Offered Power, Offered Resilience with appropriate details #1016 Add additional advanced search filters for new facility fields from #800 Adds the ability to search based on the new elements defined in #800 using Advanced Search #1032 Issue with api relationship filtering via __id Fixes a bug that impacted filtered searches made via the API #500 When network sets netixlan speed to 1200000 only 1T is shown instead of 1.2T ... sometimes Fixes a bug for speeds above 1Tb #1021 504 Gateway Time-out Fixes a timeout problem with the adminsitrative interface #1019 IX-F Importer: needless saves to deleted netixlans Fixes a bug that unnecessarily saved data to deleted objects Release 2.29.1 Release Date: 26 August 2021 GitHub issue Summary #1034 CORS Access-Control-Allow-Origin header missing in API responses Fixes an issue that stopped cross site API requests in the browser #1036 Issue with verification queue and deskpro ticket creation Fixes an issue that stopped newly created objects creating verification queue entries and a deskpro ticket Release 2.29.0 Beta Announcement Date: 18 August 2021 Release Date: 25 August 2021 GitHub issue Summary #779 Allow IXP to trigger ix-f importer for their exchange Exchanges can now trigger theIX-F importer and the UI communicates the status of the request #920 IX-F Importer: ticket status change when posting re-occuring conflict to existing resolved ticket Improve internal handling of IX-F importer conflicts #967 IX-F Importer: fix command output buffering Improve handling of output from IX-F importer command #903 Describe the 'DOT1Q' flag Set the field to false and made it read only (with a tooltip for the web interface) until v3 of the API #715 Support for Django 3 Upgrade to Django 3.2.1 and upgrade dependencies where possible #166 Add name, city, country to ixfac (GET operation) Add read-only fields name , city and country to object ixfac . The values for these fields are fac.name , fac.city and fac.country from the facility fac with id == fac_id #1023 Bug with email reports for internal errors Fixes an error with e-mail notifications for internal errors #1026 Fallback captcha solution is broken Fixes the fallback CAPTCHA on the account signup page #1013 The process to permanently remove old soft-deleted network contacts pdb_delete_pocs raises a false ProtectedAction Fixes a problem with adminsitrators permanently deleting contacts. #1015 Fallback captcha solution is broken Fixes a CAPTCHA bug affecting the AC through work on #715 Release 2.28.0 Beta Announcement Date: 14 July 2021 Release Date: 21 July 2021 GitHub issue Summary #23 make websearch smarter Provide a better search experience for quick search, advanced search and API filtering. The key features are properly indexed search, which supports search based on partial name matches, and geocoded search, which supports search based on coordinates. #965 IX-F importer: intermittent bug during consolidation of notifications Fixes a bug with the IX-F Member Export importer that resulted in intermittent import failures. #863 Improve error handling when a user tries to add an object which is already there Increases visibility of field validation error notes by increasing size and font weight. #375 On changing email address rescan open affiliation requests When a user changes their e-mail address we now automatically re-evaluate any open affiliation request that the user has that are tied to an ASN. #923 Prevent deletion of a last technical contact if there is an existing netixlan object Prevents deletion of the last technical contact of existing netixlan , i.e. enforce that netixlan should always have at least one technical contact Release 2.27.1 Beta Announcement Date: 19 May, 2021 Release Date: 26 May, 2021 GitHub issue Summary #946 Evaluate non-google map/geo sources Evaluated alternative geo data APIs and selected Melissa. #802 Extend Advanced Search for IXes and Facilities Adds search filters to advanced search (ix capacity search, organization presence search, and network presence search.) #799 Additional self-selection fields for IX objects Added service_level and terms fields to InternetExchange objects to allow exchanges to share additional ifnormation about their offering. These are supported as filters in the advanced search. #834 Add ix_count to object fac In the API, added a read-only field to fac called ix_count that counts the number of exchanges the linked to the facility). #835 Add {ix,fac}_count to object net In the API, added read-only fields to net called ix_count and fac_count that count the number of exchanges and facilities linked to the network). #836 Add fac_count to object ix In the API, added a read-only field to ix called fac_count that counts the number of facilities in which the exchange has a presence. #922 Circumvent approval of a facility by deleting and re-adding Fixed bug where if a user deletes a status \"pending\" fac, they can re-add it and it will be status \"ok\" (should be \"pending\"). #810 Get rid of the 'Protocols supported' fields / UI for IXes Removed proto_unicast , proto_multicast , and proto_ipv6 fields from ix UI. The fields remain in the v2 api but proto_ipv6 and proto_unicast will be populated from the existance of protocols in the exchange's ixpfx records. #985 500 Error on advanced search Resolved an issue where unauthenticated users got a 500 error in advanced search. Release 2.26.1 Beta Announcement Date: 14 April, 2021 Release Date: 21 April, 2021 GitHub issue Summary #883 IXF-Importer: minimise emails to Support/DeskPRO/AC This change collates all importer suggestions into a single e-mail notification. #931 Limit the number of requests for affiliation to an ASN/org to 1 Limits the number of affiliation request to an ASN to just one. Provides visual feedback on subsequent request attempts. #913 API should do an IP6 address instead of a string match Normalizes how IPv6 addresses are stored in the database and updates existing IPv6 addresses in the databases and elsewhere. Release 2.26.0 Beta Announcement Date: 10 March, 2021 Release Date: 24 March, 2021 GitHub issue Summary #266 Add API Keys This release introduces organization level API Keys . #827 Make GUI and API feature equivalent PeeringDB has a GUI and an API. This issue is a reminder to keep both feature equivalent. #865 Allow arbitrary decimal places as input for longitude and latitude. Systems rounds to six Allow arbitrary length of inputs to latitude and longitude. Round to 6 digits (including Google Maps output). #902 Add \"long name\" or \"aka\" field to 'fac' records add fields aka and name_long to object fac , ix , net , and org . #937 Geocode for org is broken This was fixed through work on #940. #939 Replace Validation Error with Validation \"Warning\" for geolocation validation If our address validation service cannot find an address corresponding to the user-inputed address it will allow the object to be saved and raise a \"validation warning\" in the meta object of the API response. The web UI will display a pop-up based on this warning. #940 Return geo-normalized fields as \"suggested address\" In an effort to normalize addresses, the system may overwrite the user input. In case of a mismatch, the user now is prompted with a \"suggested address\" and either confirms or rejects. In case of rejection, the address is taken as provided by the user. Please keep an eye on what you provided and what is suggested. The suggestion may flip street name and house name as well as cut off postal codes. #918 drop travis ci and move to github actions Changed CI environment to improve deployment speed. Release 2.25.0 Release Date: 3 February, 2021 GitHub issue Summary #246 IXF should be IX-F This release introduces various spelling corrections. #828 IX-F importer: Handle ipv4/ipv6 on same vlan but separate connections This issue deals with how the IX-F importer handles information from the IX-F JSON import. PeeringDB handles both the IPv4 as well as the IPv6 address in the same object ( netixlan ). And from a peering partner pov this is ok as it doesn't matter whether these addresses are on the same interface or even same router. However, IX-F JSON differentiates. For the time being, the importer combines IPv4 and IPv6 if both are set to an operational status in the IX-F JSON. #846 IX-F importer: if ixf_ixp_member_list_url is null then ixf_ixp_import_enabled can't be true Apply logic to the meaning of ixf_ixp_member_list_url . i.e. only allow ixf_ixp_import_enabled to be set to true if a URL is specified. #875 \"IXF-Importer: improved handling of how contacts are joined into direct conflict resolution deskpro tickets\" Resolved an issue where responses to automatically generated Deskpro tickets were routed to the wrong ticket. #878 IXF-Importer: reorder of email content This is mainly an internal improvement. And fixes also not disclosing private IXP information to the public. #882 IXF-Importer: don't abort when there is nothing to import If there is nothing to import from an IX-F JSON don't abort with an error message. #893 IX-F Importer: history of changes per ixlan & netixlan Fixed bug related to the logging of importer changes. #896 IX-F Importer: Bogus output of \"Preview\" tool Fixed a bug in the preview tool, where invalid member type ignored messages weren't filtered for the network viewing the preview. #888 Type issue when overriding settings through environment variables for numeric types Fixed a bug and now ensure that overrides are coerced to the correct expected type. #872 Update dependencies Updated container to python 3.9 and addressed all dependencies. #694 add syntactic sugar for entering port speeds Simplifies the UI for editing port speeds to make it more human friendly. #717 Loading time issue /cp facility view Fixed slow load or timeouts for loading data for some facilities #837 Provide a friendlier explanation when entering / changing a phone number Provides a tooltip to help people enter E.164 formatted telephone numbers. #541 When looking at a network record, show last updated ix<->net or fac<->net date Improved information about when records were last updated.","title":"2021 Release Notes"},{"location":"release_notes/release_notes_2021/#2021-release-notes","text":"The release notes list the GitHub issues and a summary of what has changed in PeeringDB software releases. Release notes for the current year are available on the Release Notes page. Each new release has a one week beta test period on the beta server before it goes live. The beta and new releases are announced on the PeeringDB Announce Mailing List and on Twitter , LinkedIn and Facebook .","title":"2021 Release Notes"},{"location":"release_notes/release_notes_2021/#release-2320","text":"Beta Announcement Date: 10 November 2021 Release Date: 17 November 2021 GitHub issue Summary #695 Auto focus cursor on search field on main website Places cursor in search box on first opening https://www.peeringdb.com #954 Rework ordering of dependencies Improved load speed for pages with large lists #748 PeeringDB website has a poor choice of line-breaks for IPv6 addresses IP addresses now have a no wrap style option so their numeric values aren't broken across lines #949 Add sales email and phone contact to ix object ix objects can now have a sales_email and sales_phone #838 Delete childless org objects Notifies admins of childless org s that they have no objects and deletes the org after 30 days if none are added #956 api documentation generate broken Fixes a bug that stopped the https://www.peeringdb.com/apidocs/ beingh updated automatically #962 Increase timeout timer for IX-F JSON importer to 30s Adds setting to control IX-F importer request timeout and default to 30 seconds #1054 IX-F manually triggered import bugs Fixes bugs triggered by manually importing IX-F data #807 [beta] IX-F importer: manual add followed by IX-F prompted add can result in \"The server rejected your data\" Resolves a bug triggered by manually adding netixlan in rare situations","title":"Release 2.32.0"},{"location":"release_notes/release_notes_2021/#release-2310","text":"Beta Announcement Date: 12 October 2021 Release Date: 20 October 2021 GitHub issue Summary #995 Block registering private ASN ranges Improves error message to user when attempting to register private ASNs and no longer automatically creates a support ticket #1007 Add a continental region field for facilities Continental region is now recorded for fac and is searchable from the advanced search page #18 IXP and Facility summary Presents a short statistical summary for ix 's and fac s #232 Incorrect order of search results ASNs will be moved to the top of the search results when a numeric search is an exact match for that ASN #346 Allow users to upload a small logo to their record orgs can now include a small logo in their record #453 Missing sponsor status in translations Fixed a bug so sponsor badges now show up properly in translations","title":"Release 2.31.0"},{"location":"release_notes/release_notes_2021/#release-2300","text":"Beta Announcement Date: 14 September 2021 Release Date: 22 September 2021 GitHub issue Summary #1944 Remove visibility \"Private\" from POC Make the \"Private\" visibility status invalid and requires an admin to review and update contacts when next making an update to their poc information #800 Additional self-selection fields for Facilities Adds additional fields to Facilities: Offered Space, Offered Power, Offered Resilience with appropriate details #1016 Add additional advanced search filters for new facility fields from #800 Adds the ability to search based on the new elements defined in #800 using Advanced Search #1032 Issue with api relationship filtering via __id Fixes a bug that impacted filtered searches made via the API #500 When network sets netixlan speed to 1200000 only 1T is shown instead of 1.2T ... sometimes Fixes a bug for speeds above 1Tb #1021 504 Gateway Time-out Fixes a timeout problem with the adminsitrative interface #1019 IX-F Importer: needless saves to deleted netixlans Fixes a bug that unnecessarily saved data to deleted objects","title":"Release 2.30.0"},{"location":"release_notes/release_notes_2021/#release-2291","text":"Release Date: 26 August 2021 GitHub issue Summary #1034 CORS Access-Control-Allow-Origin header missing in API responses Fixes an issue that stopped cross site API requests in the browser #1036 Issue with verification queue and deskpro ticket creation Fixes an issue that stopped newly created objects creating verification queue entries and a deskpro ticket","title":"Release 2.29.1"},{"location":"release_notes/release_notes_2021/#release-2290","text":"Beta Announcement Date: 18 August 2021 Release Date: 25 August 2021 GitHub issue Summary #779 Allow IXP to trigger ix-f importer for their exchange Exchanges can now trigger theIX-F importer and the UI communicates the status of the request #920 IX-F Importer: ticket status change when posting re-occuring conflict to existing resolved ticket Improve internal handling of IX-F importer conflicts #967 IX-F Importer: fix command output buffering Improve handling of output from IX-F importer command #903 Describe the 'DOT1Q' flag Set the field to false and made it read only (with a tooltip for the web interface) until v3 of the API #715 Support for Django 3 Upgrade to Django 3.2.1 and upgrade dependencies where possible #166 Add name, city, country to ixfac (GET operation) Add read-only fields name , city and country to object ixfac . The values for these fields are fac.name , fac.city and fac.country from the facility fac with id == fac_id #1023 Bug with email reports for internal errors Fixes an error with e-mail notifications for internal errors #1026 Fallback captcha solution is broken Fixes the fallback CAPTCHA on the account signup page #1013 The process to permanently remove old soft-deleted network contacts pdb_delete_pocs raises a false ProtectedAction Fixes a problem with adminsitrators permanently deleting contacts. #1015 Fallback captcha solution is broken Fixes a CAPTCHA bug affecting the AC through work on #715","title":"Release 2.29.0"},{"location":"release_notes/release_notes_2021/#release-2280","text":"Beta Announcement Date: 14 July 2021 Release Date: 21 July 2021 GitHub issue Summary #23 make websearch smarter Provide a better search experience for quick search, advanced search and API filtering. The key features are properly indexed search, which supports search based on partial name matches, and geocoded search, which supports search based on coordinates. #965 IX-F importer: intermittent bug during consolidation of notifications Fixes a bug with the IX-F Member Export importer that resulted in intermittent import failures. #863 Improve error handling when a user tries to add an object which is already there Increases visibility of field validation error notes by increasing size and font weight. #375 On changing email address rescan open affiliation requests When a user changes their e-mail address we now automatically re-evaluate any open affiliation request that the user has that are tied to an ASN. #923 Prevent deletion of a last technical contact if there is an existing netixlan object Prevents deletion of the last technical contact of existing netixlan , i.e. enforce that netixlan should always have at least one technical contact","title":"Release 2.28.0"},{"location":"release_notes/release_notes_2021/#release-2271","text":"Beta Announcement Date: 19 May, 2021 Release Date: 26 May, 2021 GitHub issue Summary #946 Evaluate non-google map/geo sources Evaluated alternative geo data APIs and selected Melissa. #802 Extend Advanced Search for IXes and Facilities Adds search filters to advanced search (ix capacity search, organization presence search, and network presence search.) #799 Additional self-selection fields for IX objects Added service_level and terms fields to InternetExchange objects to allow exchanges to share additional ifnormation about their offering. These are supported as filters in the advanced search. #834 Add ix_count to object fac In the API, added a read-only field to fac called ix_count that counts the number of exchanges the linked to the facility). #835 Add {ix,fac}_count to object net In the API, added read-only fields to net called ix_count and fac_count that count the number of exchanges and facilities linked to the network). #836 Add fac_count to object ix In the API, added a read-only field to ix called fac_count that counts the number of facilities in which the exchange has a presence. #922 Circumvent approval of a facility by deleting and re-adding Fixed bug where if a user deletes a status \"pending\" fac, they can re-add it and it will be status \"ok\" (should be \"pending\"). #810 Get rid of the 'Protocols supported' fields / UI for IXes Removed proto_unicast , proto_multicast , and proto_ipv6 fields from ix UI. The fields remain in the v2 api but proto_ipv6 and proto_unicast will be populated from the existance of protocols in the exchange's ixpfx records. #985 500 Error on advanced search Resolved an issue where unauthenticated users got a 500 error in advanced search.","title":"Release 2.27.1"},{"location":"release_notes/release_notes_2021/#release-2261","text":"Beta Announcement Date: 14 April, 2021 Release Date: 21 April, 2021 GitHub issue Summary #883 IXF-Importer: minimise emails to Support/DeskPRO/AC This change collates all importer suggestions into a single e-mail notification. #931 Limit the number of requests for affiliation to an ASN/org to 1 Limits the number of affiliation request to an ASN to just one. Provides visual feedback on subsequent request attempts. #913 API should do an IP6 address instead of a string match Normalizes how IPv6 addresses are stored in the database and updates existing IPv6 addresses in the databases and elsewhere.","title":"Release 2.26.1"},{"location":"release_notes/release_notes_2021/#release-2260","text":"Beta Announcement Date: 10 March, 2021 Release Date: 24 March, 2021 GitHub issue Summary #266 Add API Keys This release introduces organization level API Keys . #827 Make GUI and API feature equivalent PeeringDB has a GUI and an API. This issue is a reminder to keep both feature equivalent. #865 Allow arbitrary decimal places as input for longitude and latitude. Systems rounds to six Allow arbitrary length of inputs to latitude and longitude. Round to 6 digits (including Google Maps output). #902 Add \"long name\" or \"aka\" field to 'fac' records add fields aka and name_long to object fac , ix , net , and org . #937 Geocode for org is broken This was fixed through work on #940. #939 Replace Validation Error with Validation \"Warning\" for geolocation validation If our address validation service cannot find an address corresponding to the user-inputed address it will allow the object to be saved and raise a \"validation warning\" in the meta object of the API response. The web UI will display a pop-up based on this warning. #940 Return geo-normalized fields as \"suggested address\" In an effort to normalize addresses, the system may overwrite the user input. In case of a mismatch, the user now is prompted with a \"suggested address\" and either confirms or rejects. In case of rejection, the address is taken as provided by the user. Please keep an eye on what you provided and what is suggested. The suggestion may flip street name and house name as well as cut off postal codes. #918 drop travis ci and move to github actions Changed CI environment to improve deployment speed.","title":"Release 2.26.0"},{"location":"release_notes/release_notes_2021/#release-2250","text":"Release Date: 3 February, 2021 GitHub issue Summary #246 IXF should be IX-F This release introduces various spelling corrections. #828 IX-F importer: Handle ipv4/ipv6 on same vlan but separate connections This issue deals with how the IX-F importer handles information from the IX-F JSON import. PeeringDB handles both the IPv4 as well as the IPv6 address in the same object ( netixlan ). And from a peering partner pov this is ok as it doesn't matter whether these addresses are on the same interface or even same router. However, IX-F JSON differentiates. For the time being, the importer combines IPv4 and IPv6 if both are set to an operational status in the IX-F JSON. #846 IX-F importer: if ixf_ixp_member_list_url is null then ixf_ixp_import_enabled can't be true Apply logic to the meaning of ixf_ixp_member_list_url . i.e. only allow ixf_ixp_import_enabled to be set to true if a URL is specified. #875 \"IXF-Importer: improved handling of how contacts are joined into direct conflict resolution deskpro tickets\" Resolved an issue where responses to automatically generated Deskpro tickets were routed to the wrong ticket. #878 IXF-Importer: reorder of email content This is mainly an internal improvement. And fixes also not disclosing private IXP information to the public. #882 IXF-Importer: don't abort when there is nothing to import If there is nothing to import from an IX-F JSON don't abort with an error message. #893 IX-F Importer: history of changes per ixlan & netixlan Fixed bug related to the logging of importer changes. #896 IX-F Importer: Bogus output of \"Preview\" tool Fixed a bug in the preview tool, where invalid member type ignored messages weren't filtered for the network viewing the preview. #888 Type issue when overriding settings through environment variables for numeric types Fixed a bug and now ensure that overrides are coerced to the correct expected type. #872 Update dependencies Updated container to python 3.9 and addressed all dependencies. #694 add syntactic sugar for entering port speeds Simplifies the UI for editing port speeds to make it more human friendly. #717 Loading time issue /cp facility view Fixed slow load or timeouts for loading data for some facilities #837 Provide a friendlier explanation when entering / changing a phone number Provides a tooltip to help people enter E.164 formatted telephone numbers. #541 When looking at a network record, show last updated ix<->net or fac<->net date Improved information about when records were last updated.","title":"Release 2.25.0"},{"location":"release_notes/release_notes_2022/","text":"2022 Release Notes The release notes list the GitHub issues and a summary of what has changed in PeeringDB software releases. Release notes for the current year are available on the Release Notes page. Each new release has a one week beta test period on the beta server before it goes live. The beta and new releases are announced on the PeeringDB Announce Mailing List and on Twitter , LinkedIn and Facebook . Release 2.42.0 Beta Announcement Date: 9 November 2022 Release Date: 16 November 2022 GitHub issue Summary #983 Allow REALPEER to overwrite GHOSTPEER netixlan entry, if asn and IPv6/v4 addresses matches the IX-F Members Export information Improve the quality of IXP data delivered through IX-F Imports for cases when a network disconnects from an IXP but does not update their PeeringDB record. #1153 Exporting Advanced Search broken Fixes a bug that stopped users exporting some searches as structured data. #1091 Adjust \"Add Facility\" menu to include newly defined fields Newly defined fac fields, such as available voltage services, can now be entered when creating the Facility. #1253 Reset IX-F suggestions link non-functional Fixes a link that presents users with suggestions. #758 Lightweight user notification mechanism Introduce a mechanism to alert logged in web users to upcoming changes. #1250 UI shows own email when viewing affiliation requests for an organization Fixes a bug that showed organization admins their own email address instead of the user requesting affiliation. #1234 Transition from lgtm.com before the service ends Migrate to a new CI service. #1168 Ops: Throttle strings with \"Response size\" should be renamed \"Repeated request\" Improve the quality of error messages related to usage throttling. #953 User may request affiliation with a deleted organisation Fixes a bug that allowed users to request affiliation with a deleted organization. #659 Improve readability when users have special permissions Makes a support screen easier to read. #924 Allow change of ixpfx Improves automation for updating records associated with IXP peering LANs. #1270 Enable Google Analytics for beta.peeringdb.com Introduces Google Analytics for beta.peeringdb.com. More details . #1224 Internal admins only: console 504 time-out bug for ix history Fixes a timeout error affecting PeeringDB Admins. #1283 Footer \"Global System Statistics\" should be cached within django instance, not updated with every page load Introduces cacheing for the Global System Statistics data on each page. Release 2.41.1 Release Date: 26 October 2022 GitHub issue Summary #1275 Missing allowed sources for scripts Adds in some missing sources that were stopping /apidocs and CAPTCHA from working. Release 2.41.0 Beta Announcement Date: 12 October 2022 Release Date: 26 October 2022 GitHub issue Summary #586 Add export tool to https://peeringdb.com/cp/peeringdb_server/$type Adds new data exports on CSV format. #1044 Adding a POC must require an email address or phone number Points of Contact must now have either an email address or a phone number. #1244 IX-F importer fails on nulled ipv4 / ipv6 properties in vlan_list entries Fixes a bug where the IX-F importer would raise an error when encountering null values for ipv6 or ipv4 properties in the vlan_list property . #1216 RIR Status update misses ASNs Fixes a bug in the way RIR status is recorded for networks. #1223 Invalid data (in choice fields) found via API Fixes a bug where some records had invalid values. #1198 Add automated testing at the browser level Introduces automated testing for web functionality. #1149 HTTP 404 for dom-purify/purify.min.js.map and showdown/showdown.min.js.map Fixes a JS problem affecting several popular browsers. #1234 Transition from lgtm.com before the service ends Ensures continuity of continuous security analysis now after lgtm.com closes. Release 2.40.0 Beta Announcement Date: 14 September 2022 Release Date: 21 September 2022 GitHub issue Summary #736 Periodic validation of user's contact information Organizations can now require affiliated users to revalidate their accounts after a number of days chosen by the organization. #737 Restrict email domains for organizations Organizations can now require users to have an email address using a specific domain to affiliate with the organization. #484 Show username and email address when user is logged in User will now see their username and email address when logged in to the website. #738 Allow multiple email addresses per user User can have multiple email addresses associated with an account. #907 User email address change should notify previous email Users will now be notified at the old address when replacing their email address. #947 Make it possible to display the TOTP secret in text form instead of QR code only When setting up TOTP MFA, users can now see the secret as well as a QR code. #267 remove users with duplicate emails The user database has been cleaned so that only one user account can have an email address. #380 DB clean-up of elderly ophaned user accounts Users are notified when their account is not associated with an organization for 60 days. The account is removed a month later if not associated with an organization. #1157 An account with admin status can not have permissions When users gain admin status for an organization they now lose all granular permissions as they have all permissions. #468 Have the \"Select language\" drop down sorted Translation language names are now sorted alphabetically in English with the translated version of the language name presented alongside. #1202 Add Support for Enums against Locale Field Validates that languages are supported by translations. #1203 Validate Local Field against set of Enums Improves error handling when users set invalid languages. #499 Trigger IX-F import when network sets allow_ixp_update to \"yes\" An IX-F import is now triggered when a network sets allow_ixp_update to yes. #1213 robots.txt needed, at a minimum to limit bots from creating Django sessions Added robots.txt files to stop search engines indexing pages that shouldn't be indexed. #1210 UX Bugs Fixes several bugs introduced with the big UX dependency updates rolled out with 2.38. #959 ASNAUTO tool broken Fixes an issue with the ASNAuto tool sending out incorrect manual approval requests. #981 Error-handling of failed creation of DeskPRO tickets Fixes a problem with the creation of support tickets. #1150 Ops: Log Melissa payload in django.log Fixes a logging issue for the Ops team. #1228 Change \"Resul length\" to \"Result length\" Fixes a typo. This release also introduced a change for updates made with the API. These operations must now be authenticated with an API Key. Our HOWTO document explains how to get started using API Keys. Release 2.39.0 Beta Announcement Date: 20 July 2022 Release Date: 27 July 2022 GitHub issue Summary #473 add rir_* fields to keep track of ASN status Improve data quality by adding fields that will allow us to perform statical analysis and remove ASNs when no longer assigned. #1203 Validate Local Field against set of Enums Improvements to error handling should a user mischievously send junk data. #1205 Ops: Limit Django sessions to pages that need it Django sessions are now limited to pages that need it. #941 Organization Merging Tool only offers the first 10 matches Improve the organization merge tool for admins. #1043 AC Change User Permission broken Fixes a bug that did not remove users from an organization when it was deleted. #1157 An account with admin status can not have permissions Fixes a bug that did not remove granular permissions for an organization when a users was upgraded to an admin. #1135 #727 RS Peer Checkbox followup changes Cosmetic changes to the RS Peer Checkbox. Release 2.38.2 Release Date: 24 June 2022 GitHub issue Summary #1194 Advanced search issues Fixes a bug that stopped advanced search from delivering results. #1195 UI: active tabs no longer highlighted after switching Fixes a bug that stopped the current tab being highlighted in active search after changing tab. Release 2.38.0 Beta Announcement Date: 15 June 2022 Release Date: 22 June 2022 GitHub issue Summary #930 Admin user is missing the \"Edit\" button Fixes a bug that prevented users from editing their entries. #963 Add the IX name and id to IX-F Import Emails Addresses messages to exchange operators more clearly. #879 Add \"Last login\" to https://peeringdb.com/cp/peeringdb_server/user/ Let's the Admin Committee know who from an organization most recently logged in. #1057 Force users to provide input for first / last names when registering with PeeringDB Use the username instead of formal name in tickets when it's not registered. #660 Bug in renumbering tool Fixes a bug with the renubering tool. #1172 Ops: Exempt superusers (PeeringDB Admin Committee & Operations Committee admins) from throttling API and Melissa request throttling is no longer applied to authenticated admin users. #1177 Locale field update has uncaught exception Fixes a bug where a logged in user could send data that generated DataError and Internal Server Error. Exceptions are now caught appropriately and return relevant errors to users. #1174 Insecure Dependencies Upgrades three dependencies to newer versions that address known vulnerabilities. #1186 Browser caches OAuth2 application client secrets Fixes a bug that allowed browsers to cache the OAuth2 application details page. #1184 Tie CSRF token to session Fixes a bug by binding the session ID and the CSRF token together to reduce the risk that an old token is misused. Release 2.37.0 Beta Announcement Date: 11 May 2022 Release Date: 17 May 2022 GitHub issue Summary #403 Notify a record holder when there is an automated change to the profile Notifications are now sent when PeeringDB administrators make changes to records. #1155 Feature Request: Promote OAuth application to admin-level access? Adds organization level OAuth app management and allows organizations to transfer existing OAuth apps tied to their users to the organization. #942 Failure on Admin Organization Merge Fixes a big that prevented PeeringDB Admins from merging organizations. #960 Change any \"Primary ASN\" to \"ASN\" Replaces the phrase \"Primary ASN\" with \"ASN\" everywhere as the Primary ASN concept does not exist in PeeringDB 2.0. #986 Add link to release notes to the footer of www.peeringdb.com Release notes are now linked from the footer, making them easier for all users to find. Release 2.36.0 Beta Announcement Date: 13 April 2022 Release Date: 11 May 2022 GitHub issue Summary peeringdb-py #62 Support User & Org API keys Adds API keys support for the peeringdb-py cacheing client. #1079 Normalize the names of states & provinces for various objects Normalizes names for states and provinces, improving search experience. #784 Do not show objects in status \"pending\" on the UI Objects that do not have an OK status are no longer returned in search results. #996 500 Error during login for 2FA enabled accounts with unverified email address Fixes a bug that generated a 500 error when logging in with an account whose e-mail address had not been verified. #845 Need consolidated app logs Improvements to logging. #1119 Some command-line-tool executions are not logged Improves logging so AC tools can undo actions. #1120 Ops: response header X-Auth-ID to augment logging Logs the user for requested authenticated by API keys allowing them to be contacted. #1121 Ops: API throttling needs customizable messages API requests can now be throttled with custom return code (HTTP 429). #1122 Logging for melissa (geo-address normalization) queries Adds support for logging geosearch queries to the external API. #1124 Allow rate-limiting of melissa enabled api functionality. Adds support for rate-limiting the geosearch features that rely on an external API. #1126 Ops: API throttling of repeated requests Adds support for throttling repeated requests. #1096 Clicking on Facility history in AC GUI throws 500 Fixes a bug that hid fac history. #1035 Django-Admin: adding a network with existing asn fails with internal error Fixes a bug that returned a 500 error when a user attempted to add a net with the same ASN as an existing object. It now returns a more helpful validation error. Release 2.35.0 Beta Announcement Date: 8 March 2022 Release Date: 22 March 2022 GitHub issue Summary #506 Add \"Management\" search field to Advanced Search of Exchanges Allows users to search for IXPs based on the organization that operates the IXP. #727 RS Peer Checkbox also visible on IX Site Information about networks claiming to peer with the Route Server is now shown on the IXP's page. #512 New Field \"Health Check\" Networks, IXPs, and Facilities can now link to a status dashboard page. #653 missing delete button for user There is now a button to delete a user account directly through the web interface. #656 Sort user IDs in https://www.peeringdb.com/cp/peeringdb_server/userpermission/xxxxx numerically Fixes the sorting order of user IDs, so they are now sorted in numerical order. #881 wrap correctly on mobile The ASN column on mobile view will show seven digits before wrapping the number. #908 2FA Backup Tokens language doesn't seem correct Fixes the backup tokens language for 2FA. #916 To force or not to force www, that is a question Forces https://www.peeringdb.com as the URL for PeeringDB, enabling other improvements. Some clients will need to adjust their endpoints to use www.peeringdb.com. curl users will want to use the -L flag. #1042 Long caching of deleted entries Fixes a problem where deleted objects continued to be returned because of cacheing. #1117 Bad API keys need to return 401 just like a bad user/pass. Presently they return 200 Fixes a problem where corrupt or expired or bogus API key simply resulted in an anonymous user session. Release 2.34.0 Beta Announcement Date: 9 February 2022 Release Date: 16 February 2022 GitHub issue Summary #722 Create a validation tool for syntactically well defined fields Introduces a tool to improve data quality by validating syntactically well defined fields. #853 substantially rate limit unauthenticated /api/ queries to encourage authenticated queries Introduces rate limiting for unauthenticated API queries to reduce the possibility of service impacting queries. #620 Add organisations and registered users to \"Global System Statistics\" in footer Adds the number of registered users to the footer, giving users a better idea of the size of the interconnection community. Release 2.33.0 Beta Announcement Date: 12 January 2022 Release Date: 19 January 2022 GitHub issue Summary #1083 Nanog 83 Hackathon improvements to the PeeringDB Website When using simple search on the front page of www.peeringdb.com (or via the API) searches for numbers return the most relevant results. Key changes include: searching for a short ASN returns just that network, and searches for two segments of an IP address are required to return related ix and net objects. #1070 OpenID Connect integration Allows organizations using PeeringDB to enable an identity federation with a managed service. #692 Add FIDO U2F 2FA support Adds support for FIDO U2F hardware tokens, allowing users to enable 2FA without relying on a TOTP app. #1033 Clicking \"Add\" to add a user api-key without providing a name for the key raises Internal Error Fixes a bug where unnamed user api-keys could not be added and there was just an internal error. #374 make URL required for new objects A URL to a website is now required when adding new objects. #469 Add IXP to AS record / dropdown limited Fixes a bug that limited the number of entries in the dropdown menu when adding an ix to a net . #284 global stats don't show up at login screen Global stats are now shown at the login web page. #874 Better error message when entering the wrong password for email change Improved the error message when entering the wrong password for an e-mail change. #365 Username retrieval non-existant email bug Fixes a bug where we attempted to send mail to non-existant addresses. #735 Cascade delete when performed by superuser Admin users can now cascade delete through the admin interface. #901 Creating a facility that matches the name of a soft-deleted facility will cause the entry to bypass the verification queue Fixes a bug where fac creation could bypass the validation process. #921 irr source validator doesn't allow for hyphens in source IRRs with a hyphen in the name, like ARIN-NONAUTH, are now supported. #1060 \"HARAKIRI ON WORKER\" issues need to be resolved Fixes an operational issue. #1062 Registering a new facility or exchange organization is broken Fixes a bug that prevented new fac and ix objects to be registered. #1077 Possible for \"pending\" exchange to have \"deleted\" ixlan Fixes a bug that allowed linked ix objects to jhave a different status, affecting API sync. #1088 Tweaks for empty organization clean up Fixes a bug that allowed sponsor organizations to be deleted by an automatic process when they should not be.","title":"2022 Release Notes"},{"location":"release_notes/release_notes_2022/#2022-release-notes","text":"The release notes list the GitHub issues and a summary of what has changed in PeeringDB software releases. Release notes for the current year are available on the Release Notes page. Each new release has a one week beta test period on the beta server before it goes live. The beta and new releases are announced on the PeeringDB Announce Mailing List and on Twitter , LinkedIn and Facebook .","title":"2022 Release Notes"},{"location":"release_notes/release_notes_2022/#release-2420","text":"Beta Announcement Date: 9 November 2022 Release Date: 16 November 2022 GitHub issue Summary #983 Allow REALPEER to overwrite GHOSTPEER netixlan entry, if asn and IPv6/v4 addresses matches the IX-F Members Export information Improve the quality of IXP data delivered through IX-F Imports for cases when a network disconnects from an IXP but does not update their PeeringDB record. #1153 Exporting Advanced Search broken Fixes a bug that stopped users exporting some searches as structured data. #1091 Adjust \"Add Facility\" menu to include newly defined fields Newly defined fac fields, such as available voltage services, can now be entered when creating the Facility. #1253 Reset IX-F suggestions link non-functional Fixes a link that presents users with suggestions. #758 Lightweight user notification mechanism Introduce a mechanism to alert logged in web users to upcoming changes. #1250 UI shows own email when viewing affiliation requests for an organization Fixes a bug that showed organization admins their own email address instead of the user requesting affiliation. #1234 Transition from lgtm.com before the service ends Migrate to a new CI service. #1168 Ops: Throttle strings with \"Response size\" should be renamed \"Repeated request\" Improve the quality of error messages related to usage throttling. #953 User may request affiliation with a deleted organisation Fixes a bug that allowed users to request affiliation with a deleted organization. #659 Improve readability when users have special permissions Makes a support screen easier to read. #924 Allow change of ixpfx Improves automation for updating records associated with IXP peering LANs. #1270 Enable Google Analytics for beta.peeringdb.com Introduces Google Analytics for beta.peeringdb.com. More details . #1224 Internal admins only: console 504 time-out bug for ix history Fixes a timeout error affecting PeeringDB Admins. #1283 Footer \"Global System Statistics\" should be cached within django instance, not updated with every page load Introduces cacheing for the Global System Statistics data on each page.","title":"Release 2.42.0"},{"location":"release_notes/release_notes_2022/#release-2411","text":"Release Date: 26 October 2022 GitHub issue Summary #1275 Missing allowed sources for scripts Adds in some missing sources that were stopping /apidocs and CAPTCHA from working.","title":"Release 2.41.1"},{"location":"release_notes/release_notes_2022/#release-2410","text":"Beta Announcement Date: 12 October 2022 Release Date: 26 October 2022 GitHub issue Summary #586 Add export tool to https://peeringdb.com/cp/peeringdb_server/$type Adds new data exports on CSV format. #1044 Adding a POC must require an email address or phone number Points of Contact must now have either an email address or a phone number. #1244 IX-F importer fails on nulled ipv4 / ipv6 properties in vlan_list entries Fixes a bug where the IX-F importer would raise an error when encountering null values for ipv6 or ipv4 properties in the vlan_list property . #1216 RIR Status update misses ASNs Fixes a bug in the way RIR status is recorded for networks. #1223 Invalid data (in choice fields) found via API Fixes a bug where some records had invalid values. #1198 Add automated testing at the browser level Introduces automated testing for web functionality. #1149 HTTP 404 for dom-purify/purify.min.js.map and showdown/showdown.min.js.map Fixes a JS problem affecting several popular browsers. #1234 Transition from lgtm.com before the service ends Ensures continuity of continuous security analysis now after lgtm.com closes.","title":"Release 2.41.0"},{"location":"release_notes/release_notes_2022/#release-2400","text":"Beta Announcement Date: 14 September 2022 Release Date: 21 September 2022 GitHub issue Summary #736 Periodic validation of user's contact information Organizations can now require affiliated users to revalidate their accounts after a number of days chosen by the organization. #737 Restrict email domains for organizations Organizations can now require users to have an email address using a specific domain to affiliate with the organization. #484 Show username and email address when user is logged in User will now see their username and email address when logged in to the website. #738 Allow multiple email addresses per user User can have multiple email addresses associated with an account. #907 User email address change should notify previous email Users will now be notified at the old address when replacing their email address. #947 Make it possible to display the TOTP secret in text form instead of QR code only When setting up TOTP MFA, users can now see the secret as well as a QR code. #267 remove users with duplicate emails The user database has been cleaned so that only one user account can have an email address. #380 DB clean-up of elderly ophaned user accounts Users are notified when their account is not associated with an organization for 60 days. The account is removed a month later if not associated with an organization. #1157 An account with admin status can not have permissions When users gain admin status for an organization they now lose all granular permissions as they have all permissions. #468 Have the \"Select language\" drop down sorted Translation language names are now sorted alphabetically in English with the translated version of the language name presented alongside. #1202 Add Support for Enums against Locale Field Validates that languages are supported by translations. #1203 Validate Local Field against set of Enums Improves error handling when users set invalid languages. #499 Trigger IX-F import when network sets allow_ixp_update to \"yes\" An IX-F import is now triggered when a network sets allow_ixp_update to yes. #1213 robots.txt needed, at a minimum to limit bots from creating Django sessions Added robots.txt files to stop search engines indexing pages that shouldn't be indexed. #1210 UX Bugs Fixes several bugs introduced with the big UX dependency updates rolled out with 2.38. #959 ASNAUTO tool broken Fixes an issue with the ASNAuto tool sending out incorrect manual approval requests. #981 Error-handling of failed creation of DeskPRO tickets Fixes a problem with the creation of support tickets. #1150 Ops: Log Melissa payload in django.log Fixes a logging issue for the Ops team. #1228 Change \"Resul length\" to \"Result length\" Fixes a typo. This release also introduced a change for updates made with the API. These operations must now be authenticated with an API Key. Our HOWTO document explains how to get started using API Keys.","title":"Release 2.40.0"},{"location":"release_notes/release_notes_2022/#release-2390","text":"Beta Announcement Date: 20 July 2022 Release Date: 27 July 2022 GitHub issue Summary #473 add rir_* fields to keep track of ASN status Improve data quality by adding fields that will allow us to perform statical analysis and remove ASNs when no longer assigned. #1203 Validate Local Field against set of Enums Improvements to error handling should a user mischievously send junk data. #1205 Ops: Limit Django sessions to pages that need it Django sessions are now limited to pages that need it. #941 Organization Merging Tool only offers the first 10 matches Improve the organization merge tool for admins. #1043 AC Change User Permission broken Fixes a bug that did not remove users from an organization when it was deleted. #1157 An account with admin status can not have permissions Fixes a bug that did not remove granular permissions for an organization when a users was upgraded to an admin. #1135 #727 RS Peer Checkbox followup changes Cosmetic changes to the RS Peer Checkbox.","title":"Release 2.39.0"},{"location":"release_notes/release_notes_2022/#release-2382","text":"Release Date: 24 June 2022 GitHub issue Summary #1194 Advanced search issues Fixes a bug that stopped advanced search from delivering results. #1195 UI: active tabs no longer highlighted after switching Fixes a bug that stopped the current tab being highlighted in active search after changing tab.","title":"Release 2.38.2"},{"location":"release_notes/release_notes_2022/#release-2380","text":"Beta Announcement Date: 15 June 2022 Release Date: 22 June 2022 GitHub issue Summary #930 Admin user is missing the \"Edit\" button Fixes a bug that prevented users from editing their entries. #963 Add the IX name and id to IX-F Import Emails Addresses messages to exchange operators more clearly. #879 Add \"Last login\" to https://peeringdb.com/cp/peeringdb_server/user/ Let's the Admin Committee know who from an organization most recently logged in. #1057 Force users to provide input for first / last names when registering with PeeringDB Use the username instead of formal name in tickets when it's not registered. #660 Bug in renumbering tool Fixes a bug with the renubering tool. #1172 Ops: Exempt superusers (PeeringDB Admin Committee & Operations Committee admins) from throttling API and Melissa request throttling is no longer applied to authenticated admin users. #1177 Locale field update has uncaught exception Fixes a bug where a logged in user could send data that generated DataError and Internal Server Error. Exceptions are now caught appropriately and return relevant errors to users. #1174 Insecure Dependencies Upgrades three dependencies to newer versions that address known vulnerabilities. #1186 Browser caches OAuth2 application client secrets Fixes a bug that allowed browsers to cache the OAuth2 application details page. #1184 Tie CSRF token to session Fixes a bug by binding the session ID and the CSRF token together to reduce the risk that an old token is misused.","title":"Release 2.38.0"},{"location":"release_notes/release_notes_2022/#release-2370","text":"Beta Announcement Date: 11 May 2022 Release Date: 17 May 2022 GitHub issue Summary #403 Notify a record holder when there is an automated change to the profile Notifications are now sent when PeeringDB administrators make changes to records. #1155 Feature Request: Promote OAuth application to admin-level access? Adds organization level OAuth app management and allows organizations to transfer existing OAuth apps tied to their users to the organization. #942 Failure on Admin Organization Merge Fixes a big that prevented PeeringDB Admins from merging organizations. #960 Change any \"Primary ASN\" to \"ASN\" Replaces the phrase \"Primary ASN\" with \"ASN\" everywhere as the Primary ASN concept does not exist in PeeringDB 2.0. #986 Add link to release notes to the footer of www.peeringdb.com Release notes are now linked from the footer, making them easier for all users to find.","title":"Release 2.37.0"},{"location":"release_notes/release_notes_2022/#release-2360","text":"Beta Announcement Date: 13 April 2022 Release Date: 11 May 2022 GitHub issue Summary peeringdb-py #62 Support User & Org API keys Adds API keys support for the peeringdb-py cacheing client. #1079 Normalize the names of states & provinces for various objects Normalizes names for states and provinces, improving search experience. #784 Do not show objects in status \"pending\" on the UI Objects that do not have an OK status are no longer returned in search results. #996 500 Error during login for 2FA enabled accounts with unverified email address Fixes a bug that generated a 500 error when logging in with an account whose e-mail address had not been verified. #845 Need consolidated app logs Improvements to logging. #1119 Some command-line-tool executions are not logged Improves logging so AC tools can undo actions. #1120 Ops: response header X-Auth-ID to augment logging Logs the user for requested authenticated by API keys allowing them to be contacted. #1121 Ops: API throttling needs customizable messages API requests can now be throttled with custom return code (HTTP 429). #1122 Logging for melissa (geo-address normalization) queries Adds support for logging geosearch queries to the external API. #1124 Allow rate-limiting of melissa enabled api functionality. Adds support for rate-limiting the geosearch features that rely on an external API. #1126 Ops: API throttling of repeated requests Adds support for throttling repeated requests. #1096 Clicking on Facility history in AC GUI throws 500 Fixes a bug that hid fac history. #1035 Django-Admin: adding a network with existing asn fails with internal error Fixes a bug that returned a 500 error when a user attempted to add a net with the same ASN as an existing object. It now returns a more helpful validation error.","title":"Release 2.36.0"},{"location":"release_notes/release_notes_2022/#release-2350","text":"Beta Announcement Date: 8 March 2022 Release Date: 22 March 2022 GitHub issue Summary #506 Add \"Management\" search field to Advanced Search of Exchanges Allows users to search for IXPs based on the organization that operates the IXP. #727 RS Peer Checkbox also visible on IX Site Information about networks claiming to peer with the Route Server is now shown on the IXP's page. #512 New Field \"Health Check\" Networks, IXPs, and Facilities can now link to a status dashboard page. #653 missing delete button for user There is now a button to delete a user account directly through the web interface. #656 Sort user IDs in https://www.peeringdb.com/cp/peeringdb_server/userpermission/xxxxx numerically Fixes the sorting order of user IDs, so they are now sorted in numerical order. #881 wrap correctly on mobile The ASN column on mobile view will show seven digits before wrapping the number. #908 2FA Backup Tokens language doesn't seem correct Fixes the backup tokens language for 2FA. #916 To force or not to force www, that is a question Forces https://www.peeringdb.com as the URL for PeeringDB, enabling other improvements. Some clients will need to adjust their endpoints to use www.peeringdb.com. curl users will want to use the -L flag. #1042 Long caching of deleted entries Fixes a problem where deleted objects continued to be returned because of cacheing. #1117 Bad API keys need to return 401 just like a bad user/pass. Presently they return 200 Fixes a problem where corrupt or expired or bogus API key simply resulted in an anonymous user session.","title":"Release 2.35.0"},{"location":"release_notes/release_notes_2022/#release-2340","text":"Beta Announcement Date: 9 February 2022 Release Date: 16 February 2022 GitHub issue Summary #722 Create a validation tool for syntactically well defined fields Introduces a tool to improve data quality by validating syntactically well defined fields. #853 substantially rate limit unauthenticated /api/ queries to encourage authenticated queries Introduces rate limiting for unauthenticated API queries to reduce the possibility of service impacting queries. #620 Add organisations and registered users to \"Global System Statistics\" in footer Adds the number of registered users to the footer, giving users a better idea of the size of the interconnection community.","title":"Release 2.34.0"},{"location":"release_notes/release_notes_2022/#release-2330","text":"Beta Announcement Date: 12 January 2022 Release Date: 19 January 2022 GitHub issue Summary #1083 Nanog 83 Hackathon improvements to the PeeringDB Website When using simple search on the front page of www.peeringdb.com (or via the API) searches for numbers return the most relevant results. Key changes include: searching for a short ASN returns just that network, and searches for two segments of an IP address are required to return related ix and net objects. #1070 OpenID Connect integration Allows organizations using PeeringDB to enable an identity federation with a managed service. #692 Add FIDO U2F 2FA support Adds support for FIDO U2F hardware tokens, allowing users to enable 2FA without relying on a TOTP app. #1033 Clicking \"Add\" to add a user api-key without providing a name for the key raises Internal Error Fixes a bug where unnamed user api-keys could not be added and there was just an internal error. #374 make URL required for new objects A URL to a website is now required when adding new objects. #469 Add IXP to AS record / dropdown limited Fixes a bug that limited the number of entries in the dropdown menu when adding an ix to a net . #284 global stats don't show up at login screen Global stats are now shown at the login web page. #874 Better error message when entering the wrong password for email change Improved the error message when entering the wrong password for an e-mail change. #365 Username retrieval non-existant email bug Fixes a bug where we attempted to send mail to non-existant addresses. #735 Cascade delete when performed by superuser Admin users can now cascade delete through the admin interface. #901 Creating a facility that matches the name of a soft-deleted facility will cause the entry to bypass the verification queue Fixes a bug where fac creation could bypass the validation process. #921 irr source validator doesn't allow for hyphens in source IRRs with a hyphen in the name, like ARIN-NONAUTH, are now supported. #1060 \"HARAKIRI ON WORKER\" issues need to be resolved Fixes an operational issue. #1062 Registering a new facility or exchange organization is broken Fixes a bug that prevented new fac and ix objects to be registered. #1077 Possible for \"pending\" exchange to have \"deleted\" ixlan Fixes a bug that allowed linked ix objects to jhave a different status, affecting API sync. #1088 Tweaks for empty organization clean up Fixes a bug that allowed sponsor organizations to be deleted by an automatic process when they should not be.","title":"Release 2.33.0"},{"location":"release_notes/release_notes_2023/","text":"2023 Release Notes The release notes list the GitHub issues and a summary of what has changed in PeeringDB software releases. Each new release has a one week beta test period on the beta server before it goes live. The beta and new releases are announced on the PeeringDB Announce Mailing List and on Facebook , LinkedIn and X . Release 2.53.0 Beta Announcement Date: 29 November 2023 Release Date: 6 December 2023 GitHub issue Summary #1362 Show connected networks, exchanges, and carriers on campus results pages Adds an aggregated view of interconnection resources at a campus on the campus page. #1247 Store language preference in the user's profile instead of cookies Improved handling of website language preferences. #1327 Improve visibility of contact data settings Admins now see the visibility settings for their contacts alongside the set values. This makes it easier to identify and correct mistakes. #1385 Keep the list of IRR up to date As title. #1432 Make dates ISO 8601 compliant everywhere in PeeringDB As title. #1252 Display dates consistently As title. #1433 Timestamps should be consistent As title. Release 2.52.0 Beta Announcement Date: 25 October 2023 Release Date: 6 November 2023 GitHub issue Summary #1328 Support web updates from a source of truth Internal sources of truth, like configuration management systems, can now propose PeeringDB updates that a web user can review and either accept or deny. #1374 Search to include new objects: Campus & Carrier Support for new carrier and campus objects in v2 search, which is now the default with v1 search linked for the time being. #1368 Facility data export into Google Earth KMZ PeeringDB facility data is now exported into a Google Earth KMZ file that includes the details of the facility fields and their contents ( ix , net , carrier ). It is linked from the web footer and generated every day. #1394 v2 search failing to find some names Fixes a bug where names with hyphens in them were not handled properly by v2 search. #1313 Improve email confirmation control - add 3 month option & maybe set new default value Improve the design of the periodic reconfirmation control for user email addresses and add a new 3 month value. #1257 Help text covers non-compliant email addresses Non-compliant email addresses of affiliated users are now shown, making it easier to know who to contact. #1164 better rdap error reporting Improved error handling and friendlier error reporting to users. #1260 Add Selenium Grid to CI testing Improve automated browser testing for website. #1380 Reset 'Social Media' to '{}' if field is null Fixes a bug with broken page rendering for backend admin users when a social media field was set to null . Release 2.51.0 Beta Announcement Date: 13 September 2023 Release Date: 20 September 2023 GitHub issue Summary #1364 IX Object Creation Per Policy Automates approval of new ix objects per policy . #1226 Add a \"Delete Affiliation\" button/option to the profile Users can now remove an affiliation from their account. #1431 add redis for caching Improves cacheing performance. #1382 Syntax checker for social media user names broken Fixes a bug that rejected social media names that incorporated a hyphen. #1401 Creating a new network not possible Fixes a bug that stopped net creation when social media fields were sent with request. #1419 replace missing Glyphicons Use Google's \"Sort by Alpha\" icon in table headers. #1182 Manual IX-F import request queue can get stuck Fixes a bug that allowed users to enable IX-F imports without setting a URL. The importers also discards imports without a URL. #1334 IX-F Importer: Cosmetic issue with \"resolved\" emails and double-slashes in URLs after the FQDN Fixes a cosmetic issue with IX-F notification messages. Release 2.50.0 Beta Announcement Date: 16 August 2023 Release Date: 23 August 2023 GitHub issue Summary #1352 Include carrier and campus objects in the API carrier and campus objects were not included in the main API at first as we did not know if users would use them. They are now part of the API, making them usable by tools that rely on the API. #1300 display website URL on all non-org objects The website from org objects is now inherited by all child objects. #1381 Add hover tip to describe meaning of routeserver icon As title. #1361 Add Campus and Carrier Tooltips As title. #1360 IX-F Importer: IX-F Member Data not being nullified after IX stops/changes import Fixes a bug where the IX and participants were being mailed about import issues after the import was turned of by the IX operator. #1239 Add a search field to all AC views Better search for support tools. #1027 Make the search field on cp/peeringdb_server/network/ aware of leading AS/ASN Improved handling of variant syntax in support tools. #1412 Improve performance by updating Python client code Replace old python2 sync code with python3 code. Release 2.49.0 Beta Announcement Date: 12 July 2023 Release Date: 19 July 2023 GitHub issue Summary #1344 Auto approval of new carrierfac objects carrierfac objects are now approved automatically, like netfac objects . #1299 Alphabetize simple search results Exact match search now go at the top, with other results displayed alphabetically. #997 Allow organizations to require affiliated users to enable 2FA Organizations can now require their users to turn on MFA. #1370 Facility Geocode not working Fixed a bug that meant some fac s did not have a geocode. #1225 Evaluate ways to reduce operational costs Operational work to support deployment directly on cloud provider infrastructure, instead of in a VM. #1219 Optimize Cacheing It is now easier to obtain and cache PeeringDB data. #1404 Upgrade the django-oauth-toolkit library Django update deferred from last month. Oauth application owners were given notice of this breaking change. Release 2.48.0 Beta Announcement Date: 21 June 2023 Release Date: 28 June 2023 GitHub issue Summary #1311 Update Dependencies Update all dependencies to new major releases. This year includes Django 4.2 LTS. Release 2.47.0 Beta Announcement Date: 17 May 2023 Release Date: 24 May 2023 GitHub issue Summary #1204 Improve Search Functionality Significant improvements to search via a new backend. #1290 Add permission 'manage peering sessions' Adds a permission for managing peering sessions, that is useful for portal enabling PeeringDB OAuth. #1241 Don't allow the first and last addresses being assigned Added a validation check to fail on network and broadcast addresses. #1238 Put an Icon next to user name on https://www.peeringdb.com/org/nnnn#users if the user is using U2F Added a U2F badge next to user name in organization user listing if the user has set up U2F 2FA #1339 Tie TOTP devices and Webauthn Security Keys to the user account Tie TOTP devices and Webauthn Security Keys to the user account so the AC can see this information. #1291 Show all e-mail addresses associated with a username All e-mail addresses associated with a user are now shown in the users tab. #1372 Facility history still broken Fixes an issue with fac history for AC use. Release 2.46.0 Beta Announcement Date: 12 April 2023 Release Date: 19 April 2023 GitHub issue Summary #1336 Clearly show when a facility is part of a campus Adds a small icon to show that a fac is a part of a campus . #387 Replace \"website\" element in API/UI with social media tags Introduces the ability to include links to social media accounts from PeeringDB pages. #1333 Calling /api/carrier with parameters is broken Fixes a bug in the API support for the new carrier object. #1094 IX-F Importer: duplicate address(es) should result in rejection of JSON export and notification of IXP Fixes a bug in handling duplicate IP addresses in IX-F imports. #1249 Update MkDocs for docs.peeringdb.com Updates the software used by https://docs.peeringdb.com Release 2.45.0 Beta Announcement Date: 15 March 2023 Release Date: 22 March 2023 GitHub issue Summary #1295 Allow anonymous users to change languages It is now possible to select a PeeringDB translation without logging in to the website. #1281 better <title> tags The HTML <title> tag of pages on www.peeringdb.com now shows key information from the page, like a network name or search term. #749 Rename Private Peering Facilities to Interconnection Facilities in the UI Private Peering Facilities have been renamed to Interconnection Facilities in the UI. #1308 Deploy Google Analytics on www and docs We have deployed Google Analytics to measure website traffic. #1271 Implement auto-removal of stale networks according to DOTF recommendations Stay networks are now automatically removed as per the DOTF recommendations . #389 It should be impossible to save an active entity under an entity that is marked as deleted. It is no longer possible to save an object under one that's marked as deleted. Release 2.44.0 Beta Announcement Date: 15 February 2023 Release Date: 22 February 2023 GitHub issue Summary #1110 Add campus object Initial deployment of a Campus object \u2013 a record to describe facilities where inter-facility cross connects are available as easily as intra-facility cross connects. #1191 OAuth logins with 2FA don't complete first time Fixes a bug that broke the OAuth flow when MFA was enabled. #668 Add \"self\" as an object identifier, for documentation purposes Adds a \"self\" object identifier to API and views for GET requests. Authenticated users going to https://www.peeringdb.com/{net Release 2.43.1 Release Date: 10 February 2023 GitHub issue Summary #1315 issues when accepting / denying carrier presence requests Fix permission issues when accepting or rejecting carrier facility presence requests and automatically approve them when they are from the same organization. Release 2.43.0 Beta Announcement Date: 18 January 2023 Release Date: 25 January 2023 GitHub issue Summary #909 Add Carrier Record Type Initial deployment of a Carrier record \u2013 a record to describe providers of high capacity links between facilities, running at layers 1 or 2 . #1140 API keys: disabling of user account by a PeeringDB admin does not disable access via a User API key. Also no disable mech, only revoke. Fixes a bug where user API Keys were not disabled when their account was disabled. #1220 API requests with invalid Authentication headers should notify users in some way Requests with an invalid API key now return appropriate error codes. #1130 Allow user to change account username Users can now change their account name. #970 Cache hints are needed for optimal CDN use Adds cache hints to make CDN deployment more effective. #1278 Commandline tool \"Run command\" button gone Fixes a problem affecting Admins \u2013 a tool was hidden. #1279 RIR status gets deleted when changes are made to the network Improves the new process for validating networks against RIR data (see: #1280 ). #658 Improve MTU field MTUs now default to 1500 and there's a new dropdown list of options to select from. #1282 Ops: Emails to OPERATIONS_EMAIL need to be rate-limited Introduces a rate limit for automatic mail sent to Operations. #1283 Footer \"Global System Statistics\" should be cached within django instance, not updated with every page load Global System Statistics are now generated periodically instead of on each page load. #1284 Ops: django needs lightweight healthcheck route that confirms database connectivity Introduces a lightweight health check for database availability. #1285 Ops: various indexes are needed Introduces new database indexes. #1288 Ops: Expose CSP_CONNECT_SRC to .env Add configuration options for ease of operations. #1296 CSRF cookie not set error from email confirmation view Fix a bug with CSRF cookies not being set. Older releases 2022 Release Notes 2021 Release Notes 2020 Release Notes","title":"2023 Release Notes"},{"location":"release_notes/release_notes_2023/#2023-release-notes","text":"The release notes list the GitHub issues and a summary of what has changed in PeeringDB software releases. Each new release has a one week beta test period on the beta server before it goes live. The beta and new releases are announced on the PeeringDB Announce Mailing List and on Facebook , LinkedIn and X .","title":"2023 Release Notes"},{"location":"release_notes/release_notes_2023/#release-2530","text":"Beta Announcement Date: 29 November 2023 Release Date: 6 December 2023 GitHub issue Summary #1362 Show connected networks, exchanges, and carriers on campus results pages Adds an aggregated view of interconnection resources at a campus on the campus page. #1247 Store language preference in the user's profile instead of cookies Improved handling of website language preferences. #1327 Improve visibility of contact data settings Admins now see the visibility settings for their contacts alongside the set values. This makes it easier to identify and correct mistakes. #1385 Keep the list of IRR up to date As title. #1432 Make dates ISO 8601 compliant everywhere in PeeringDB As title. #1252 Display dates consistently As title. #1433 Timestamps should be consistent As title.","title":"Release 2.53.0"},{"location":"release_notes/release_notes_2023/#release-2520","text":"Beta Announcement Date: 25 October 2023 Release Date: 6 November 2023 GitHub issue Summary #1328 Support web updates from a source of truth Internal sources of truth, like configuration management systems, can now propose PeeringDB updates that a web user can review and either accept or deny. #1374 Search to include new objects: Campus & Carrier Support for new carrier and campus objects in v2 search, which is now the default with v1 search linked for the time being. #1368 Facility data export into Google Earth KMZ PeeringDB facility data is now exported into a Google Earth KMZ file that includes the details of the facility fields and their contents ( ix , net , carrier ). It is linked from the web footer and generated every day. #1394 v2 search failing to find some names Fixes a bug where names with hyphens in them were not handled properly by v2 search. #1313 Improve email confirmation control - add 3 month option & maybe set new default value Improve the design of the periodic reconfirmation control for user email addresses and add a new 3 month value. #1257 Help text covers non-compliant email addresses Non-compliant email addresses of affiliated users are now shown, making it easier to know who to contact. #1164 better rdap error reporting Improved error handling and friendlier error reporting to users. #1260 Add Selenium Grid to CI testing Improve automated browser testing for website. #1380 Reset 'Social Media' to '{}' if field is null Fixes a bug with broken page rendering for backend admin users when a social media field was set to null .","title":"Release 2.52.0"},{"location":"release_notes/release_notes_2023/#release-2510","text":"Beta Announcement Date: 13 September 2023 Release Date: 20 September 2023 GitHub issue Summary #1364 IX Object Creation Per Policy Automates approval of new ix objects per policy . #1226 Add a \"Delete Affiliation\" button/option to the profile Users can now remove an affiliation from their account. #1431 add redis for caching Improves cacheing performance. #1382 Syntax checker for social media user names broken Fixes a bug that rejected social media names that incorporated a hyphen. #1401 Creating a new network not possible Fixes a bug that stopped net creation when social media fields were sent with request. #1419 replace missing Glyphicons Use Google's \"Sort by Alpha\" icon in table headers. #1182 Manual IX-F import request queue can get stuck Fixes a bug that allowed users to enable IX-F imports without setting a URL. The importers also discards imports without a URL. #1334 IX-F Importer: Cosmetic issue with \"resolved\" emails and double-slashes in URLs after the FQDN Fixes a cosmetic issue with IX-F notification messages.","title":"Release 2.51.0"},{"location":"release_notes/release_notes_2023/#release-2500","text":"Beta Announcement Date: 16 August 2023 Release Date: 23 August 2023 GitHub issue Summary #1352 Include carrier and campus objects in the API carrier and campus objects were not included in the main API at first as we did not know if users would use them. They are now part of the API, making them usable by tools that rely on the API. #1300 display website URL on all non-org objects The website from org objects is now inherited by all child objects. #1381 Add hover tip to describe meaning of routeserver icon As title. #1361 Add Campus and Carrier Tooltips As title. #1360 IX-F Importer: IX-F Member Data not being nullified after IX stops/changes import Fixes a bug where the IX and participants were being mailed about import issues after the import was turned of by the IX operator. #1239 Add a search field to all AC views Better search for support tools. #1027 Make the search field on cp/peeringdb_server/network/ aware of leading AS/ASN Improved handling of variant syntax in support tools. #1412 Improve performance by updating Python client code Replace old python2 sync code with python3 code.","title":"Release 2.50.0"},{"location":"release_notes/release_notes_2023/#release-2490","text":"Beta Announcement Date: 12 July 2023 Release Date: 19 July 2023 GitHub issue Summary #1344 Auto approval of new carrierfac objects carrierfac objects are now approved automatically, like netfac objects . #1299 Alphabetize simple search results Exact match search now go at the top, with other results displayed alphabetically. #997 Allow organizations to require affiliated users to enable 2FA Organizations can now require their users to turn on MFA. #1370 Facility Geocode not working Fixed a bug that meant some fac s did not have a geocode. #1225 Evaluate ways to reduce operational costs Operational work to support deployment directly on cloud provider infrastructure, instead of in a VM. #1219 Optimize Cacheing It is now easier to obtain and cache PeeringDB data. #1404 Upgrade the django-oauth-toolkit library Django update deferred from last month. Oauth application owners were given notice of this breaking change.","title":"Release 2.49.0"},{"location":"release_notes/release_notes_2023/#release-2480","text":"Beta Announcement Date: 21 June 2023 Release Date: 28 June 2023 GitHub issue Summary #1311 Update Dependencies Update all dependencies to new major releases. This year includes Django 4.2 LTS.","title":"Release 2.48.0"},{"location":"release_notes/release_notes_2023/#release-2470","text":"Beta Announcement Date: 17 May 2023 Release Date: 24 May 2023 GitHub issue Summary #1204 Improve Search Functionality Significant improvements to search via a new backend. #1290 Add permission 'manage peering sessions' Adds a permission for managing peering sessions, that is useful for portal enabling PeeringDB OAuth. #1241 Don't allow the first and last addresses being assigned Added a validation check to fail on network and broadcast addresses. #1238 Put an Icon next to user name on https://www.peeringdb.com/org/nnnn#users if the user is using U2F Added a U2F badge next to user name in organization user listing if the user has set up U2F 2FA #1339 Tie TOTP devices and Webauthn Security Keys to the user account Tie TOTP devices and Webauthn Security Keys to the user account so the AC can see this information. #1291 Show all e-mail addresses associated with a username All e-mail addresses associated with a user are now shown in the users tab. #1372 Facility history still broken Fixes an issue with fac history for AC use.","title":"Release 2.47.0"},{"location":"release_notes/release_notes_2023/#release-2460","text":"Beta Announcement Date: 12 April 2023 Release Date: 19 April 2023 GitHub issue Summary #1336 Clearly show when a facility is part of a campus Adds a small icon to show that a fac is a part of a campus . #387 Replace \"website\" element in API/UI with social media tags Introduces the ability to include links to social media accounts from PeeringDB pages. #1333 Calling /api/carrier with parameters is broken Fixes a bug in the API support for the new carrier object. #1094 IX-F Importer: duplicate address(es) should result in rejection of JSON export and notification of IXP Fixes a bug in handling duplicate IP addresses in IX-F imports. #1249 Update MkDocs for docs.peeringdb.com Updates the software used by https://docs.peeringdb.com","title":"Release 2.46.0"},{"location":"release_notes/release_notes_2023/#release-2450","text":"Beta Announcement Date: 15 March 2023 Release Date: 22 March 2023 GitHub issue Summary #1295 Allow anonymous users to change languages It is now possible to select a PeeringDB translation without logging in to the website. #1281 better <title> tags The HTML <title> tag of pages on www.peeringdb.com now shows key information from the page, like a network name or search term. #749 Rename Private Peering Facilities to Interconnection Facilities in the UI Private Peering Facilities have been renamed to Interconnection Facilities in the UI. #1308 Deploy Google Analytics on www and docs We have deployed Google Analytics to measure website traffic. #1271 Implement auto-removal of stale networks according to DOTF recommendations Stay networks are now automatically removed as per the DOTF recommendations . #389 It should be impossible to save an active entity under an entity that is marked as deleted. It is no longer possible to save an object under one that's marked as deleted.","title":"Release 2.45.0"},{"location":"release_notes/release_notes_2023/#release-2440","text":"Beta Announcement Date: 15 February 2023 Release Date: 22 February 2023 GitHub issue Summary #1110 Add campus object Initial deployment of a Campus object \u2013 a record to describe facilities where inter-facility cross connects are available as easily as intra-facility cross connects. #1191 OAuth logins with 2FA don't complete first time Fixes a bug that broke the OAuth flow when MFA was enabled. #668 Add \"self\" as an object identifier, for documentation purposes Adds a \"self\" object identifier to API and views for GET requests. Authenticated users going to https://www.peeringdb.com/{net","title":"Release 2.44.0"},{"location":"release_notes/release_notes_2023/#release-2431","text":"Release Date: 10 February 2023 GitHub issue Summary #1315 issues when accepting / denying carrier presence requests Fix permission issues when accepting or rejecting carrier facility presence requests and automatically approve them when they are from the same organization.","title":"Release 2.43.1"},{"location":"release_notes/release_notes_2023/#release-2430","text":"Beta Announcement Date: 18 January 2023 Release Date: 25 January 2023 GitHub issue Summary #909 Add Carrier Record Type Initial deployment of a Carrier record \u2013 a record to describe providers of high capacity links between facilities, running at layers 1 or 2 . #1140 API keys: disabling of user account by a PeeringDB admin does not disable access via a User API key. Also no disable mech, only revoke. Fixes a bug where user API Keys were not disabled when their account was disabled. #1220 API requests with invalid Authentication headers should notify users in some way Requests with an invalid API key now return appropriate error codes. #1130 Allow user to change account username Users can now change their account name. #970 Cache hints are needed for optimal CDN use Adds cache hints to make CDN deployment more effective. #1278 Commandline tool \"Run command\" button gone Fixes a problem affecting Admins \u2013 a tool was hidden. #1279 RIR status gets deleted when changes are made to the network Improves the new process for validating networks against RIR data (see: #1280 ). #658 Improve MTU field MTUs now default to 1500 and there's a new dropdown list of options to select from. #1282 Ops: Emails to OPERATIONS_EMAIL need to be rate-limited Introduces a rate limit for automatic mail sent to Operations. #1283 Footer \"Global System Statistics\" should be cached within django instance, not updated with every page load Global System Statistics are now generated periodically instead of on each page load. #1284 Ops: django needs lightweight healthcheck route that confirms database connectivity Introduces a lightweight health check for database availability. #1285 Ops: various indexes are needed Introduces new database indexes. #1288 Ops: Expose CSP_CONNECT_SRC to .env Add configuration options for ease of operations. #1296 CSRF cookie not set error from email confirmation view Fix a bug with CSRF cookies not being set.","title":"Release 2.43.0"},{"location":"release_notes/release_notes_2023/#older-releases","text":"2022 Release Notes 2021 Release Notes 2020 Release Notes","title":"Older releases"},{"location":"taskforce/dataownership/","text":"PeeringDB Data Ownership Task Force The Data Ownership Task Force was established in September 2019 with the aim of working on a PeeringDB Policy proposal about data ownership, after a need was recognized by the Product Committee as issues consistently had been raised relating to who owns the data in PeeringDB when more than one party is involved (as in netixlan, ixfac, netfac, etc objects). A call for participation to the task Force was made on September 10th, 2019. Data Ownership Task Force discussions are archived and can be found at: https://lists.peeringdb.com/pipermail/dataownership-tf/ This webpage is where the work of Data Ownership Task Force will be documented, including meeting minutes, draft documents etc. as their work progresses. In April 2020, the Task Force completed its work and published the resulting PeeringDB Data Ownership Policy Document after few cycles of a Review Phase and a final Last Call over a draft document circulated on their mailing list. (Please see the mailing list archives linked above.) The resulting document can be found at: https://docs.peeringdb.com/gov/misc/2020-04-06_PeeringDB_Data_Ownership_Policy_Document_v1.0.pdf Scope The Data Ownership Task Force is established to discuss and agree on who owns the data tokens and/or objects in PeeringDB. Their agreements, findings, and any sort of recommendations will be documented in a Policy Document as a direct outcome of the Task Force. This Policy Document will include a clear description of each data element and the relation between each other, as well as who should be allowed to create, update, and delete them. The Task Force is estimated to conclude its work within about 6 months from its inception, which was September 2019. This time frame will be extended if the Task Force needs more time to conclude its work. The resulting Policy Document will be announced and shared with the PeeringDB Community. After publishing the Policy Document, the Task Force ended. Data ownership policy implementation presentation This video and presentation explains how PeeringDB handles IX-F import data, creating, changing or deleting netixlan objects and other changes from the implementation of the PeeringDB Data Ownership Policy. Members Darrell Budic Chris Caputo Patrick Gilmore Shane Kerr Fredrik Korsb\u00e4ck Jhonny Lima Ben Maddison Christopher Malayter William Marantz Jeri McNeill Arnold Nipper Barry O\u2019Donovan Mustafa Timur Sever Bijal Shangani Job Snijders Terry Sweetser Lukas Tribus Stefan Wahl Filiz Yilmaz (Chair)","title":"Data Ownership Task Force"},{"location":"taskforce/dataownership/#peeringdb-data-ownership-task-force","text":"The Data Ownership Task Force was established in September 2019 with the aim of working on a PeeringDB Policy proposal about data ownership, after a need was recognized by the Product Committee as issues consistently had been raised relating to who owns the data in PeeringDB when more than one party is involved (as in netixlan, ixfac, netfac, etc objects). A call for participation to the task Force was made on September 10th, 2019. Data Ownership Task Force discussions are archived and can be found at: https://lists.peeringdb.com/pipermail/dataownership-tf/ This webpage is where the work of Data Ownership Task Force will be documented, including meeting minutes, draft documents etc. as their work progresses. In April 2020, the Task Force completed its work and published the resulting PeeringDB Data Ownership Policy Document after few cycles of a Review Phase and a final Last Call over a draft document circulated on their mailing list. (Please see the mailing list archives linked above.) The resulting document can be found at: https://docs.peeringdb.com/gov/misc/2020-04-06_PeeringDB_Data_Ownership_Policy_Document_v1.0.pdf","title":"PeeringDB Data Ownership Task Force"},{"location":"taskforce/dataownership/#scope","text":"The Data Ownership Task Force is established to discuss and agree on who owns the data tokens and/or objects in PeeringDB. Their agreements, findings, and any sort of recommendations will be documented in a Policy Document as a direct outcome of the Task Force. This Policy Document will include a clear description of each data element and the relation between each other, as well as who should be allowed to create, update, and delete them. The Task Force is estimated to conclude its work within about 6 months from its inception, which was September 2019. This time frame will be extended if the Task Force needs more time to conclude its work. The resulting Policy Document will be announced and shared with the PeeringDB Community. After publishing the Policy Document, the Task Force ended.","title":"Scope"},{"location":"taskforce/dataownership/#data-ownership-policy-implementation-presentation","text":"This video and presentation explains how PeeringDB handles IX-F import data, creating, changing or deleting netixlan objects and other changes from the implementation of the PeeringDB Data Ownership Policy.","title":"Data ownership policy implementation presentation"},{"location":"taskforce/dataownership/#members","text":"Darrell Budic Chris Caputo Patrick Gilmore Shane Kerr Fredrik Korsb\u00e4ck Jhonny Lima Ben Maddison Christopher Malayter William Marantz Jeri McNeill Arnold Nipper Barry O\u2019Donovan Mustafa Timur Sever Bijal Shangani Job Snijders Terry Sweetser Lukas Tribus Stefan Wahl Filiz Yilmaz (Chair)","title":"Members"}]} \ No newline at end of file +{"config":{"indexing":"full","lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"About PeeringDB How can PeeringDB help me to interconnect? Policies By using this service, you agree to adhere to PeeringDB's Acceptable Use Policy . The Admin Committee Guidelines and Criteria for Approving Networks, IXPs, and Facilities documents PeeringDB\u2019s registration approval process. Getting started Several short HOWTOs provide a beginner detailed instructions on how to get started using PeeringDB. Create an account and register in PeeringDB. We also have a glossary of PeeringDB terms. Getting help Please log bugs and feature requests at GitHub . Questions, comments and everything else should go to support@peeringdb.com . Mailing lists We have changed the way in which PeeringDB will be announcing future enhancements, changes, maintenance windows, and other information. If you would like to be notified of certain events, or participate in certain discussions, please subscribe to one of the following email lists: PeeringDB Announce All PeeringDB administrative announcement information, such as upgrades, maintenances, outages, etc. PeeringDB Governance Discussion list for PeeringDB governance issues. This is a community-based effort, the community\u2019s input will help guide the future of the PeeringDB as it has always done. PeeringDB Technical Discussion about PeeringDB technical topics. PeeringDB Translate Discussions about PeeringDB translations. PeeringDB User-Discuss All other topics. Our goal is to give you all the information you want, and no more. Please subscribe to any of these lists you feel are appropriate, or none. You will still be able to use the database even if you are not subscribed to any lists. Quick API start PeeringDB is available at https://www.peeringdb.com/ with self-describing API docs at https://www.peeringdb.com/apidocs/ . More thorough docs are at API Specs , but in a nutshell, just prepend the URL with api/ to get that object in JSON. For example: https://www.peeringdb.com/net/1 becomes: https://www.peeringdb.com/api/net/1 List all via API by taking the id off: https://www.peeringdb.com/api/net Local database replication is accomplished with this command line tool , please see the documentation for more information. Release notes and schedule The release notes and schedule page lists upcoming releases, and the GitHub issues and a summary of what has changed in PeeringDB software releases. Guides [es] Gu\u00eda corta para uso de peeringdb.com - Fabi\u00e1n Mej\u00eda [pt-BR] Guia de cadastro de informa\u00e7\u00f5es de ASNs no PeeringDB - Julimar Lunguinho Mendes / Equipe de Engenharia [pt-BR] Guia de cadastro de informa\u00e7\u00f5es de Facilities no PeeringDB - Julimar Lunguinho Mendes / Equipe de Engenharia Tools The tools page features tools developed by PeeringDB users. Tutorials and workshops High-level HOWTOs provide a beginner detailed instructions on how to get started using PeeringDB. PDB 101 in 20 Minutes at Peering Asia 6.0 - November 5, 2024 - Arnold Nipper PeeringDB Tutorial, learning the GUI and the API at APRICOT 2022 - February 25, 2022 - Arnold Nipper The How-to Guide at Teraco Virtual Tech Day with PeeringDB - May 6, 2021 - Ben Ryall PeeringDB Tutorial, learning the GUI and the API at APRICOT 2020 , Melbourne, AU - February 20, 2020 - Arnold Nipper How is PeeringDB organised? and The PeeringDB API at DENOG11 , Hamburg, DE - November 10, 2019 - Arnold Nipper PeeringDB Workshop at AfPIF-10 , Balaclava, MV - August 20, 2019 - Arnold Nipper ( video starts at 14:00) Part 1: Intro , Part 2: Main , Part 3: API at APRICOT 2019 , Daejeon, KR - February 27, 2018 - Arnold Nipper ( video ) Presentations The presentations 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 (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 . Beta development The PeeringDB beta server 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 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 MySQL dumps from July, 29 2010 to March 14, 2016 are archived by CAIDA at http://data.caida.org/datasets/peeringdb-v1/ . How you can help Check your entries and make sure everything looks correct Port any scripts to the new API Send us feedback Improve these docs Add or improve a translation Thanks for your feedback, we look forward to hearing from you!","title":"About"},{"location":"#about-peeringdb","text":"","title":"About PeeringDB"},{"location":"#how-can-peeringdb-help-me-to-interconnect","text":"","title":"How can PeeringDB help me to interconnect?"},{"location":"#policies","text":"By using this service, you agree to adhere to PeeringDB's Acceptable Use Policy . The Admin Committee Guidelines and Criteria for Approving Networks, IXPs, and Facilities documents PeeringDB\u2019s registration approval process.","title":"Policies"},{"location":"#getting-started","text":"Several short HOWTOs provide a beginner detailed instructions on how to get started using PeeringDB. Create an account and register in PeeringDB. We also have a glossary of PeeringDB terms.","title":"Getting started"},{"location":"#getting-help","text":"Please log bugs and feature requests at GitHub . Questions, comments and everything else should go to support@peeringdb.com .","title":"Getting help"},{"location":"#mailing-lists","text":"We have changed the way in which PeeringDB will be announcing future enhancements, changes, maintenance windows, and other information. If you would like to be notified of certain events, or participate in certain discussions, please subscribe to one of the following email lists: PeeringDB Announce All PeeringDB administrative announcement information, such as upgrades, maintenances, outages, etc. PeeringDB Governance Discussion list for PeeringDB governance issues. This is a community-based effort, the community\u2019s input will help guide the future of the PeeringDB as it has always done. PeeringDB Technical Discussion about PeeringDB technical topics. PeeringDB Translate Discussions about PeeringDB translations. PeeringDB User-Discuss All other topics. Our goal is to give you all the information you want, and no more. Please subscribe to any of these lists you feel are appropriate, or none. You will still be able to use the database even if you are not subscribed to any lists.","title":"Mailing lists"},{"location":"#quick-api-start","text":"PeeringDB is available at https://www.peeringdb.com/ with self-describing API docs at https://www.peeringdb.com/apidocs/ . More thorough docs are at API Specs , but in a nutshell, just prepend the URL with api/ to get that object in JSON. For example: https://www.peeringdb.com/net/1 becomes: https://www.peeringdb.com/api/net/1 List all via API by taking the id off: https://www.peeringdb.com/api/net Local database replication is accomplished with this command line tool , please see the documentation for more information.","title":"Quick API start"},{"location":"#release-notes-and-schedule","text":"The release notes and schedule page lists upcoming releases, and the GitHub issues and a summary of what has changed in PeeringDB software releases.","title":"Release notes and schedule"},{"location":"#guides","text":"[es] Gu\u00eda corta para uso de peeringdb.com - Fabi\u00e1n Mej\u00eda [pt-BR] Guia de cadastro de informa\u00e7\u00f5es de ASNs no PeeringDB - Julimar Lunguinho Mendes / Equipe de Engenharia [pt-BR] Guia de cadastro de informa\u00e7\u00f5es de Facilities no PeeringDB - Julimar Lunguinho Mendes / Equipe de Engenharia","title":"Guides"},{"location":"#tools","text":"The tools page features tools developed by PeeringDB users.","title":"Tools"},{"location":"#tutorials-and-workshops","text":"High-level HOWTOs provide a beginner detailed instructions on how to get started using PeeringDB. PDB 101 in 20 Minutes at Peering Asia 6.0 - November 5, 2024 - Arnold Nipper PeeringDB Tutorial, learning the GUI and the API at APRICOT 2022 - February 25, 2022 - Arnold Nipper The How-to Guide at Teraco Virtual Tech Day with PeeringDB - May 6, 2021 - Ben Ryall PeeringDB Tutorial, learning the GUI and the API at APRICOT 2020 , Melbourne, AU - February 20, 2020 - Arnold Nipper How is PeeringDB organised? and The PeeringDB API at DENOG11 , Hamburg, DE - November 10, 2019 - Arnold Nipper PeeringDB Workshop at AfPIF-10 , Balaclava, MV - August 20, 2019 - Arnold Nipper ( video starts at 14:00) Part 1: Intro , Part 2: Main , Part 3: API at APRICOT 2019 , Daejeon, KR - February 27, 2018 - Arnold Nipper ( video )","title":"Tutorials and workshops"},{"location":"#presentations","text":"The presentations page has a complete list of PeeringDB presentations that were given at events around the world.","title":"Presentations"},{"location":"#open-source","text":"","title":"Open source"},{"location":"#source-code-audit","text":"PeeringDB commissioned a full audit of PeeringDB's source code in 2018. Computest (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 .","title":"Source code audit"},{"location":"#beta-development","text":"The PeeringDB beta server 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 automagically redirects to the list of issues on PeeringDB's GitHub repository that document all of the changes in the current beta version.","title":"Beta development"},{"location":"#historical-data","text":"MySQL dumps from July, 29 2010 to March 14, 2016 are archived by CAIDA at http://data.caida.org/datasets/peeringdb-v1/ .","title":"Historical data"},{"location":"#how-you-can-help","text":"Check your entries and make sure everything looks correct Port any scripts to the new API Send us feedback Improve these docs Add or improve a translation Thanks for your feedback, we look forward to hearing from you!","title":"How you can help"},{"location":"api_specs/","text":"RESTful API endpoints and specifications Object types and tags Each object has an associated short hand tag you can use, current available tags are listed at https://www.peeringdb.com/apidocs/ . Requests URL The URL base appended with /api/ , append with object type and optionally object primary key Object type is not case sensitive. For example: https://www.peeringdb.com/api/ OBJ / id Encoding To specify the output format, either use the Accept: HTTP header Accept: application/json Or use extension type https://www.peeringdb.com/api/network/42.json JSON all returns fit into object: { meta: { status: message: } data: [ {}, {} ] } meta are optional data always array Note Please let us know what serializers you'd like to see. Authentication Basic HTTP authorization In order to access the API as a guest simply omit any authentication Operations GET: multiple objects endpoint: GET /api/ OBJ optional URL parameters 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 returns array of objects HTTP: GET /api/OBJ curl: curl -X GET https://<username>:<password>@peeringdb.com/api/OBJ Nested data Any field ending in the suffix _set (with the exception of 'irr_as_set') is a list of objects in a relationship with the parent object, you can expand those lists with the 'depth' parameter as explained below. 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 <object_type>_set So a set called 'net_set' will hold Network objects (API endpoint /net) Note: unlike GET single, 'depth' here will ONLY expand sets, no single relationships will be expanded - this is by design Depth 0: don't expand anything (default) 1: expand all first level sets to ids 2: expand all first level sets to objects curl: curl -X GET https://<username>:<password>@peeringdb.com/api/OBJ?depth=2 Querying examples exact: curl -X GET https://<username>:<password>@peeringdb.com/api/OBJ?name=something modifier: curl -X GET https://<username>:<password>@peeringdb.com/api/OBJ?name__contains=something Querying modifiers numeric fields: __lt, less than __lte, less than equal __gt, greater than __gte, greater than equal __in, value inside set of values (comma separated) string fields: __contains, field value contains this value __startswith, field value starts with this value __in, value inside set of values (comma separated) Since You can use the since argument with a unix timestamp (seconds) to retrieve all objects updated since then. ?since=1443414678 GET: single object endpoint: GET /api/ OBJ / id required URL parameters id int optional URL parameters depth int defaults to 2 aka. nested sets and objects will be expanded fields str comma separated list of field names - only matching fields will be returned in the data returns single object in an array HTTP: GET /api/OBJ/42 curl: curl -H \"Accept: application/json\" -X GET https://<username>:<password>@peeringdb.com/api/OBJ/42 Nested data Any field ending in the suffix _set (with the exception of 'irr_as_set') is a list of objects in a relationship with the parent object, you can expand those lists with the 'depth' parameter as explained below. 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 <object_type>_set So a set called 'net_set' will hold Network objects (API endpoint /net) Note: unlike GET multiple, 'depth' here will also expand single relationship 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 1 to 4: expand all sets and related objects according to level of depth specified 2 is default POST: create new object endpoint: POST /api/ OBJ required URL parameters id int fields to post in either JSON obj \"{}\" or urlencoded field=value curl: curl -H \"Content-Type: application/json\" -X POST --data \"{\\\"state\\\":\\\"active\\\"}\" https://<username>:<password>@peeringdb.com/api/OBJ PUT: edit object endpoint: PUT /api/ OBJ / id required URL parameters id int fields to post in either JSON obj \"{}\" or urlencoded field=value you have to provide the complete object with modified data. Retrieve data with depth=0, modify and then put up again. HTTP: PUT /api/OBJ/42 curl: curl -H \"Content-Type: application/json\" -X PUT --data \"{\\\"state\\\":\\\"active\\\"}\" https://<username>:<password>@peeringdb.com/api/OBJ/42 DELETE: delete object endpoint: DELETE /api/ OBJ / id required URL parameters id int HTTP: DELETE /api/OBJ/42 curl: curl -H \"Accept: application/json\" -X DELETE https://<username>:<password>@peeringdb.com/api/OBJ/42 Deleted objects can be retrieved by filtering on status=deleted with since > 0. Real world example Q: I'd like to search for Microsoft's, Salesforce.com's and Amazon.com's peering points in Europe. How can I do this? A: You can use the API to perform complex queries, like in this example. curl -sG https://www.peeringdb.com/api/netixlan --data-urlencode net_id__in=694,1100,1418 --data-urlencode ix_id__in=`curl -sG https://www.peeringdb.com/api/ix --data-urlencode region_continent=Europe | jq -c '[.data[].id]' | sed 's/\\[//;s/\\]//'` | jq -c '.data[] | [.ix_id, .net_id, .ipaddr4, .ipaddr6, .speed]' | sort -V The query looks for netixlan records belonging to Microsoft, Salesforce.com and Amazone.com (net_id__in=694,1100,1418) which are constrained to IXes in Europe based on the output from the embedded query. The embedded query in single quotes looks for all IXes with \"Continental Region = Europe\". We do a little massaging on the IX ids to get a comma-separated list, which we then use as input in the query. curl -sG https://www.peeringdb.com/api/ix --data-urlencode region_continent=Europe | jq -c '[.data[].id]' | sed 's/\\[//;s/\\]//'","title":"API Specs"},{"location":"api_specs/#restful-api-endpoints-and-specifications","text":"","title":"RESTful API endpoints and specifications"},{"location":"api_specs/#object-types-and-tags","text":"Each object has an associated short hand tag you can use, current available tags are listed at https://www.peeringdb.com/apidocs/ .","title":"Object types and tags"},{"location":"api_specs/#requests","text":"","title":"Requests"},{"location":"api_specs/#url","text":"The URL base appended with /api/ , append with object type and optionally object primary key Object type is not case sensitive. For example: https://www.peeringdb.com/api/ OBJ / id","title":"URL"},{"location":"api_specs/#encoding","text":"To specify the output format, either use the Accept: HTTP header Accept: application/json Or use extension type https://www.peeringdb.com/api/network/42.json JSON all returns fit into object: { meta: { status: message: } data: [ {}, {} ] } meta are optional data always array Note Please let us know what serializers you'd like to see.","title":"Encoding"},{"location":"api_specs/#authentication","text":"Basic HTTP authorization In order to access the API as a guest simply omit any authentication","title":"Authentication"},{"location":"api_specs/#operations","text":"","title":"Operations"},{"location":"api_specs/#get-multiple-objects","text":"endpoint: GET /api/ OBJ optional URL parameters 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 returns array of objects HTTP: GET /api/OBJ curl: curl -X GET https://<username>:<password>@peeringdb.com/api/OBJ","title":"GET: multiple objects"},{"location":"api_specs/#nested-data","text":"Any field ending in the suffix _set (with the exception of 'irr_as_set') is a list of objects in a relationship with the parent object, you can expand those lists with the 'depth' parameter as explained below. 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 <object_type>_set So a set called 'net_set' will hold Network objects (API endpoint /net) Note: unlike GET single, 'depth' here will ONLY expand sets, no single relationships will be expanded - this is by design","title":"Nested data"},{"location":"api_specs/#depth","text":"0: don't expand anything (default) 1: expand all first level sets to ids 2: expand all first level sets to objects curl: curl -X GET https://<username>:<password>@peeringdb.com/api/OBJ?depth=2","title":"Depth"},{"location":"api_specs/#querying-examples","text":"exact: curl -X GET https://<username>:<password>@peeringdb.com/api/OBJ?name=something modifier: curl -X GET https://<username>:<password>@peeringdb.com/api/OBJ?name__contains=something","title":"Querying examples"},{"location":"api_specs/#querying-modifiers","text":"numeric fields: __lt, less than __lte, less than equal __gt, greater than __gte, greater than equal __in, value inside set of values (comma separated) string fields: __contains, field value contains this value __startswith, field value starts with this value __in, value inside set of values (comma separated)","title":"Querying modifiers"},{"location":"api_specs/#since","text":"You can use the since argument with a unix timestamp (seconds) to retrieve all objects updated since then. ?since=1443414678","title":"Since"},{"location":"api_specs/#get-single-object","text":"endpoint: GET /api/ OBJ / id required URL parameters id int optional URL parameters depth int defaults to 2 aka. nested sets and objects will be expanded fields str comma separated list of field names - only matching fields will be returned in the data returns single object in an array HTTP: GET /api/OBJ/42 curl: curl -H \"Accept: application/json\" -X GET https://<username>:<password>@peeringdb.com/api/OBJ/42","title":"GET: single object"},{"location":"api_specs/#nested-data_1","text":"Any field ending in the suffix _set (with the exception of 'irr_as_set') is a list of objects in a relationship with the parent object, you can expand those lists with the 'depth' parameter as explained below. 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 <object_type>_set So a set called 'net_set' will hold Network objects (API endpoint /net) Note: unlike GET multiple, 'depth' here will also expand single relationship 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 ... } }","title":"Nested data"},{"location":"api_specs/#depth_1","text":"0: don't expand anything 1 to 4: expand all sets and related objects according to level of depth specified 2 is default","title":"Depth"},{"location":"api_specs/#post-create-new-object","text":"endpoint: POST /api/ OBJ required URL parameters id int fields to post in either JSON obj \"{}\" or urlencoded field=value curl: curl -H \"Content-Type: application/json\" -X POST --data \"{\\\"state\\\":\\\"active\\\"}\" https://<username>:<password>@peeringdb.com/api/OBJ","title":"POST: create new object"},{"location":"api_specs/#put-edit-object","text":"endpoint: PUT /api/ OBJ / id required URL parameters id int fields to post in either JSON obj \"{}\" or urlencoded field=value you have to provide the complete object with modified data. Retrieve data with depth=0, modify and then put up again. HTTP: PUT /api/OBJ/42 curl: curl -H \"Content-Type: application/json\" -X PUT --data \"{\\\"state\\\":\\\"active\\\"}\" https://<username>:<password>@peeringdb.com/api/OBJ/42","title":"PUT: edit object"},{"location":"api_specs/#delete-delete-object","text":"endpoint: DELETE /api/ OBJ / id required URL parameters id int HTTP: DELETE /api/OBJ/42 curl: curl -H \"Accept: application/json\" -X DELETE https://<username>:<password>@peeringdb.com/api/OBJ/42 Deleted objects can be retrieved by filtering on status=deleted with since > 0.","title":"DELETE: delete object"},{"location":"api_specs/#real-world-example","text":"Q: I'd like to search for Microsoft's, Salesforce.com's and Amazon.com's peering points in Europe. How can I do this? A: You can use the API to perform complex queries, like in this example. curl -sG https://www.peeringdb.com/api/netixlan --data-urlencode net_id__in=694,1100,1418 --data-urlencode ix_id__in=`curl -sG https://www.peeringdb.com/api/ix --data-urlencode region_continent=Europe | jq -c '[.data[].id]' | sed 's/\\[//;s/\\]//'` | jq -c '.data[] | [.ix_id, .net_id, .ipaddr4, .ipaddr6, .speed]' | sort -V The query looks for netixlan records belonging to Microsoft, Salesforce.com and Amazone.com (net_id__in=694,1100,1418) which are constrained to IXes in Europe based on the output from the embedded query. The embedded query in single quotes looks for all IXes with \"Continental Region = Europe\". We do a little massaging on the IX ids to get a comma-separated list, which we then use as input in the query. curl -sG https://www.peeringdb.com/api/ix --data-urlencode region_continent=Europe | jq -c '[.data[].id]' | sed 's/\\[//;s/\\]//'","title":"Real world example"},{"location":"blogs/","text":"PeeringDB Blogs 2024 PeeringDB blogs provide deeper insight into the releases and product roadmap. October 2024 PeeringDB Product Update - October 4, 2024 Data Quality \u2014 Removing Closed Networks - September 7, 2024 Structured Data and More With PeeringDB - July 31, 2024 Containerized Deployment - July 12, 2024 Making beta.peeringdb.com, Search, and KMZ More Attractive - April 15, 2024 Better Search and Export - March 14, 2024 2023 Product Report - February 19, 2024 What happened to our web UI? - February 5, 2024 Better Data - January 19, 2024 2023 PeeringDB Whois Service to Close - November 3, 2023 Your Internal Source of Truth Can Now Push Updates to PeeringDB - November 2, 2023 See Locations in PeeringDB on a Map - October 25, 2023 Alphabetical Search Results - July 21, 2023 Network Type \u2013 What did you tell us? - July 12, 2023 We're Updating our Web UI - July 6, 2023 Network Type \u2013 Your Input Sought - June 3, 2023 New Permission: Manage Peering Sessions - May 23, 2023 Search Gets Better - May 17, 2023 PeeringDB in Your Preferred Language - March 24, 2023 User Suggestions Improve PeeringDB Usability - March 24, 2023 Do You Want Your Configuration Management System to Update PeeringDB - February 23, 2023 PeeringDB's Product Roadmap for 2023 - February 6, 2023 Carrier Objects - January 24, 2023 PeeringDB 2022 Product Report - January 9, 2023 2022 Installing peeringdb-py at NANOG 86 - November 8, 2022 Introducing Analytics - November 3, 2022 Data Quality Improvements Rolled Out - October 26, 2022 API Writes now Need an API Key - September 25, 2022 Organizational Policy Features and More - September 25, 2022 PeeringDB 2022 User Survey - September 14, 2022 Faster PeeringDB Queries - No Limits - July 26, 2022 NANOG 85 Hackathon Project - April 25, 2022 Improve Your Account Security - And Check Our URL - March 28, 2022 2021 Survey Results and 2022 Product Roadmap - February 10, 2022 PeeringDB is Developed by its Community - January 17, 2022 2021 Guidelines for Registering in PeeringDB - October 21, 2021 Your Logo Goes Here! - October 12, 2021 More Details on Facilities - September 21, 2021 Changes to Contacts Marked as Private - September 14, 2021 PeeringDB 2021 User Survey - September 7, 2021 Automating Configuration - Why We Support the IX-F Member Export Schema - August 18, 2021 Advanced Search (Part 2) - July 23, 2021 Should PeeringDB Create a New \u201cCarrier\u201d Object? - July 5, 2021 Advanced Search (Part 1) - June 23, 2021 PeeringDB Can Bring Users to Your Application - May 24, 2021 Getting the Most from PeeringDB with User Developed Tools - May 4, 2021 Geographic Search - March 24, 2021 API Keys - March 10, 2021 2020 Survey Results and 2021 Product Roadmap - March 9, 2021 2020 Contributing Code to PeeringDB Just Got Easier - December 7, 2020 PeeringDB Release v2.24.0 - November 12, 2020 PeeringDB 2020 Satisfaction Survey - November 2, 2020 PeeringDB Release v2.23.0 - October 7, 2020","title":"Blogs"},{"location":"blogs/#peeringdb-blogs","text":"","title":"PeeringDB Blogs"},{"location":"blogs/#2024","text":"PeeringDB blogs provide deeper insight into the releases and product roadmap. October 2024 PeeringDB Product Update - October 4, 2024 Data Quality \u2014 Removing Closed Networks - September 7, 2024 Structured Data and More With PeeringDB - July 31, 2024 Containerized Deployment - July 12, 2024 Making beta.peeringdb.com, Search, and KMZ More Attractive - April 15, 2024 Better Search and Export - March 14, 2024 2023 Product Report - February 19, 2024 What happened to our web UI? - February 5, 2024 Better Data - January 19, 2024","title":"2024"},{"location":"blogs/#2023","text":"PeeringDB Whois Service to Close - November 3, 2023 Your Internal Source of Truth Can Now Push Updates to PeeringDB - November 2, 2023 See Locations in PeeringDB on a Map - October 25, 2023 Alphabetical Search Results - July 21, 2023 Network Type \u2013 What did you tell us? - July 12, 2023 We're Updating our Web UI - July 6, 2023 Network Type \u2013 Your Input Sought - June 3, 2023 New Permission: Manage Peering Sessions - May 23, 2023 Search Gets Better - May 17, 2023 PeeringDB in Your Preferred Language - March 24, 2023 User Suggestions Improve PeeringDB Usability - March 24, 2023 Do You Want Your Configuration Management System to Update PeeringDB - February 23, 2023 PeeringDB's Product Roadmap for 2023 - February 6, 2023 Carrier Objects - January 24, 2023 PeeringDB 2022 Product Report - January 9, 2023","title":"2023"},{"location":"blogs/#2022","text":"Installing peeringdb-py at NANOG 86 - November 8, 2022 Introducing Analytics - November 3, 2022 Data Quality Improvements Rolled Out - October 26, 2022 API Writes now Need an API Key - September 25, 2022 Organizational Policy Features and More - September 25, 2022 PeeringDB 2022 User Survey - September 14, 2022 Faster PeeringDB Queries - No Limits - July 26, 2022 NANOG 85 Hackathon Project - April 25, 2022 Improve Your Account Security - And Check Our URL - March 28, 2022 2021 Survey Results and 2022 Product Roadmap - February 10, 2022 PeeringDB is Developed by its Community - January 17, 2022","title":"2022"},{"location":"blogs/#2021","text":"Guidelines for Registering in PeeringDB - October 21, 2021 Your Logo Goes Here! - October 12, 2021 More Details on Facilities - September 21, 2021 Changes to Contacts Marked as Private - September 14, 2021 PeeringDB 2021 User Survey - September 7, 2021 Automating Configuration - Why We Support the IX-F Member Export Schema - August 18, 2021 Advanced Search (Part 2) - July 23, 2021 Should PeeringDB Create a New \u201cCarrier\u201d Object? - July 5, 2021 Advanced Search (Part 1) - June 23, 2021 PeeringDB Can Bring Users to Your Application - May 24, 2021 Getting the Most from PeeringDB with User Developed Tools - May 4, 2021 Geographic Search - March 24, 2021 API Keys - March 10, 2021 2020 Survey Results and 2021 Product Roadmap - March 9, 2021","title":"2021"},{"location":"blogs/#2020","text":"Contributing Code to PeeringDB Just Got Easier - December 7, 2020 PeeringDB Release v2.24.0 - November 12, 2020 PeeringDB 2020 Satisfaction Survey - November 2, 2020 PeeringDB Release v2.23.0 - October 7, 2020","title":"2020"},{"location":"faq/","text":"Frequently Asked Questions General What is PeeringDB? PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions. The database is a non-profit, community-driven initiative run and promoted by volunteers. It is a public tool for the growth and good of the Internet. Join the community and support the continued development of the Internet. How do I get started? See our Quick Start guide: http://docs.peeringdb.com/#quick-start Affiliation requests Q: How does affiliation to an organization work? A: After you have registered, go to your profile . If your organization owns a network (also called AS or ASN), type in the AS number into the field ASN . Then click on the button Affiliate . If your ASN already is in PeeringDB and your org record does not yet have an admin account this request will be sent to PeeringDB Support If your organisation already has one or more admins your request is forwarded to them. They will have to approve / deny your request If your ASN is not in PeeringDB this procedure will first try to retrieve information about this ASN via RDAP to prepopulate the net record and the org record in case it also does not exist. We also use information from this query to auto approve your request if the email address in the RDAP record matches your email address. If this fails your request will be sent to PeeringDB Support You may also use the field organisation to request affiliation to an existing or new organisation. Start typing the name of your company and select from the popup or create a new organisation. Your request is sent to your admins if there is one or to PeeringDB Support otherwise In any case you should get an answer either from your admin or PeeringDB Support . If you don't get an answer within two working days, please mail PeeringDB Support providing necessary information (ASN, Organization). Technical How do I query by ASN? You may type in the ASN in the search box, or for web: http://as42.peeringdb.com https://www.peeringdb.com/net?asn=42 For API: https://www.peeringdb.com/api/net?asn=42 Using /asn used to work, what happened? Please see http://lists.peeringdb.com/pipermail/pdb-announce/2016-March/000036.html for details. How do the new permissions work? Now there is an org entity which owns the records. A record can be a facility, an exchange point, or a network. Users are added to the org entity and can then be given access to any facility, any network, any exchange point, or anything the org itself owns. Authenticating via embedded user/pass in the URL Support for this depends on the client and some browsers have stopped supporting embedded authentication in the URL So for example https://<username>:<password>@peeringdb.com/api/net/1 may work or it may not depending on the browser you are using. Why are dates represented as strings in the API? Date strings are ISO 8601 to keep a standard format. Comparison operations such as __gt , __lt , etc all still work as expected. For fetching records against updated timestamp, you may also use ?since=<seconds since epoch> How do I sync the whole database to my local machine? You may make a full local copy with https://github.com/peeringdb/peeringdb-py , see docs at http://peeringdb.github.io/peeringdb-py/cli/ The initial run will perform a full sync, while subsequent runs will incrementally update changed records. Alternatively peeringdb-simplesync can be used to maintain a mirror in PostgreSQL. When syncing to MySQL I get 'Illegal mix of collations' Such as: django.db.utils.OperationalError: (1267, \"Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='\") We will fix that when time allows, for the time being, just run: alter database peeringdb default character set utf8 default collate utf8_unicode_ci; 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. Governance and membership How does one become a PeeringDB member? Your organization does not need to be a Member to have an active account at PeeringDB.com, but Membership is available to those that do. Per the Bylaws, Membership is determined by having an active PeeringDB.com account, and a subscription to the pdb-gov mailing list. What are the Terms and Conditions for PeeringDB membership? Please see http://docs.peeringdb.com/gov/#organizational-documents for the legal aspects of PeeringDB. The Acceptable Use Policy is at https://www.peeringdb.com/aup . Are there any membership fees required for members? No, there are no membership fees required. The organization welcomes sponsorships as its method of financial support. Please see https://www.peeringdb.com/sponsors for more information on supporting the PeeringDB. Are there any liabilities imposed on members? 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.","title":"FAQs"},{"location":"faq/#frequently-asked-questions","text":"","title":"Frequently Asked Questions"},{"location":"faq/#general","text":"","title":"General"},{"location":"faq/#what-is-peeringdb","text":"PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions. The database is a non-profit, community-driven initiative run and promoted by volunteers. It is a public tool for the growth and good of the Internet. Join the community and support the continued development of the Internet.","title":"What is PeeringDB?"},{"location":"faq/#how-do-i-get-started","text":"See our Quick Start guide: http://docs.peeringdb.com/#quick-start","title":"How do I get started?"},{"location":"faq/#affiliation-requests","text":"Q: How does affiliation to an organization work? A: After you have registered, go to your profile . If your organization owns a network (also called AS or ASN), type in the AS number into the field ASN . Then click on the button Affiliate . If your ASN already is in PeeringDB and your org record does not yet have an admin account this request will be sent to PeeringDB Support If your organisation already has one or more admins your request is forwarded to them. They will have to approve / deny your request If your ASN is not in PeeringDB this procedure will first try to retrieve information about this ASN via RDAP to prepopulate the net record and the org record in case it also does not exist. We also use information from this query to auto approve your request if the email address in the RDAP record matches your email address. If this fails your request will be sent to PeeringDB Support You may also use the field organisation to request affiliation to an existing or new organisation. Start typing the name of your company and select from the popup or create a new organisation. Your request is sent to your admins if there is one or to PeeringDB Support otherwise In any case you should get an answer either from your admin or PeeringDB Support . If you don't get an answer within two working days, please mail PeeringDB Support providing necessary information (ASN, Organization).","title":"Affiliation requests"},{"location":"faq/#technical","text":"","title":"Technical"},{"location":"faq/#how-do-i-query-by-asn","text":"You may type in the ASN in the search box, or for web: http://as42.peeringdb.com https://www.peeringdb.com/net?asn=42 For API: https://www.peeringdb.com/api/net?asn=42","title":"How do I query by ASN?"},{"location":"faq/#using-asn-used-to-work-what-happened","text":"Please see http://lists.peeringdb.com/pipermail/pdb-announce/2016-March/000036.html for details.","title":"Using /asn used to work, what happened?"},{"location":"faq/#how-do-the-new-permissions-work","text":"Now there is an org entity which owns the records. A record can be a facility, an exchange point, or a network. Users are added to the org entity and can then be given access to any facility, any network, any exchange point, or anything the org itself owns.","title":"How do the new permissions work?"},{"location":"faq/#authenticating-via-embedded-userpass-in-the-url","text":"Support for this depends on the client and some browsers have stopped supporting embedded authentication in the URL So for example https://<username>:<password>@peeringdb.com/api/net/1 may work or it may not depending on the browser you are using.","title":"Authenticating via embedded user/pass in the URL"},{"location":"faq/#why-are-dates-represented-as-strings-in-the-api","text":"Date strings are ISO 8601 to keep a standard format. Comparison operations such as __gt , __lt , etc all still work as expected. For fetching records against updated timestamp, you may also use ?since=<seconds since epoch>","title":"Why are dates represented as strings in the API?"},{"location":"faq/#how-do-i-sync-the-whole-database-to-my-local-machine","text":"You may make a full local copy with https://github.com/peeringdb/peeringdb-py , see docs at http://peeringdb.github.io/peeringdb-py/cli/ The initial run will perform a full sync, while subsequent runs will incrementally update changed records. Alternatively peeringdb-simplesync can be used to maintain a mirror in PostgreSQL.","title":"How do I sync the whole database to my local machine?"},{"location":"faq/#when-syncing-to-mysql-i-get-illegal-mix-of-collations","text":"Such as: django.db.utils.OperationalError: (1267, \"Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='\") We will fix that when time allows, for the time being, just run: alter database peeringdb default character set utf8 default collate utf8_unicode_ci;","title":"When syncing to MySQL I get 'Illegal mix of collations'"},{"location":"faq/#what-does-the-never-via-route-servers-flag-mean-and-how-does-it-work","text":"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.","title":"What does the Never via route servers flag mean and how does it work?"},{"location":"faq/#governance-and-membership","text":"","title":"Governance and membership"},{"location":"faq/#how-does-one-become-a-peeringdb-member","text":"Your organization does not need to be a Member to have an active account at PeeringDB.com, but Membership is available to those that do. Per the Bylaws, Membership is determined by having an active PeeringDB.com account, and a subscription to the pdb-gov mailing list.","title":"How does one become a PeeringDB member?"},{"location":"faq/#what-are-the-terms-and-conditions-for-peeringdb-membership","text":"Please see http://docs.peeringdb.com/gov/#organizational-documents for the legal aspects of PeeringDB. The Acceptable Use Policy is at https://www.peeringdb.com/aup .","title":"What are the Terms and Conditions for PeeringDB membership?"},{"location":"faq/#are-there-any-membership-fees-required-for-members","text":"No, there are no membership fees required. The organization welcomes sponsorships as its method of financial support. Please see https://www.peeringdb.com/sponsors for more information on supporting the PeeringDB.","title":"Are there any membership fees required for members?"},{"location":"faq/#are-there-any-liabilities-imposed-on-members","text":"No, there are not.","title":"Are there any liabilities imposed on members?"},{"location":"faq/#to-register-network-information-in-the-peeringdb-is-an-organization-required-to-join-as-a-member","text":"No, that isn't necessary.","title":"To register network information in the PeeringDB, is an organization required to join as a member?"},{"location":"glossary/","text":"Glossary This glossary focuses on terms that are specific to PeeringDB. Other organizations provide glossaries of a wide range of Internet infrastructure terminology. These include: APNIC Euro-IX ICANN RIPE NCC The first set of definitions describes object types and the second set defines the different kinds of contacts. PeeringDB specific terms Object Name Definition fac The name of the database object representing interconnection facilities. Facility A place where networks can connect with other networks. Some interconnection facilities are data centers or suites within data centers. Others are significantly smaller. facix The name of an object derived from the intersection of a fac and an ix object. This happens when an IXP has a presence at an interconnection facility. ix The name of the database object representing IXPs. ix-f The Internet Exchange Federation is a group of four regional IXP Associations. In the context of PeeringDB, their name is applied to the import of JSON structured data that complies with the IX-F Member Export Schema . IXP An infrastructure for interconnecting three or more Autonomous Systems. net The name of the database object representing networks. netix The name of an object derived from the intersection of a net and an ix object. This happens when a network is connected to an IXP. Network An Autonomous System, as defined in RFC 1930 . PeeringDB PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions. poc A Point of Contact for a specific functional role at an organization (see below). Contact role types Not all organizations will have all contact types. For example, an academic institution might not need a sales contact. Role Description Abuse A contact address where reports of abuse can be submitted. Maintenance A contact address for the receipt of maintenance notifications, such as the scheduling of maintenance windows from peers. NOC A contact address for a Network Operations Center. This is the address to use when discussing network anomalies. Policy A contact address for peering and interconnection requests and questions. Public Relations A contact address for an organization\u2019s PR or marketing team. Sales A contact address for an organization\u2019s sales team. Technical A contact address for non-routine technical questions that aren't handled by the NOC.","title":"Glossary"},{"location":"glossary/#glossary","text":"This glossary focuses on terms that are specific to PeeringDB. Other organizations provide glossaries of a wide range of Internet infrastructure terminology. These include: APNIC Euro-IX ICANN RIPE NCC The first set of definitions describes object types and the second set defines the different kinds of contacts.","title":"Glossary"},{"location":"glossary/#peeringdb-specific-terms","text":"Object Name Definition fac The name of the database object representing interconnection facilities. Facility A place where networks can connect with other networks. Some interconnection facilities are data centers or suites within data centers. Others are significantly smaller. facix The name of an object derived from the intersection of a fac and an ix object. This happens when an IXP has a presence at an interconnection facility. ix The name of the database object representing IXPs. ix-f The Internet Exchange Federation is a group of four regional IXP Associations. In the context of PeeringDB, their name is applied to the import of JSON structured data that complies with the IX-F Member Export Schema . IXP An infrastructure for interconnecting three or more Autonomous Systems. net The name of the database object representing networks. netix The name of an object derived from the intersection of a net and an ix object. This happens when a network is connected to an IXP. Network An Autonomous System, as defined in RFC 1930 . PeeringDB PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions. poc A Point of Contact for a specific functional role at an organization (see below).","title":"PeeringDB specific terms"},{"location":"glossary/#contact-role-types","text":"Not all organizations will have all contact types. For example, an academic institution might not need a sales contact. Role Description Abuse A contact address where reports of abuse can be submitted. Maintenance A contact address for the receipt of maintenance notifications, such as the scheduling of maintenance windows from peers. NOC A contact address for a Network Operations Center. This is the address to use when discussing network anomalies. Policy A contact address for peering and interconnection requests and questions. Public Relations A contact address for an organization\u2019s PR or marketing team. Sales A contact address for an organization\u2019s sales team. Technical A contact address for non-routine technical questions that aren't handled by the NOC.","title":"Contact role types"},{"location":"gov/","text":"PeeringDB Governance Mission Statement PeeringDB, a nonprofit member-based organization, facilitates the interconnection of Internet networks globally, with user-maintained information. Organizational Documents Organizational Consent (2015-12-08) Certificate and Articles of Incorporation (2015-12-16) Bylaws (2024-05-18) Policies Acceptable Use Policy Conflict of Interest Policy Data Ownership Policy Financial Controls Policy Press Release Policy Privacy Policy Member Meetings April 18th, 2024: Agenda - Minutes - Audio - Video April 13th, 2023: Agenda - Minutes April 12th, 2022: Agenda - Minutes - Audio April 8th, 2021: Agenda - Minutes - Audio April 17th, 2020: Agenda - Minutes - Audio April 25th, 2019: Agenda - Minutes - Audio April 19th, 2018: Agenda - Minutes - Audio April 20th, 2017: Agenda - Minutes - Audio April 21st, 2016: Agenda - Minutes - Audio Board Meetings & Consents 2024: 2024-05-18 , 2024-02-27 2023: 2023-08-11 , 2023-05-18 , 2023-05-08 2022: 2022-07-29 2021: 2021-09-01 , 2021-01-13 2020: 2020-07-09 , 2020-05-08 , 2020-01-13 2019: 2019-09-27 , 2019-07-16 , 2019-05-16 , 2019-03-27 , 2019-01-29 2018: 2018-11-15 , 2018-10-09 , 2018-07-19 , 2018-05-18 , 2018-04-09 , 2018-02-08 2017: 2017-10-18 , 2017-09-20 , 2017-07-07 , 2017-05-18 , 2017-02-09 , 2017-01-13 2016: 2016-12-02 , 2016-09-22 , 2016-08-10 , 2016-07-01 , 2016-05-18 , 2016-04-06 , 2016-03-04 , 2016-02-04 , 2016-01-07 2015: 2015-12-08 Strategic Plan & Organizational Objectives 2020-2021 2019-2020 2017-2018 DRAFT Finances Finance Reports: 2023 , 2022 , 2021 , 2020 , 2019 , 2018 , 2017 , 2016 , 2015 , 2014 IRS Form 990 Tax Exempt Return: 2023 , 2022 , 2021 , 2020 , 2019 , 2018 , 2017 , 2016 , 2015 , 2014 IRS Form W-9: Request for Taxpayer Identification Number and Certification (2019-09-17) IRS Exemption Letter for 501(c)(6) (2016-02-24) IRS Form 1024: Application for Recognition of Exemption Under Section 501(c)(6) (2016-01-07) Washington State Nonprofit Corporation Annual Reports 2024-11-14 , 2023-11-03 , 2022-11-01 , 2021-11-01 , 2020-11-02 , 2019-11-01 , 2018-11-01 , 2017-12-01 , 2016-12-01 , 2016-05-18 Elections & Surveys Election Results: 2024 , 2023 , 2022 , 2021 , 2020 , 2019 , 2018 , 2017 , 2016 , 2015 Voter's Guides: 2024 , 2023 , 2022 , 2021 , 2020 , 2019 , 2018 , 2017 , 2016 , 2015 Announcement of survey results and Board election plan (2015-10-20) Survey for future of PeeringDB (2015-08) Board of Directors Seat 1 (term expires 2025): Christopher Malayter , 2021- Seat 2 (term expires 2026): Job Snijders , 2015- Seat 3 (term expires 2025): Rahul Makhija , 2023- Seat 4 (term expires 2026): Aaron Hughes , 2015- Seat 5 (term expires 2025): Livio Morina , 2023- Officers Christopher Malayter , President, 2023- Aaron Hughes , Vice President, 2023- Shawna Bong , Secretary & Treasurer, 2024- Admin Committee Please see the Admin Committee page. Operations Committee Board members Snijders (Chair) and Hughes. Outreach Committee Please see the Outreach Committee page. Product Committee Please see the Product Committee page. Alumni Chris Caputo, Secretary & Treasurer 2015-2024 Patrick W. Gilmore, Board of Directors 2015-2023, Vice President 2015-2016 Matt Griswold, Board of Directors 2015-2017 Aaron Hughes, President 2015-2023 Fredrik Korsb\u00e4ck, Board of Directors 2019-2021 Arnold Nipper, Board of Directors 2015-2019 Bijal Sanghani, Board of Directors 2017-2023 Job Snijders, Vice President 2016-2023","title":"Governance"},{"location":"gov/#peeringdb-governance","text":"","title":"PeeringDB Governance"},{"location":"gov/#mission-statement","text":"PeeringDB, a nonprofit member-based organization, facilitates the interconnection of Internet networks globally, with user-maintained information.","title":"Mission Statement"},{"location":"gov/#organizational-documents","text":"Organizational Consent (2015-12-08) Certificate and Articles of Incorporation (2015-12-16) Bylaws (2024-05-18)","title":"Organizational Documents"},{"location":"gov/#policies","text":"Acceptable Use Policy Conflict of Interest Policy Data Ownership Policy Financial Controls Policy Press Release Policy Privacy Policy","title":"Policies"},{"location":"gov/#member-meetings","text":"April 18th, 2024: Agenda - Minutes - Audio - Video April 13th, 2023: Agenda - Minutes April 12th, 2022: Agenda - Minutes - Audio April 8th, 2021: Agenda - Minutes - Audio April 17th, 2020: Agenda - Minutes - Audio April 25th, 2019: Agenda - Minutes - Audio April 19th, 2018: Agenda - Minutes - Audio April 20th, 2017: Agenda - Minutes - Audio April 21st, 2016: Agenda - Minutes - Audio","title":"Member Meetings"},{"location":"gov/#board-meetings-consents","text":"2024: 2024-05-18 , 2024-02-27 2023: 2023-08-11 , 2023-05-18 , 2023-05-08 2022: 2022-07-29 2021: 2021-09-01 , 2021-01-13 2020: 2020-07-09 , 2020-05-08 , 2020-01-13 2019: 2019-09-27 , 2019-07-16 , 2019-05-16 , 2019-03-27 , 2019-01-29 2018: 2018-11-15 , 2018-10-09 , 2018-07-19 , 2018-05-18 , 2018-04-09 , 2018-02-08 2017: 2017-10-18 , 2017-09-20 , 2017-07-07 , 2017-05-18 , 2017-02-09 , 2017-01-13 2016: 2016-12-02 , 2016-09-22 , 2016-08-10 , 2016-07-01 , 2016-05-18 , 2016-04-06 , 2016-03-04 , 2016-02-04 , 2016-01-07 2015: 2015-12-08","title":"Board Meetings & Consents"},{"location":"gov/#strategic-plan-organizational-objectives","text":"2020-2021 2019-2020 2017-2018 DRAFT","title":"Strategic Plan & Organizational Objectives"},{"location":"gov/#finances","text":"Finance Reports: 2023 , 2022 , 2021 , 2020 , 2019 , 2018 , 2017 , 2016 , 2015 , 2014 IRS Form 990 Tax Exempt Return: 2023 , 2022 , 2021 , 2020 , 2019 , 2018 , 2017 , 2016 , 2015 , 2014 IRS Form W-9: Request for Taxpayer Identification Number and Certification (2019-09-17) IRS Exemption Letter for 501(c)(6) (2016-02-24) IRS Form 1024: Application for Recognition of Exemption Under Section 501(c)(6) (2016-01-07)","title":"Finances"},{"location":"gov/#washington-state-nonprofit-corporation-annual-reports","text":"2024-11-14 , 2023-11-03 , 2022-11-01 , 2021-11-01 , 2020-11-02 , 2019-11-01 , 2018-11-01 , 2017-12-01 , 2016-12-01 , 2016-05-18","title":"Washington State Nonprofit Corporation Annual Reports"},{"location":"gov/#elections-surveys","text":"Election Results: 2024 , 2023 , 2022 , 2021 , 2020 , 2019 , 2018 , 2017 , 2016 , 2015 Voter's Guides: 2024 , 2023 , 2022 , 2021 , 2020 , 2019 , 2018 , 2017 , 2016 , 2015 Announcement of survey results and Board election plan (2015-10-20) Survey for future of PeeringDB (2015-08)","title":"Elections & Surveys"},{"location":"gov/#board-of-directors","text":"Seat 1 (term expires 2025): Christopher Malayter , 2021- Seat 2 (term expires 2026): Job Snijders , 2015- Seat 3 (term expires 2025): Rahul Makhija , 2023- Seat 4 (term expires 2026): Aaron Hughes , 2015- Seat 5 (term expires 2025): Livio Morina , 2023-","title":"Board of Directors"},{"location":"gov/#officers","text":"Christopher Malayter , President, 2023- Aaron Hughes , Vice President, 2023- Shawna Bong , Secretary & Treasurer, 2024-","title":"Officers"},{"location":"gov/#admin-committee","text":"Please see the Admin Committee page.","title":"Admin Committee"},{"location":"gov/#operations-committee","text":"Board members Snijders (Chair) and Hughes.","title":"Operations Committee"},{"location":"gov/#outreach-committee","text":"Please see the Outreach Committee page.","title":"Outreach Committee"},{"location":"gov/#product-committee","text":"Please see the Product Committee page.","title":"Product Committee"},{"location":"gov/#alumni","text":"Chris Caputo, Secretary & Treasurer 2015-2024 Patrick W. Gilmore, Board of Directors 2015-2023, Vice President 2015-2016 Matt Griswold, Board of Directors 2015-2017 Aaron Hughes, President 2015-2023 Fredrik Korsb\u00e4ck, Board of Directors 2019-2021 Arnold Nipper, Board of Directors 2015-2019 Bijal Sanghani, Board of Directors 2017-2023 Job Snijders, Vice President 2016-2023","title":"Alumni"},{"location":"howtos/","text":"PeeringDB HOWTOs HOWTOs provide a beginner detailed instructions on how to get started using PeeringDB. Create entries Get Started with PeeringDB as a Carrier Operator Get Started with PeeringDB as a Exchange Operator Get Started with PeeringDB as a Facility or Campus Operator Get Started with PeeringDB as a Network Operator Manage entries Manage Organizational Policy Manage User Permissions Search Get Started with Search in PeeringDB Work Within PeeringDB\u2019s Query Limits v2 Search Authentication and security Authenticate to PeeringDB Get Started with API Keys Report a Security Issue Turn on 2FA and Require Users to Enable It Other Become a PeeringDB Member and Vote Install peeringdb-py Get Started with Developing for PeeringDB Setup a PeeringDB Development Environment What is AS112?","title":"HOWTOs"},{"location":"howtos/#peeringdb-howtos","text":"HOWTOs provide a beginner detailed instructions on how to get started using PeeringDB.","title":"PeeringDB HOWTOs"},{"location":"howtos/#create-entries","text":"Get Started with PeeringDB as a Carrier Operator Get Started with PeeringDB as a Exchange Operator Get Started with PeeringDB as a Facility or Campus Operator Get Started with PeeringDB as a Network Operator","title":"Create entries"},{"location":"howtos/#manage-entries","text":"Manage Organizational Policy Manage User Permissions","title":"Manage entries"},{"location":"howtos/#search","text":"Get Started with Search in PeeringDB Work Within PeeringDB\u2019s Query Limits v2 Search","title":"Search"},{"location":"howtos/#authentication-and-security","text":"Authenticate to PeeringDB Get Started with API Keys Report a Security Issue Turn on 2FA and Require Users to Enable It","title":"Authentication and security"},{"location":"howtos/#other","text":"Become a PeeringDB Member and Vote Install peeringdb-py Get Started with Developing for PeeringDB Setup a PeeringDB Development Environment What is AS112?","title":"Other"},{"location":"ix-f-json-import-rules/","text":"IX-F JSON Importer PeeringDB allows networks and IXPs to update entries via the IX-F JSON import feature. General remarks The Importer abides by the recommendations of the Data Ownership Task Force and its resulting Policy Document . Most significantly, this means that unless the tick box Allow IXP Update is enabled by a network, published data will not automatically become unpublished nor will unpublished data automatically become published. For Networks There is a tick box Allow IXP Update which governs the behavior of the Importer. By default this is set to disabled. If Allow IXP Update is enabled, a network entry at an IX may automatically be created, changed, or removed. The network's IX entry is completely governed by the settings in the IX-F JSON data provided by the IX. If Allow IXP Update is disabled, differences in data provided by the IX and the network will result in the following: An email to the network with details about the differences. An email to the IX with details about the differences. Admins for the network will see hints for their network within the PeeringDB web interface. These hints may be accepted or dismissed. The network and the IX are encouraged to reach out to each other to resolve any differences. IXP Update Tools: The Preview button shows the changes that will be performed or suggested during the next IX-F import, depending on the Allow IXP Update setting. The Postmortem button shows a log of recent changes performed as a result of IX-F imports. For IXPs To enable IX-F JSON import: Make sure that your JSON file is valid . Provide a URL to your IX-F JSON data. To do so, click Edit on your IX web page and set the IX-F Member Export URL to the URL and set Enable IX-F Import to enabled. You may also set the visibility of your IX-F JSON URL. Daily at 0000 UTC, the IX-F JSON data will be retrieved and processed by the Importer. The steps above for networks will then be followed. If the IX-F JSON state field is present, settings of active , connected , or operational may be used to indicate a network is operational, while a setting of inactive will be interpreted as the network not being operational. This may be used to denote a network in the process of connecting but not yet active, or a network on hiatus. IX-F Import Preview: The Preview button shows the changes that will be performed or suggested, depending on participant Allow IXP Update settings. A JSON form of this preview is available at: https://www.peeringdb.com/import/ixlan/###/ixf/preview (replace ### with the ID that appears in the URL after /ix/ when viewing your IX page) Note : The Importer expects that you also provide IP addresses. If your IX-F JSON has an empty member_list or only contains ASNs, there will be no useful information. You might want to disable the import. Further Information August 17th, 2020 Data Ownership Policy Implementation Presentation: slides and video","title":"IX-F JSON"},{"location":"ix-f-json-import-rules/#ix-f-json-importer","text":"PeeringDB allows networks and IXPs to update entries via the IX-F JSON import feature.","title":"IX-F JSON Importer"},{"location":"ix-f-json-import-rules/#general-remarks","text":"The Importer abides by the recommendations of the Data Ownership Task Force and its resulting Policy Document . Most significantly, this means that unless the tick box Allow IXP Update is enabled by a network, published data will not automatically become unpublished nor will unpublished data automatically become published.","title":"General remarks"},{"location":"ix-f-json-import-rules/#for-networks","text":"There is a tick box Allow IXP Update which governs the behavior of the Importer. By default this is set to disabled. If Allow IXP Update is enabled, a network entry at an IX may automatically be created, changed, or removed. The network's IX entry is completely governed by the settings in the IX-F JSON data provided by the IX. If Allow IXP Update is disabled, differences in data provided by the IX and the network will result in the following: An email to the network with details about the differences. An email to the IX with details about the differences. Admins for the network will see hints for their network within the PeeringDB web interface. These hints may be accepted or dismissed. The network and the IX are encouraged to reach out to each other to resolve any differences. IXP Update Tools: The Preview button shows the changes that will be performed or suggested during the next IX-F import, depending on the Allow IXP Update setting. The Postmortem button shows a log of recent changes performed as a result of IX-F imports.","title":"For Networks"},{"location":"ix-f-json-import-rules/#for-ixps","text":"To enable IX-F JSON import: Make sure that your JSON file is valid . Provide a URL to your IX-F JSON data. To do so, click Edit on your IX web page and set the IX-F Member Export URL to the URL and set Enable IX-F Import to enabled. You may also set the visibility of your IX-F JSON URL. Daily at 0000 UTC, the IX-F JSON data will be retrieved and processed by the Importer. The steps above for networks will then be followed. If the IX-F JSON state field is present, settings of active , connected , or operational may be used to indicate a network is operational, while a setting of inactive will be interpreted as the network not being operational. This may be used to denote a network in the process of connecting but not yet active, or a network on hiatus. IX-F Import Preview: The Preview button shows the changes that will be performed or suggested, depending on participant Allow IXP Update settings. A JSON form of this preview is available at: https://www.peeringdb.com/import/ixlan/###/ixf/preview (replace ### with the ID that appears in the URL after /ix/ when viewing your IX page) Note : The Importer expects that you also provide IP addresses. If your IX-F JSON has an empty member_list or only contains ASNs, there will be no useful information. You might want to disable the import.","title":"For IXPs"},{"location":"ix-f-json-import-rules/#further-information","text":"August 17th, 2020 Data Ownership Policy Implementation Presentation: slides and video","title":"Further Information"},{"location":"oauth/","text":"OAuth PeeringDB now offers OAuth2 authentication for third-party applications to allow users to authenticate against PeeringDB. Implementation details are at Github #131 . For an example, see IXP-Manager issue #322 . What is OAuth? There is a good write up at https://aaronparecki.com/oauth-2-simplified/ . Register an application First you need to register your application at PeeringDB. : For most applications, you'll want to use the following: Client type: Confidential Authorization grant type: Authorization code Redirect uris: add your redirect URLs here An OIDC algorithm must be selected. URLs PDB_ENDPOINT = \"https://auth.peeringdb.com/\" PDB_OAUTH_ACCESS_TOKEN_URL = '{}oauth2/token/'.format(PDB_ENDPOINT) PDB_OAUTH_AUTHORIZE_URL = '{}oauth2/authorize/'.format(PDB_ENDPOINT) PDB_OAUTH_PROFILE_URL = '{}profile/v1'.format(PDB_ENDPOINT) Fields The fields are based largely on OpenID Connect. Scopes currently are defined as profile : user profile email : adds fields email and verified_email networks : add field networks The perms field is a bitmask for CRUD as the 4 least significant bits. See following: 0b0000 1 1 1 1 | | | +-- Delete | | +---- Update | +------ Read + ------- Create Example for my user: { \"id\": 3, \"name\": \"Matt Griswold\", \"given_name\": \"Matt\", \"family_name\": \"Griswold\", \"email\": \"grizz@20c.com\", \"verified_user\": true, \"verified_email\": true, \"networks\": [ { \"perms\": 15, \"asn\": 63311, \"name\": \"20C\", \"id\": 20 }, { \"perms\": 15, \"asn\": 33713, \"name\": \"United IX\", \"id\": 7889 } ] }","title":"OAuth"},{"location":"oauth/#oauth","text":"PeeringDB now offers OAuth2 authentication for third-party applications to allow users to authenticate against PeeringDB. Implementation details are at Github #131 . For an example, see IXP-Manager issue #322 .","title":"OAuth"},{"location":"oauth/#what-is-oauth","text":"There is a good write up at https://aaronparecki.com/oauth-2-simplified/ .","title":"What is OAuth?"},{"location":"oauth/#register-an-application","text":"First you need to register your application at PeeringDB. : For most applications, you'll want to use the following: Client type: Confidential Authorization grant type: Authorization code Redirect uris: add your redirect URLs here An OIDC algorithm must be selected.","title":"Register an application"},{"location":"oauth/#urls","text":"PDB_ENDPOINT = \"https://auth.peeringdb.com/\" PDB_OAUTH_ACCESS_TOKEN_URL = '{}oauth2/token/'.format(PDB_ENDPOINT) PDB_OAUTH_AUTHORIZE_URL = '{}oauth2/authorize/'.format(PDB_ENDPOINT) PDB_OAUTH_PROFILE_URL = '{}profile/v1'.format(PDB_ENDPOINT)","title":"URLs"},{"location":"oauth/#fields","text":"The fields are based largely on OpenID Connect. Scopes currently are defined as profile : user profile email : adds fields email and verified_email networks : add field networks The perms field is a bitmask for CRUD as the 4 least significant bits. See following: 0b0000 1 1 1 1 | | | +-- Delete | | +---- Update | +------ Read + ------- Create Example for my user: { \"id\": 3, \"name\": \"Matt Griswold\", \"given_name\": \"Matt\", \"family_name\": \"Griswold\", \"email\": \"grizz@20c.com\", \"verified_user\": true, \"verified_email\": true, \"networks\": [ { \"perms\": 15, \"asn\": 63311, \"name\": \"20C\", \"id\": 20 }, { \"perms\": 15, \"asn\": 33713, \"name\": \"United IX\", \"id\": 7889 } ] }","title":"Fields"},{"location":"presentations/","text":"Presentations 2024 What's new on PeeringDB? at RSNOG 10 , Belgrade, RS - November 19, 2024 - Livio Morina What's new on PeeringDB? at 8th South African Peering Forum , Cape Town, ZA - November 14, 2024 - Obinna Adumike What's new on PeeringDB? at nog.fi meeting 2024.11 , Helsinki, FI - November 6, 2024 - Livio Morina PeeringDB Update at RIPE 89 , Prague, CZ - October 31, 2024 - Leo Vegoda What's new on PeeringDB? at NgNOG 2024 , Lagos, NG - October 23, 2024 - Obinna Adumike What's new on PeeringDB? at Netnod Tech Meeting 2024 , Stockhold, SE - October 15, 2024 - Livio Morina What's new on PeeringDB? at RONOG 9 , Bucharest, RO - October 2, 2024 - Livio Morina PeeringDB in Five Minutes at AusNOG 2024 , Sydney, AU - September 5, 2024 - Arnold Nipper What's new on PeeringDB? at AfPIF 2024 , Kinsahsa, CD - August 20, 2024 - Ben Ryall PeeringDB Introduction & Update at PhNOG 2024 Week , Makati City, PH - July 10, 2024 - Arnold Nipper PeeringDB Update at NetUK 1 , London, UK - July 8, 2024 - Paul Hoogsteder What's new on PeeringDB? at WAPF 2024 , Abidjan, CI - June 26, 2024 - Ben Ryall PeeringDB Update at MWPS 2024 , Kansas City, MO, US - June 14, 2024 - Martin Hannigan PeeringDB Update at LINX122 , London, UK - May 28, 2024 - Ben Ryall PeeringDB Update at RIPE 88 , Krak\u00f3w, PL - May 23, 2024 - Paul Hoogsteder What's new on PeeringDB? at ITNOG8 , Bologna, IT - May 7, 2024 - Livio Morina PeeringDB Introduction & Update at SANOG 41 , Mumbai, IN - April 29, 2024 - Arnold Nipper What's new on PeeringDB? at SEE 12 , Athens, GR - April 22, 2024 - Livio Morina PeeringDB Update at GPF 2024 , San Juan, PR, US - April 15, 2024 - Chris Malayter PeeringDB Update at DKNOG14 , Copenhagen, DK - March 8, 2024 - Chriztoffer Hansen PeeringDB Update at Peering Days 2024 , Krakow, PL - March 7, 2024 - Ben Ryall PeeringDB Update at NANOG 90 , Charlotte, NC, US - February 12, 2024 - Martin Hannigan 2023 PeeringDB Update at RIPE 87 , Rome, IT - November 30, 2023 - Leo Vegoda What's new on PeeringDB? at MIX Salotto 2023 , Milan, IT - November 15, 2023 - Livio Morina What is PeeringDB? Why is it important for network operators? at RSNOG9 , Belgrade, RS - November 9, 2023 - Livio Morina What\u2019s new on PeeringDB? at GRNOG 15 , Athens, GR - October 25, 2023 - Livio Morina What\u2019s new on PeeringDB? at FRnOG 38 , Paris, FR - October 6, 2023 - Livio Morina PeeringDB Operations & Product Update at SwiNOG#38 , Berne, CH - June 21, 2023 - Arnold Nipper PeeringDB Update at RIPE 86 , Rotterdam, NL - May 25, 2023 - Leo Vegoda PeeringDB Operations & Product Update at ITNOG7 , Bologna, IT - May 9, 2023 - Arnold Nipper What\u2019s new on PeeringDB? at the 38th Euro-IX Forum , Cluj-Napoca, RO - April 24, 2023 - Arnold Nipper PeeringDB Operations & Product Update at SEE 11 , Split, HR - April 5, 2023 - Arnold Nipper PeeringDB Operations & Product Update at GPF 2023 , Coronado, CA, US - April 4, 2023 - Matt Griswold PeeringDB Operations & Product Update at Peering Days 2023 , Sofia, BG - March 30, 2023 - Arnold Nipper PeeringDB Operations & Product Update at DKNOG13 , Copenhagen, DK - March 10, 2023 - Arnold Nipper 2022 PeeringDB at AOPF/AONOG 2022 - December 8, 2022 - Darwin Da Costa PeeringDB Operations & Product Update at DENOG14 , Hamburg, DE - November 15, 2022 - Arnold Nipper PeeringDB Operations & Product Update at RIPE 85 , Belgrade, RS - October 26, 2022 - Arnold Nipper PeeringDB Operations & Product Update at ngPIF 2022 , Lagos, NG - October 25, 2022 - Ben Ryall PeeringDB at WTR POP-PI 2022 - October 20, 2022 - Julimar Lunguinho Mendes ( video ) PeeringDB Call for Committee Members at NANOG 86 , Hollywood, CA, US - October 19, 2022 - Patrick Gilmore PeeringDB Operations & Product Update at the 37th Euro-IX Forum , Edinburgh, UK - October 11, 2022 - Greg Hankins PeeringDB Update at EPF 2022 , Rome, IT - September 12, 2022 - Arnold Nipper PeeringDB Update at AfPIF 2022 , Kigali, RW - August 23, 2022 - Ben Ryall PeeringDB Update at GPF 2022 , Washington, DC, US - May 12, 2022 - Chris Malayter 2021 Status Update at Virtual Tech Day with Euro-IX PeeringToolbox - February 3, 2022 - Leo Vegoda 2021 Introduction to PeeringDB at GNA-G Routing WG - December 14, 2021 - Arnold Nipper PeeringDB Update at Semana de Capacita\u00e7\u00e3o On-line 3 - October 1, 2021 - Julimar Lunguinho Mendes PeeringDB Update at WTR PoP-MA - September 30, 2021 - Julimar Lunguinho Mendes 2020 PeeringDB at IX F\u00f3rum 14 - December 4, 2020 - Julimar Lunguinho Mendes ( video ) Introducci\u00f3n a PeeringDB at Seguridad en el Ruteo: MANRS para Operadores de Red de Universidades - October 2, 2020 - Diego Dominguez Data Ownership Policy Implementation Presentation - August 17, 2020 - Filiz Yilmaz, Steve McManus, Arnold Nipper ( video ) PeeringDB Data Ownership Task Force at PeeringDB Annual Meeting 2020 - April 17, 2020 - Filiz Yilmaz PeeringDB at ABRINT na Estrada Campo Grande , Campo Grande, BR - March 10, 2020 - Julimar Lunguinho Mendes PeeringDB Update at PhNOG 2020 , Manila, PH - February 26, 2020 - Arnold Nipper PeeringDB Update at APRICOT 2020 , Melbourne, AU - February 19, 2020 - Arnold Nipper 2019 PeeringDB Update (English)/ \u041d\u043e\u0432\u043e\u0441\u0442\u0438 \u043e\u0442 PeeringDB (P\u0443\u0441\u0441\u043a\u0438\u0439) at MSK-IX Peering Forum 2019 , Moscow, RU - December 5, 2019 - Filiz Yilmaz PeeringDB - Como Est\u00e1 a Ado\u00e7\u00e3o no Brasil at MUM in Brazil , Foz do Igua\u00e7u, BR - November 29, 2019 - Julimar Lunguinho Mendes PeeringDB Para Que Sirve? at XII Encuentro Nacional de T\u00e9cnicos , Salta, AR - November 28, 2019 - Hernan Moguilevsky PeeringDB Update: A Look Into PeeringDB's Data for AT/CH/DE/LU and the Latest Changes at DENOG11 , Hamburg, DE - November 12, 2019 - Stefan Funke PeeringDB Update at Peering Asia 3.0 , Kuala Lumpur, MY - November 7, 2019 - Arnold Nipper PeeringDB Update at ATNOG 2019/2 , Vienna, AT - November 5, 2019 - Stefan Funke Introduction to PeeringDB at JBIX Peering Forum 2019 , Kuala Lumpur, MY - November 5, 2019 - Arnold Nipper Introduction to PeeringDB at ngNOG 2019 , Lagos, NG - October 30, 2019 - Ben Ryall Cadastro para participantes do IX.br at IX F\u00f3rum Regional , Florian\u00f3polis, BR - October 25, 2019 - Julimar Lunguinho Mendes OAuth for IXP Operators at the 35th Euro-IX Forum , Zaandam, NL - October 21, 2019 - Barry O'Donovan The PeeringDB API at the 35th Euro-IX Forum , Zaandam, NL - October 21, 2019 - Arnold Nipper Introduction to PeeringDB at RONOG 6 , Bucharest, RO - October 1, 2019 - Arnold Nipper PeeringDB Update at EPF14 , Tallinn, EE - September 18, 2019 - Filiz Yilmaz Cadastro para participantes do IX.br at IX F\u00f3rum Regional , Natal, BR - September 6, 2019 - Julimar Lunguinho Mendes Introduction to PeeringDB at SAFNOG-5 , Johannesburg, ZA - August 28, 2019 - Arnold Nipper Introduction to PeeringDB at AfPIF-10 , Balaclava, MV - August 22, 2019 - Arnold Nipper Introducci\u00f3n a PeeringDB at MexNOG 2019 , Mexico City, MX - August 14, 2019 - Diego Dominguez Introduction to PeeringDB at ATNOG 2019/1 , Salzburg, AT - July 16, 2019 - Arnold Nipper Introduction to PeeringDB at INNOG 2 , New Delhi, IN - July 1, 2019 - Arnold Nipper ( video ) Cadastro para participantes do IX.br at IX F\u00f3rum Regional , S\u00e3o Paulo, BR - June 10, 2019 - Julimar Lunguinho Mendes News from PeeringDB at ENOG 16 , Tbilisi, GE - June 3, 2019 - Arnold Nipper PeeringDB Update at NONOG-3 , Oslo, NO - May 27, 2019 - Arnold Nipper PeeringDB Update at SINOG 6.0 , Ljubljana, SI - May 14, 2019 - Arnold Nipper Introduction to PeeringDB at BKNIX Peering Forum and ThaiNOG Day 2019 , Bangkok, TH - May 7, 2019 - Arnold Nipper Use in Latin America at Peering Forum LAC , Punta Cana, DR - May 6, 2019 - Julimar Lunguinho Mendes and Carlos Martinez Cagnazzo Cadastro para participantes do IX.br at IX F\u00f3rum Regional , Campo Grande, BR - April 26, 2019 - Julimar Lunguinho Mendes Introduction to PeeringDB at Telecom Day , St. Petersburg, RU - April 19, 2019 - Arnold Nipper PeeringDB Update at SEE 8 , Sarajevo, BH - April 17, 2019 - Arnold Nipper PeeringDB Update at Curso Avan\u00e7ado de IPv6 , S\u00e3o Paulo, BR - April 5, 2019 - Julimar Lunguinho Mendes PeeringDB Update at BCIX Round Table April 2019 , Berlin, DE - April 4, 2019 - Stefan Funke PeeringDB Update at MENOG 19 , Beirut, LB - April 3, 2019 - Arnold Nipper PeeringDB Update at DKNOG9 , Copenhagen, DK - March 15, 2019 - Arnold Nipper PeeringDB Update at Peering Days 2019 , Zagreb, CR - March 12, 2019 - Arnold Nipper PeeringDB Update at PhNOG 2019 , Cebu, PH - March 8, 2019 - Arnold Nipper PeeringDB Update at HKNOG 7.0 , Hong Kong, HK - March 1, 2019 - Arnold Nipper 2018 PeeringDB Update at MSK-IX Peering Forum 2018 , Moscow, RU - November 23, 2018 - Rebecca Stani\u0107 PeeringDB Update at DENOG10 , Darmstadt, DE - November 21, 2018 - Arnold Nipper PeeringDB Update at ITNOG4 , Bologna, IT - November 9, 2018 - Arnold Nipper Introduction to PeeringDB API at the 33rd Euro-IX Forum , Venice, IT - November 6, 2018 - Arnold Nipper PeeringDB Introduction at ngNOG 2018 , Lagos, NG - October 31, 2018 - Ben Ryall PeeringDB Update at SwiNOG #34 , Berne, CH - October 30, 2018 - Arnold Nipper PeeringDB Update and Japanese Localization Experience at Peering Asia 2.0 , Hong Kong, HK - October 25, 2018 - Arnold Nipper and Masataka Mawatari PeeringDB Update at SAFNOG-4/EANOG/tzNOG , Dar es Salaam, TZ - September 25, 2018 - Arnold Nipper PeeringDB Update at EPF 13 , Athens, GR - September 18, 2018 - Rebecca Stani\u0107 Cadastro para participantes do IX.br at IX (PTT) F\u00f3rum Regional , Natal, BR - September 14, 2018 - Julimar Lunguinho Mendes PeeringDB Frontend Translation Project at APNIC 46 , Noumea, NC - September 12, 2018 - Masataka Mawatari PeeringDB Update at AfPIF2018 , Cape Town, ZA - August 23, 2018 - Arnold Nipper PeeringDB for IXes at AFIX , Cape Town, ZA - August 20, 2018 - Arnold Nipper Introduction to PeeringDB API at SANOG 32 , Dhaka, BD - August 10, 2018 - Arnold Nipper PeeringDB Update at SANOG 32 , Dhaka, BD - August 9, 2018 - Arnold Nipper PeeringDB: What is it, how to and benefits at New England Peering Forum 2018 , Cambridge, MA, US - June 22, 2018 - Patrick W. Gilmore PeeringDB Update at SEE 7 , Timi\u0219oara, R0 - June 18, 2018 - Arnold Nipper PeeringDB Update at ENOG 15 , Moscow, RU - June 5, 2018 - Arnold Nipper PeeringDB Update at SwiNOG 33 , Berne, CH - May 24, 2018 - Arnold Nipper PeeringDB Update e cadastro de Facilities at GTER 45 , Florian\u00f3polis, BR - May 22, 2018 - Julimar Lunguinho Mendes ( video ) PeeringDB Update at RIPE 76 Connect Working Group , Marseille, FR - May 16, 2018 - Arnold Nipper ( video ) PeeringDB Update at African Internet Summit 2018 , Dakar, SN - May 8, 2018 - Arnold Nipper PeeringDB Update at DKNOG8 , Copenhagen, DK - March 9, 2018 - Arnold Nipper PeeringDB Update at CEE Peering Days 2018 , Berlin, DE - March 7, 2018 - Arnold Nipper Introduction to PeeringDB at APRICOT 2018 , Kathmandu, NP - February 26, 2018 - Arnold Nipper PeeringDB Update at APIX Meeting #17 , Kathmandu, NP - February 24, 2018 - Arnold Nipper PeeringDB Introduction at Capacity India & SAARC 2018 , New Delhi, IN - February 8, 2018 - Arnold Nipper 2017 PeeringDB Update at NIX.cz Member Meering , Prague, CZ - November 23, 2017 - Bijal Sanghani PeeringDB Update at DENOG9 , Darmstadt, DE - November 23, 2017 - Arnold Nipper PeeringDB Update at ALNOF , Tirana, AL - November 14, 2017 - Bijal Sanghani PeeringDB Update at Peering Asia 1.0 , Kyoto, JP - November 1, 2017 - Arnold Nipper PeeringDB Update at TOP-IX Meeting , Torino, IT - September 26, 2017 - Bijal Sanghani PeeringDB Update at NPD 17 , The Hague, NL - September 15, 2017 - Arnold Nipper PeeringDB Update at SAFNOG-3 , Durban, ZA - September 6, 2017 - Arnold Nipper PeeringDB Update at AfPIF 2017 , Abidjan, CI - August 24, 2017 - Arnold Nipper PeeringDB Update at SANOG 30 Peering Forum, Gurgaon, IN - July 10, 2017 - Arnold Nipper More benefits from PeeringDB at DE-CIX Technical Meeting , Frankfurt, DE - June 22, 2017 - Arnold Nipper PeeringDB Update at NANOG 70 , Bellevue, WA, US - June 5, 2017 - Aaron Hughes PeeringDB Update at BOSNOG Meeting & IX Peering Forum , Cambridge, MA, US - June 2, 2017 - Stephen McManus Orienta\u00e7\u00f5es no preenchimento de participantes do IX.br at GTER 43 , Foz do Igua\u00e7u, BR - May 25, 2017 - Julimar Lunguinho Mendes PeeringDB Update at ENOG 13.0 , Saint Petersburg, RU - May 23, 2017 - Arnold Nipper PeeringDB Update at Global Peering Forum 12.0 , New York, NY, US - April 26, 2017 - Aaron Huges PeeringDB at GORE/ESNOG Reunion 19 , Barcelona, ES - April 6, 2017 - Arnold Nipper PeeringDB at CEE Peering Days 2017 , Ljubljana, SL - March 23, 2017 - Arnold Nipper PeeringDB 2.0 at APRICOT 2017 , Ho Chi Minh City, VN - February 28, 2017 - Arnold Nipper 2016 PeeringDB at 19 KIKE Conference , Serock, PL - November 23, 2016 - Robert Jakub PeeringDB 2.0 at ITNOG2 , Bologna, IT - November 3, 2016 - Arnold Nipper PeeringDB Product Committee Charter Survey at EPF 11 , Sofia, BG - September 20, 2016 - Eric Loos PeeringDB 2.0 at NPD 16 , The Hague, NL - September 16, 2016 - Walt Wollny PeeringDB 2.0 at AfPIF 2016 , Dar es Salaam, TZ - August 30, 2016 - Arnold Nipper PeeringDB 2.0 for IXPs at AFIX 2016 , Dar es Salaam, TZ - August 29, 2016 - Arnold Nipper PeeringDB 2.0 at ENOG 11 , Moscow, RU - June 7, 2016 - Arnold Nipper PeeringDB 2.0 at RIPE 72 , Copenhagen, DK - May 25, 2016 - Greg Hankins PeeringDB 2.0 at CHI-NOG 06 , Chicago, IL, US - May 12, 2016 - Matt Griswold PeeringDB 2.0 e o Cen\u00e1rio Brasileiro and IX.br Guia de cadastro de informa\u00e7\u00f5es de ASNs no PeeringDB at GTER 41 , Uberl\u00e2ndia, BR - May 12, 2016 - Eduardo Ascen\u00e7o Reis PeeringDB 2.0 for IXPs at 28th Euro-IX Forum , Luxembourg, LU - April 26, 2016 - Greg Hankins / Arnold Nipper RIPE SEE 5 , Tirana, AL - April 19, 2016 - Arnold Nipper PeeringDB 2.0 at UKNOF34 , Manchester, UK - April 21, 2016 - Greg Hankins PeeringDB Update at GPF 11 , Los Angeles, CA, US - April 13, 2016 - Aaron Hughes NetNod , Stockholm, SE - March 17, 2016 - Job Snijders DKNOG6 , Copenhagen, DK - March 10, 2016 - Job Snijders PeeringDB Update - Aaron Hughes APRICOT 2016 , Auckland, NZ - February 23, 2016 - Aaron Hughes NANOG 66 , San Diego, CA, US - February 10, 2016 - Aaron Hughes PeeringDB Version 2 Coding Introduction at NANOG 66 , San Diego, CA, US - February 8, 2016 - Matt Griswold 2015 PeeringDB Version 2 Brazil - Matt Griswold / Greg Hankins IX (PTT) F\u00f3rum 9 , S\u00e3o Paulo, BR - December 8, 2015 - Greg Hankins PeeringDB Version 2 Introduction - Matt Griswold 27th Euro-IX Forum , Berlin, DE - October 26, 2015 - Greg Hankins DENOG7 , Darmstadt, DE - October 30, 2015 - Arnold Nipper","title":"Presentations"},{"location":"presentations/#presentations","text":"","title":"Presentations"},{"location":"presentations/#2024","text":"What's new on PeeringDB? at RSNOG 10 , Belgrade, RS - November 19, 2024 - Livio Morina What's new on PeeringDB? at 8th South African Peering Forum , Cape Town, ZA - November 14, 2024 - Obinna Adumike What's new on PeeringDB? at nog.fi meeting 2024.11 , Helsinki, FI - November 6, 2024 - Livio Morina PeeringDB Update at RIPE 89 , Prague, CZ - October 31, 2024 - Leo Vegoda What's new on PeeringDB? at NgNOG 2024 , Lagos, NG - October 23, 2024 - Obinna Adumike What's new on PeeringDB? at Netnod Tech Meeting 2024 , Stockhold, SE - October 15, 2024 - Livio Morina What's new on PeeringDB? at RONOG 9 , Bucharest, RO - October 2, 2024 - Livio Morina PeeringDB in Five Minutes at AusNOG 2024 , Sydney, AU - September 5, 2024 - Arnold Nipper What's new on PeeringDB? at AfPIF 2024 , Kinsahsa, CD - August 20, 2024 - Ben Ryall PeeringDB Introduction & Update at PhNOG 2024 Week , Makati City, PH - July 10, 2024 - Arnold Nipper PeeringDB Update at NetUK 1 , London, UK - July 8, 2024 - Paul Hoogsteder What's new on PeeringDB? at WAPF 2024 , Abidjan, CI - June 26, 2024 - Ben Ryall PeeringDB Update at MWPS 2024 , Kansas City, MO, US - June 14, 2024 - Martin Hannigan PeeringDB Update at LINX122 , London, UK - May 28, 2024 - Ben Ryall PeeringDB Update at RIPE 88 , Krak\u00f3w, PL - May 23, 2024 - Paul Hoogsteder What's new on PeeringDB? at ITNOG8 , Bologna, IT - May 7, 2024 - Livio Morina PeeringDB Introduction & Update at SANOG 41 , Mumbai, IN - April 29, 2024 - Arnold Nipper What's new on PeeringDB? at SEE 12 , Athens, GR - April 22, 2024 - Livio Morina PeeringDB Update at GPF 2024 , San Juan, PR, US - April 15, 2024 - Chris Malayter PeeringDB Update at DKNOG14 , Copenhagen, DK - March 8, 2024 - Chriztoffer Hansen PeeringDB Update at Peering Days 2024 , Krakow, PL - March 7, 2024 - Ben Ryall PeeringDB Update at NANOG 90 , Charlotte, NC, US - February 12, 2024 - Martin Hannigan","title":"2024"},{"location":"presentations/#2023","text":"PeeringDB Update at RIPE 87 , Rome, IT - November 30, 2023 - Leo Vegoda What's new on PeeringDB? at MIX Salotto 2023 , Milan, IT - November 15, 2023 - Livio Morina What is PeeringDB? Why is it important for network operators? at RSNOG9 , Belgrade, RS - November 9, 2023 - Livio Morina What\u2019s new on PeeringDB? at GRNOG 15 , Athens, GR - October 25, 2023 - Livio Morina What\u2019s new on PeeringDB? at FRnOG 38 , Paris, FR - October 6, 2023 - Livio Morina PeeringDB Operations & Product Update at SwiNOG#38 , Berne, CH - June 21, 2023 - Arnold Nipper PeeringDB Update at RIPE 86 , Rotterdam, NL - May 25, 2023 - Leo Vegoda PeeringDB Operations & Product Update at ITNOG7 , Bologna, IT - May 9, 2023 - Arnold Nipper What\u2019s new on PeeringDB? at the 38th Euro-IX Forum , Cluj-Napoca, RO - April 24, 2023 - Arnold Nipper PeeringDB Operations & Product Update at SEE 11 , Split, HR - April 5, 2023 - Arnold Nipper PeeringDB Operations & Product Update at GPF 2023 , Coronado, CA, US - April 4, 2023 - Matt Griswold PeeringDB Operations & Product Update at Peering Days 2023 , Sofia, BG - March 30, 2023 - Arnold Nipper PeeringDB Operations & Product Update at DKNOG13 , Copenhagen, DK - March 10, 2023 - Arnold Nipper","title":"2023"},{"location":"presentations/#2022","text":"PeeringDB at AOPF/AONOG 2022 - December 8, 2022 - Darwin Da Costa PeeringDB Operations & Product Update at DENOG14 , Hamburg, DE - November 15, 2022 - Arnold Nipper PeeringDB Operations & Product Update at RIPE 85 , Belgrade, RS - October 26, 2022 - Arnold Nipper PeeringDB Operations & Product Update at ngPIF 2022 , Lagos, NG - October 25, 2022 - Ben Ryall PeeringDB at WTR POP-PI 2022 - October 20, 2022 - Julimar Lunguinho Mendes ( video ) PeeringDB Call for Committee Members at NANOG 86 , Hollywood, CA, US - October 19, 2022 - Patrick Gilmore PeeringDB Operations & Product Update at the 37th Euro-IX Forum , Edinburgh, UK - October 11, 2022 - Greg Hankins PeeringDB Update at EPF 2022 , Rome, IT - September 12, 2022 - Arnold Nipper PeeringDB Update at AfPIF 2022 , Kigali, RW - August 23, 2022 - Ben Ryall PeeringDB Update at GPF 2022 , Washington, DC, US - May 12, 2022 - Chris Malayter 2021 Status Update at Virtual Tech Day with Euro-IX PeeringToolbox - February 3, 2022 - Leo Vegoda","title":"2022"},{"location":"presentations/#2021","text":"Introduction to PeeringDB at GNA-G Routing WG - December 14, 2021 - Arnold Nipper PeeringDB Update at Semana de Capacita\u00e7\u00e3o On-line 3 - October 1, 2021 - Julimar Lunguinho Mendes PeeringDB Update at WTR PoP-MA - September 30, 2021 - Julimar Lunguinho Mendes","title":"2021"},{"location":"presentations/#2020","text":"PeeringDB at IX F\u00f3rum 14 - December 4, 2020 - Julimar Lunguinho Mendes ( video ) Introducci\u00f3n a PeeringDB at Seguridad en el Ruteo: MANRS para Operadores de Red de Universidades - October 2, 2020 - Diego Dominguez Data Ownership Policy Implementation Presentation - August 17, 2020 - Filiz Yilmaz, Steve McManus, Arnold Nipper ( video ) PeeringDB Data Ownership Task Force at PeeringDB Annual Meeting 2020 - April 17, 2020 - Filiz Yilmaz PeeringDB at ABRINT na Estrada Campo Grande , Campo Grande, BR - March 10, 2020 - Julimar Lunguinho Mendes PeeringDB Update at PhNOG 2020 , Manila, PH - February 26, 2020 - Arnold Nipper PeeringDB Update at APRICOT 2020 , Melbourne, AU - February 19, 2020 - Arnold Nipper","title":"2020"},{"location":"presentations/#2019","text":"PeeringDB Update (English)/ \u041d\u043e\u0432\u043e\u0441\u0442\u0438 \u043e\u0442 PeeringDB (P\u0443\u0441\u0441\u043a\u0438\u0439) at MSK-IX Peering Forum 2019 , Moscow, RU - December 5, 2019 - Filiz Yilmaz PeeringDB - Como Est\u00e1 a Ado\u00e7\u00e3o no Brasil at MUM in Brazil , Foz do Igua\u00e7u, BR - November 29, 2019 - Julimar Lunguinho Mendes PeeringDB Para Que Sirve? at XII Encuentro Nacional de T\u00e9cnicos , Salta, AR - November 28, 2019 - Hernan Moguilevsky PeeringDB Update: A Look Into PeeringDB's Data for AT/CH/DE/LU and the Latest Changes at DENOG11 , Hamburg, DE - November 12, 2019 - Stefan Funke PeeringDB Update at Peering Asia 3.0 , Kuala Lumpur, MY - November 7, 2019 - Arnold Nipper PeeringDB Update at ATNOG 2019/2 , Vienna, AT - November 5, 2019 - Stefan Funke Introduction to PeeringDB at JBIX Peering Forum 2019 , Kuala Lumpur, MY - November 5, 2019 - Arnold Nipper Introduction to PeeringDB at ngNOG 2019 , Lagos, NG - October 30, 2019 - Ben Ryall Cadastro para participantes do IX.br at IX F\u00f3rum Regional , Florian\u00f3polis, BR - October 25, 2019 - Julimar Lunguinho Mendes OAuth for IXP Operators at the 35th Euro-IX Forum , Zaandam, NL - October 21, 2019 - Barry O'Donovan The PeeringDB API at the 35th Euro-IX Forum , Zaandam, NL - October 21, 2019 - Arnold Nipper Introduction to PeeringDB at RONOG 6 , Bucharest, RO - October 1, 2019 - Arnold Nipper PeeringDB Update at EPF14 , Tallinn, EE - September 18, 2019 - Filiz Yilmaz Cadastro para participantes do IX.br at IX F\u00f3rum Regional , Natal, BR - September 6, 2019 - Julimar Lunguinho Mendes Introduction to PeeringDB at SAFNOG-5 , Johannesburg, ZA - August 28, 2019 - Arnold Nipper Introduction to PeeringDB at AfPIF-10 , Balaclava, MV - August 22, 2019 - Arnold Nipper Introducci\u00f3n a PeeringDB at MexNOG 2019 , Mexico City, MX - August 14, 2019 - Diego Dominguez Introduction to PeeringDB at ATNOG 2019/1 , Salzburg, AT - July 16, 2019 - Arnold Nipper Introduction to PeeringDB at INNOG 2 , New Delhi, IN - July 1, 2019 - Arnold Nipper ( video ) Cadastro para participantes do IX.br at IX F\u00f3rum Regional , S\u00e3o Paulo, BR - June 10, 2019 - Julimar Lunguinho Mendes News from PeeringDB at ENOG 16 , Tbilisi, GE - June 3, 2019 - Arnold Nipper PeeringDB Update at NONOG-3 , Oslo, NO - May 27, 2019 - Arnold Nipper PeeringDB Update at SINOG 6.0 , Ljubljana, SI - May 14, 2019 - Arnold Nipper Introduction to PeeringDB at BKNIX Peering Forum and ThaiNOG Day 2019 , Bangkok, TH - May 7, 2019 - Arnold Nipper Use in Latin America at Peering Forum LAC , Punta Cana, DR - May 6, 2019 - Julimar Lunguinho Mendes and Carlos Martinez Cagnazzo Cadastro para participantes do IX.br at IX F\u00f3rum Regional , Campo Grande, BR - April 26, 2019 - Julimar Lunguinho Mendes Introduction to PeeringDB at Telecom Day , St. Petersburg, RU - April 19, 2019 - Arnold Nipper PeeringDB Update at SEE 8 , Sarajevo, BH - April 17, 2019 - Arnold Nipper PeeringDB Update at Curso Avan\u00e7ado de IPv6 , S\u00e3o Paulo, BR - April 5, 2019 - Julimar Lunguinho Mendes PeeringDB Update at BCIX Round Table April 2019 , Berlin, DE - April 4, 2019 - Stefan Funke PeeringDB Update at MENOG 19 , Beirut, LB - April 3, 2019 - Arnold Nipper PeeringDB Update at DKNOG9 , Copenhagen, DK - March 15, 2019 - Arnold Nipper PeeringDB Update at Peering Days 2019 , Zagreb, CR - March 12, 2019 - Arnold Nipper PeeringDB Update at PhNOG 2019 , Cebu, PH - March 8, 2019 - Arnold Nipper PeeringDB Update at HKNOG 7.0 , Hong Kong, HK - March 1, 2019 - Arnold Nipper","title":"2019"},{"location":"presentations/#2018","text":"PeeringDB Update at MSK-IX Peering Forum 2018 , Moscow, RU - November 23, 2018 - Rebecca Stani\u0107 PeeringDB Update at DENOG10 , Darmstadt, DE - November 21, 2018 - Arnold Nipper PeeringDB Update at ITNOG4 , Bologna, IT - November 9, 2018 - Arnold Nipper Introduction to PeeringDB API at the 33rd Euro-IX Forum , Venice, IT - November 6, 2018 - Arnold Nipper PeeringDB Introduction at ngNOG 2018 , Lagos, NG - October 31, 2018 - Ben Ryall PeeringDB Update at SwiNOG #34 , Berne, CH - October 30, 2018 - Arnold Nipper PeeringDB Update and Japanese Localization Experience at Peering Asia 2.0 , Hong Kong, HK - October 25, 2018 - Arnold Nipper and Masataka Mawatari PeeringDB Update at SAFNOG-4/EANOG/tzNOG , Dar es Salaam, TZ - September 25, 2018 - Arnold Nipper PeeringDB Update at EPF 13 , Athens, GR - September 18, 2018 - Rebecca Stani\u0107 Cadastro para participantes do IX.br at IX (PTT) F\u00f3rum Regional , Natal, BR - September 14, 2018 - Julimar Lunguinho Mendes PeeringDB Frontend Translation Project at APNIC 46 , Noumea, NC - September 12, 2018 - Masataka Mawatari PeeringDB Update at AfPIF2018 , Cape Town, ZA - August 23, 2018 - Arnold Nipper PeeringDB for IXes at AFIX , Cape Town, ZA - August 20, 2018 - Arnold Nipper Introduction to PeeringDB API at SANOG 32 , Dhaka, BD - August 10, 2018 - Arnold Nipper PeeringDB Update at SANOG 32 , Dhaka, BD - August 9, 2018 - Arnold Nipper PeeringDB: What is it, how to and benefits at New England Peering Forum 2018 , Cambridge, MA, US - June 22, 2018 - Patrick W. Gilmore PeeringDB Update at SEE 7 , Timi\u0219oara, R0 - June 18, 2018 - Arnold Nipper PeeringDB Update at ENOG 15 , Moscow, RU - June 5, 2018 - Arnold Nipper PeeringDB Update at SwiNOG 33 , Berne, CH - May 24, 2018 - Arnold Nipper PeeringDB Update e cadastro de Facilities at GTER 45 , Florian\u00f3polis, BR - May 22, 2018 - Julimar Lunguinho Mendes ( video ) PeeringDB Update at RIPE 76 Connect Working Group , Marseille, FR - May 16, 2018 - Arnold Nipper ( video ) PeeringDB Update at African Internet Summit 2018 , Dakar, SN - May 8, 2018 - Arnold Nipper PeeringDB Update at DKNOG8 , Copenhagen, DK - March 9, 2018 - Arnold Nipper PeeringDB Update at CEE Peering Days 2018 , Berlin, DE - March 7, 2018 - Arnold Nipper Introduction to PeeringDB at APRICOT 2018 , Kathmandu, NP - February 26, 2018 - Arnold Nipper PeeringDB Update at APIX Meeting #17 , Kathmandu, NP - February 24, 2018 - Arnold Nipper PeeringDB Introduction at Capacity India & SAARC 2018 , New Delhi, IN - February 8, 2018 - Arnold Nipper","title":"2018"},{"location":"presentations/#2017","text":"PeeringDB Update at NIX.cz Member Meering , Prague, CZ - November 23, 2017 - Bijal Sanghani PeeringDB Update at DENOG9 , Darmstadt, DE - November 23, 2017 - Arnold Nipper PeeringDB Update at ALNOF , Tirana, AL - November 14, 2017 - Bijal Sanghani PeeringDB Update at Peering Asia 1.0 , Kyoto, JP - November 1, 2017 - Arnold Nipper PeeringDB Update at TOP-IX Meeting , Torino, IT - September 26, 2017 - Bijal Sanghani PeeringDB Update at NPD 17 , The Hague, NL - September 15, 2017 - Arnold Nipper PeeringDB Update at SAFNOG-3 , Durban, ZA - September 6, 2017 - Arnold Nipper PeeringDB Update at AfPIF 2017 , Abidjan, CI - August 24, 2017 - Arnold Nipper PeeringDB Update at SANOG 30 Peering Forum, Gurgaon, IN - July 10, 2017 - Arnold Nipper More benefits from PeeringDB at DE-CIX Technical Meeting , Frankfurt, DE - June 22, 2017 - Arnold Nipper PeeringDB Update at NANOG 70 , Bellevue, WA, US - June 5, 2017 - Aaron Hughes PeeringDB Update at BOSNOG Meeting & IX Peering Forum , Cambridge, MA, US - June 2, 2017 - Stephen McManus Orienta\u00e7\u00f5es no preenchimento de participantes do IX.br at GTER 43 , Foz do Igua\u00e7u, BR - May 25, 2017 - Julimar Lunguinho Mendes PeeringDB Update at ENOG 13.0 , Saint Petersburg, RU - May 23, 2017 - Arnold Nipper PeeringDB Update at Global Peering Forum 12.0 , New York, NY, US - April 26, 2017 - Aaron Huges PeeringDB at GORE/ESNOG Reunion 19 , Barcelona, ES - April 6, 2017 - Arnold Nipper PeeringDB at CEE Peering Days 2017 , Ljubljana, SL - March 23, 2017 - Arnold Nipper PeeringDB 2.0 at APRICOT 2017 , Ho Chi Minh City, VN - February 28, 2017 - Arnold Nipper","title":"2017"},{"location":"presentations/#2016","text":"PeeringDB at 19 KIKE Conference , Serock, PL - November 23, 2016 - Robert Jakub PeeringDB 2.0 at ITNOG2 , Bologna, IT - November 3, 2016 - Arnold Nipper PeeringDB Product Committee Charter Survey at EPF 11 , Sofia, BG - September 20, 2016 - Eric Loos PeeringDB 2.0 at NPD 16 , The Hague, NL - September 16, 2016 - Walt Wollny PeeringDB 2.0 at AfPIF 2016 , Dar es Salaam, TZ - August 30, 2016 - Arnold Nipper PeeringDB 2.0 for IXPs at AFIX 2016 , Dar es Salaam, TZ - August 29, 2016 - Arnold Nipper PeeringDB 2.0 at ENOG 11 , Moscow, RU - June 7, 2016 - Arnold Nipper PeeringDB 2.0 at RIPE 72 , Copenhagen, DK - May 25, 2016 - Greg Hankins PeeringDB 2.0 at CHI-NOG 06 , Chicago, IL, US - May 12, 2016 - Matt Griswold PeeringDB 2.0 e o Cen\u00e1rio Brasileiro and IX.br Guia de cadastro de informa\u00e7\u00f5es de ASNs no PeeringDB at GTER 41 , Uberl\u00e2ndia, BR - May 12, 2016 - Eduardo Ascen\u00e7o Reis PeeringDB 2.0 for IXPs at 28th Euro-IX Forum , Luxembourg, LU - April 26, 2016 - Greg Hankins / Arnold Nipper RIPE SEE 5 , Tirana, AL - April 19, 2016 - Arnold Nipper PeeringDB 2.0 at UKNOF34 , Manchester, UK - April 21, 2016 - Greg Hankins PeeringDB Update at GPF 11 , Los Angeles, CA, US - April 13, 2016 - Aaron Hughes NetNod , Stockholm, SE - March 17, 2016 - Job Snijders DKNOG6 , Copenhagen, DK - March 10, 2016 - Job Snijders PeeringDB Update - Aaron Hughes APRICOT 2016 , Auckland, NZ - February 23, 2016 - Aaron Hughes NANOG 66 , San Diego, CA, US - February 10, 2016 - Aaron Hughes PeeringDB Version 2 Coding Introduction at NANOG 66 , San Diego, CA, US - February 8, 2016 - Matt Griswold","title":"2016"},{"location":"presentations/#2015","text":"PeeringDB Version 2 Brazil - Matt Griswold / Greg Hankins IX (PTT) F\u00f3rum 9 , S\u00e3o Paulo, BR - December 8, 2015 - Greg Hankins PeeringDB Version 2 Introduction - Matt Griswold 27th Euro-IX Forum , Berlin, DE - October 26, 2015 - Greg Hankins DENOG7 , Darmstadt, DE - October 30, 2015 - Arnold Nipper","title":"2015"},{"location":"tools/","text":"Tools to Help You Get the Best from PeeringDB Many PeeringDB users develop tools that make use of our API to help you analyze our data and make informed decisions. This page features tools that have been made freely available for anyone to use under permissive licenses. If you have developed a tool and would like to be added to this page, please contact support@peeringdb.com with details and we will follow up with you. Name Function ARouteServer ARouteServer builds and tests feature-rich configurations for BGP route servers. Routing policy information is sourced from PeeringDB. It delivers a templated configuration file for BIRD or OpenBGPD route servers. django-peeringdb Django library with a local PeeringDB database sync. It defines the database schema to create a local database copy. The library is easy to integrate into a common framework for local tools and custom interfaces, and also supports multiple database engines (MySQL, Postgres, SQLite). ixgen Ixgen is yet-another open-source, multi-platform generator for peering configurations on IXs incorporating the global peeringdb api, but also is able to spin up its own \"compatible\" server for faster results. Ixgen is configured by an INI- or JSON-style format, producing custom template-driven or fixed json-style configurations, that can be printed on the terminal, to a file or served by HTTP. IXP Manager IXP Manager is a full stack management platform for Internet eXchange Points (IXPs) which includes an administration and customer portal; provides end to end provisioning; and both teaches and implements best practice. pdb-intersect Find common peering points in peeringdb. This is a brother to PeerFinder . It will find common possible peering points, even if either of the peering parties is NOT using the same ASN in all locations (like, incidentally, 3557 does). PeerFinder PeerFinder is a python3.7 and beyond script which finds common points of presence between ASNs as reported by PeeringDB. Peering Manager Peering Manager is an open-source BGP management solution built with Python and Django. Designed with features and simplicity in mind, it allows engineers to track and configure BGP sessions on networks without having to copy and paste existing configurations. peeringdb-py peeringdb-py is a Python client for PeeringDB. It features functions to get objects and display them in JSON or YAML format, and provides a whois-like display of records. The client also has an integrated local database sync, and provides a Python library for integration with custom tools. Some examples are available too. rich-traceroute rich-traceroute enhances traceroute output with additional information, like the origin ASNs of the IPs and the name of any Internet Exchange peering LAN that shows up in the path. Search in PeeringDB Search in PeeringDB a Chrome extension to search for ASNs, networks, and IXs in PeeringDB using the context menu. TraceMON TraceMON is a tool for visualizing a network topology generated by traceroutes that provides one-click access to IXP and network information. It also displays PeeringDB information and allows the user to update their record. RIPE Atlas users can access it by selecting a traceroute measurement and clicking on the TraceMON tab","title":"Tools to Help You Get the Best from PeeringDB"},{"location":"tools/#tools-to-help-you-get-the-best-from-peeringdb","text":"Many PeeringDB users develop tools that make use of our API to help you analyze our data and make informed decisions. This page features tools that have been made freely available for anyone to use under permissive licenses. If you have developed a tool and would like to be added to this page, please contact support@peeringdb.com with details and we will follow up with you. Name Function ARouteServer ARouteServer builds and tests feature-rich configurations for BGP route servers. Routing policy information is sourced from PeeringDB. It delivers a templated configuration file for BIRD or OpenBGPD route servers. django-peeringdb Django library with a local PeeringDB database sync. It defines the database schema to create a local database copy. The library is easy to integrate into a common framework for local tools and custom interfaces, and also supports multiple database engines (MySQL, Postgres, SQLite). ixgen Ixgen is yet-another open-source, multi-platform generator for peering configurations on IXs incorporating the global peeringdb api, but also is able to spin up its own \"compatible\" server for faster results. Ixgen is configured by an INI- or JSON-style format, producing custom template-driven or fixed json-style configurations, that can be printed on the terminal, to a file or served by HTTP. IXP Manager IXP Manager is a full stack management platform for Internet eXchange Points (IXPs) which includes an administration and customer portal; provides end to end provisioning; and both teaches and implements best practice. pdb-intersect Find common peering points in peeringdb. This is a brother to PeerFinder . It will find common possible peering points, even if either of the peering parties is NOT using the same ASN in all locations (like, incidentally, 3557 does). PeerFinder PeerFinder is a python3.7 and beyond script which finds common points of presence between ASNs as reported by PeeringDB. Peering Manager Peering Manager is an open-source BGP management solution built with Python and Django. Designed with features and simplicity in mind, it allows engineers to track and configure BGP sessions on networks without having to copy and paste existing configurations. peeringdb-py peeringdb-py is a Python client for PeeringDB. It features functions to get objects and display them in JSON or YAML format, and provides a whois-like display of records. The client also has an integrated local database sync, and provides a Python library for integration with custom tools. Some examples are available too. rich-traceroute rich-traceroute enhances traceroute output with additional information, like the origin ASNs of the IPs and the name of any Internet Exchange peering LAN that shows up in the path. Search in PeeringDB Search in PeeringDB a Chrome extension to search for ASNs, networks, and IXs in PeeringDB using the context menu. TraceMON TraceMON is a tool for visualizing a network topology generated by traceroutes that provides one-click access to IXP and network information. It also displays PeeringDB information and allows the user to update their record. RIPE Atlas users can access it by selecting a traceroute measurement and clicking on the TraceMON tab","title":"Tools to Help You Get the Best from PeeringDB"},{"location":"translation/","text":"Contributing to translations Adding a new locale If you wish to add a new locale, create a new ticket at https://github.com/peeringdb/peeringdb/issues stating your intent and one of the operators / developers will generate the necessary files for your locale and add them to the repository. Translation is done using PeeringDB's Weblate instance at https://translate.peeringdb.com/ . Signing in to Weblate Authentication is done via your PeeringDB credentials. So the only thing you have to do is to register with PeeringDB. Selecting languages Go to https://translate.peeringdb.com/accounts/profile/ to edit your profile and also to select the languages you want to help with. Viewing updates Translations are updated hourly on the beta website https://beta.peeringdb.com/ and daily at 0000 UTC on the production website https://www.peeringdb.com/ . Mailing list The http://lists.peeringdb.com/cgi-bin/mailman/listinfo/pdb-translate mailing list is open to anyone working on, or interested in translations. Thanks to the translators! ar Sara Alamin Mohamed Hassan de Sara Fink Stefan Funke Arnold Nipper jp Yutaro Fujii Norisuke Hirai Yuki Ikuno Chise Kawamura Kaoru Kitauchi Shintaro Kojima Yutaka Kumamoto Ryohey Matsumoto Masataka Mawatari Akira Nakagawa Satoshi Okawa Hideyuki Sasaki Tomocha Katsuyasu Toyama Taiji Tsuchiya Yudai Yamagishi Katsushi Yamaguchi Junpei Yoshino pt Ligio Gomes (NTT Communications) Robert Philips (NTT Communications)","title":"Translations"},{"location":"translation/#contributing-to-translations","text":"","title":"Contributing to translations"},{"location":"translation/#adding-a-new-locale","text":"If you wish to add a new locale, create a new ticket at https://github.com/peeringdb/peeringdb/issues stating your intent and one of the operators / developers will generate the necessary files for your locale and add them to the repository. Translation is done using PeeringDB's Weblate instance at https://translate.peeringdb.com/ .","title":"Adding a new locale"},{"location":"translation/#signing-in-to-weblate","text":"Authentication is done via your PeeringDB credentials. So the only thing you have to do is to register with PeeringDB.","title":"Signing in to Weblate"},{"location":"translation/#selecting-languages","text":"Go to https://translate.peeringdb.com/accounts/profile/ to edit your profile and also to select the languages you want to help with.","title":"Selecting languages"},{"location":"translation/#viewing-updates","text":"Translations are updated hourly on the beta website https://beta.peeringdb.com/ and daily at 0000 UTC on the production website https://www.peeringdb.com/ .","title":"Viewing updates"},{"location":"translation/#mailing-list","text":"The http://lists.peeringdb.com/cgi-bin/mailman/listinfo/pdb-translate mailing list is open to anyone working on, or interested in translations.","title":"Mailing list"},{"location":"translation/#thanks-to-the-translators","text":"","title":"Thanks to the translators!"},{"location":"translation/#ar","text":"Sara Alamin Mohamed Hassan","title":"ar"},{"location":"translation/#de","text":"Sara Fink Stefan Funke Arnold Nipper","title":"de"},{"location":"translation/#jp","text":"Yutaro Fujii Norisuke Hirai Yuki Ikuno Chise Kawamura Kaoru Kitauchi Shintaro Kojima Yutaka Kumamoto Ryohey Matsumoto Masataka Mawatari Akira Nakagawa Satoshi Okawa Hideyuki Sasaki Tomocha Katsuyasu Toyama Taiji Tsuchiya Yudai Yamagishi Katsushi Yamaguchi Junpei Yoshino","title":"jp"},{"location":"translation/#pt","text":"Ligio Gomes (NTT Communications) Robert Philips (NTT Communications)","title":"pt"},{"location":"blog/2022_product_report/","text":"PeeringDB 2022 Product Report Data quality and search were ranked most important by respondents to our last three user surveys. This update looks at improvements we have made to keep data quality high by improving automation, giving users better tools, and making it easier to find and export data in PeeringDB. How to sum up what PeeringDB delivered for its users in 2022? Let's start with some numbers that help describe the scale of the work we\u2019ve done. This year, we put out 10 major releases resolving over 100 issues. These included: Search and export improvements Continued improvements to support for IX-F Member Export Better tools to support organizational admins 10 more HOWTO documents We got contributions from a number of community members, including engineers at Amazon and Google. Search We normalised the names of states and provinces to improve search results. This builds on the improvements to advanced search deployed in 2021, which allow users to drill down to get very specific information and export in structured formats. Managing your organization We improved the way organizational admins can manage their users. Features include the ability to require affiliated users to enable Multi Factor Authentication using authenticator apps or a hardware token, or use a particular email domain. Automation We implemented a process to ensure that old networks are removed from PeeringDB when the RIRs or NIRs deregister their AS Numbers. In combination with regular improvements to our support for the IX-F Member Export Schema, we are ensuring that PeeringDB\u2019s data remains fresh. Operations We built on last year\u2019s improvements to API Key support. We introduced query throttling with authenticated users getting more queries. We also worked with developers of third-party tools that query PeeringDB so that they make efficient queries. We want users to have the best experience they can. So we teamed up with members of the community at the NANOG 86 Hackathon to install our local cache, peeringdb-py , on a wide range of systems. Having tested that we have documented the installation process to make it easier for users to sync PeeringDB to their own infrastructure. Documentation Last year we introduced our HOWTO series . This year we expanded it and have had to organise it into five sections. We probably have an explanation of how to do what you want. If there\u2019s something missing, then please let us know. User support Sometimes users need support. We\u2019ve improved lots of support tools, so we can help users more quickly and effectively. On average, tickets are resolved in under eight hours, with automation managing 40% of this workload. What\u2019s Coming Next? Two major improvements scheduled for early 2023 include further improvements to search, and translation for anonymous web users. We\u2019ll publish a more detailed product roadmap towards the end of January. The improvements we make are only as good as the requests we get from you. We want to make sure that we understand what you need and why. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB 2022 Product Report"},{"location":"blog/2022_product_report/#peeringdb-2022-product-report","text":"Data quality and search were ranked most important by respondents to our last three user surveys. This update looks at improvements we have made to keep data quality high by improving automation, giving users better tools, and making it easier to find and export data in PeeringDB. How to sum up what PeeringDB delivered for its users in 2022? Let's start with some numbers that help describe the scale of the work we\u2019ve done. This year, we put out 10 major releases resolving over 100 issues. These included: Search and export improvements Continued improvements to support for IX-F Member Export Better tools to support organizational admins 10 more HOWTO documents We got contributions from a number of community members, including engineers at Amazon and Google.","title":"PeeringDB 2022 Product Report"},{"location":"blog/2022_product_report/#search","text":"We normalised the names of states and provinces to improve search results. This builds on the improvements to advanced search deployed in 2021, which allow users to drill down to get very specific information and export in structured formats.","title":"Search"},{"location":"blog/2022_product_report/#managing-your-organization","text":"We improved the way organizational admins can manage their users. Features include the ability to require affiliated users to enable Multi Factor Authentication using authenticator apps or a hardware token, or use a particular email domain.","title":"Managing your organization"},{"location":"blog/2022_product_report/#automation","text":"We implemented a process to ensure that old networks are removed from PeeringDB when the RIRs or NIRs deregister their AS Numbers. In combination with regular improvements to our support for the IX-F Member Export Schema, we are ensuring that PeeringDB\u2019s data remains fresh.","title":"Automation"},{"location":"blog/2022_product_report/#operations","text":"We built on last year\u2019s improvements to API Key support. We introduced query throttling with authenticated users getting more queries. We also worked with developers of third-party tools that query PeeringDB so that they make efficient queries. We want users to have the best experience they can. So we teamed up with members of the community at the NANOG 86 Hackathon to install our local cache, peeringdb-py , on a wide range of systems. Having tested that we have documented the installation process to make it easier for users to sync PeeringDB to their own infrastructure.","title":"Operations"},{"location":"blog/2022_product_report/#documentation","text":"Last year we introduced our HOWTO series . This year we expanded it and have had to organise it into five sections. We probably have an explanation of how to do what you want. If there\u2019s something missing, then please let us know.","title":"Documentation"},{"location":"blog/2022_product_report/#user-support","text":"Sometimes users need support. We\u2019ve improved lots of support tools, so we can help users more quickly and effectively. On average, tickets are resolved in under eight hours, with automation managing 40% of this workload.","title":"User support"},{"location":"blog/2022_product_report/#whats-coming-next","text":"Two major improvements scheduled for early 2023 include further improvements to search, and translation for anonymous web users. We\u2019ll publish a more detailed product roadmap towards the end of January. The improvements we make are only as good as the requests we get from you. We want to make sure that we understand what you need and why. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"What\u2019s Coming Next?"},{"location":"blog/2023_product_report/","text":"2023 Product Report PeeringDB users have consistently ranked data quality and search as most important. We worked on improvements to these core aspects of our service alongside others in 2023. We didn\u2019t run a survey at the end of 2023 as we heard the same message consistently. We are in the process of delivering improvements and will survey users again when we have completed their delivery. We deployed 12 releases in 2023, addressing 76 issues, 11 of which were bugs. We also introduced four new features and made some significant improvements that all users will care about. New data We introduced two new objects in 2023. The Carrier object describes networks providing high capacity links between facilities. Now, when you look at a facility you can scroll down and see which carriers have a presence there. We also introduced the Campus object. This is a set object. It describes a group of facilities where inter-buildings cross-connects are available. When you look at a campus's page on our website you'll see which facilities: Are served by each Carrier Where each Ix is present Where each Network is present Data access We also started publishing all our facility data in a .KMZ file, which we update once a day. You can either download it regularly or set it as a network location in Google Earth Pro. You can view facilities in a map view and overlay them with other datasets. We also introduced a new search backend. You can now search for a type of data in a location. It knows the coordinates of facilities and has a radius for each locality. This means you don't need to worry about city names in conurbations \u2013 or rural areas. Data quality We introduced a way for your internal source of truth to propose updates to PeeringDB . You don't need to give your internal source of truth any PeeringDB credentials. You can then log into our website and approve or deny the changes. This helps organizations that are too big for fully manual updates but not big enough to want to automate everything. Improvements We introduced some policy options for organization admins in 2023. PeeringDB Oauth is increasingly relied on for peering and more. Now, organization admins can require their users to: Enable 2FA Use an email address tied to a specific domain Reconfirm their address periodically We also introduced a peering permission . Now admins can control who is able to use PeeringDB Oauth for peering portals. Volunteer developers We're glad that volunteers can contribute to PeeringDB. We improved the development environment a couple of years ago and volunteers use it. We'd like to acknowledge 2023 contributions from: Carlos Aguado Daniel Van Allen Todd Crane kiraum What's coming in 2024? PeeringDB users have told us that they love the simplicity of our web UI. They've also told us that it's outdated and slow. We have developed new designs for our front end and admin interfaces. We'll start rolling these out in parallel soon. You'll be able to test and provide feedback through preview.peeringdb.com. We started that process early in 2024. It didn\u2019t go quite right, so we rolled back the changes and will improve our testing and deployment processes. We'll also be making significant improvements to our .KMZ support. We'll streamline the daily export and make .KMZ available as an export format for Advanced Searches, where that makes sense. We'll also continue to improve support for the carrier and campus objects. People The Admin Committee , the people behind support@peeringdb.com, changed in 2023. Chriztoffer Hansen took the chair, Peter Helmenstine the vice-chair, and new members joined: Budiwijaya Ron Grant Adam Korab Cris\u00f3stomo Mbundu Ryan Williams Ben Ryall recruited new members for the Outreach Committee in 2023: Lynsey Buckingham Tarryn Kidd Jonathan Martone Ester Paal The Product Committee changed for the start of 2024. We have three new members: Jeff Bartig Jack Carrozzo Paul Hoogsteder And Stephen McManus will step down as chair of the committee at the start of March. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"2023 Product Report"},{"location":"blog/2023_product_report/#2023-product-report","text":"PeeringDB users have consistently ranked data quality and search as most important. We worked on improvements to these core aspects of our service alongside others in 2023. We didn\u2019t run a survey at the end of 2023 as we heard the same message consistently. We are in the process of delivering improvements and will survey users again when we have completed their delivery. We deployed 12 releases in 2023, addressing 76 issues, 11 of which were bugs. We also introduced four new features and made some significant improvements that all users will care about.","title":"2023 Product Report"},{"location":"blog/2023_product_report/#new-data","text":"We introduced two new objects in 2023. The Carrier object describes networks providing high capacity links between facilities. Now, when you look at a facility you can scroll down and see which carriers have a presence there. We also introduced the Campus object. This is a set object. It describes a group of facilities where inter-buildings cross-connects are available. When you look at a campus's page on our website you'll see which facilities: Are served by each Carrier Where each Ix is present Where each Network is present","title":"New data"},{"location":"blog/2023_product_report/#data-access","text":"We also started publishing all our facility data in a .KMZ file, which we update once a day. You can either download it regularly or set it as a network location in Google Earth Pro. You can view facilities in a map view and overlay them with other datasets. We also introduced a new search backend. You can now search for a type of data in a location. It knows the coordinates of facilities and has a radius for each locality. This means you don't need to worry about city names in conurbations \u2013 or rural areas.","title":"Data access"},{"location":"blog/2023_product_report/#data-quality","text":"We introduced a way for your internal source of truth to propose updates to PeeringDB . You don't need to give your internal source of truth any PeeringDB credentials. You can then log into our website and approve or deny the changes. This helps organizations that are too big for fully manual updates but not big enough to want to automate everything.","title":"Data quality"},{"location":"blog/2023_product_report/#improvements","text":"We introduced some policy options for organization admins in 2023. PeeringDB Oauth is increasingly relied on for peering and more. Now, organization admins can require their users to: Enable 2FA Use an email address tied to a specific domain Reconfirm their address periodically We also introduced a peering permission . Now admins can control who is able to use PeeringDB Oauth for peering portals.","title":"Improvements"},{"location":"blog/2023_product_report/#volunteer-developers","text":"We're glad that volunteers can contribute to PeeringDB. We improved the development environment a couple of years ago and volunteers use it. We'd like to acknowledge 2023 contributions from: Carlos Aguado Daniel Van Allen Todd Crane kiraum","title":"Volunteer developers"},{"location":"blog/2023_product_report/#whats-coming-in-2024","text":"PeeringDB users have told us that they love the simplicity of our web UI. They've also told us that it's outdated and slow. We have developed new designs for our front end and admin interfaces. We'll start rolling these out in parallel soon. You'll be able to test and provide feedback through preview.peeringdb.com. We started that process early in 2024. It didn\u2019t go quite right, so we rolled back the changes and will improve our testing and deployment processes. We'll also be making significant improvements to our .KMZ support. We'll streamline the daily export and make .KMZ available as an export format for Advanced Searches, where that makes sense. We'll also continue to improve support for the carrier and campus objects.","title":"What's coming in 2024?"},{"location":"blog/2023_product_report/#people","text":"The Admin Committee , the people behind support@peeringdb.com, changed in 2023. Chriztoffer Hansen took the chair, Peter Helmenstine the vice-chair, and new members joined: Budiwijaya Ron Grant Adam Korab Cris\u00f3stomo Mbundu Ryan Williams Ben Ryall recruited new members for the Outreach Committee in 2023: Lynsey Buckingham Tarryn Kidd Jonathan Martone Ester Paal The Product Committee changed for the start of 2024. We have three new members: Jeff Bartig Jack Carrozzo Paul Hoogsteder And Stephen McManus will step down as chair of the committee at the start of March. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"People"},{"location":"blog/advanced_search_1/","text":"Advanced Search (Part 1) You told us in our 2020 survey that improving search was your top priority. That\u2019s why we have been making some database changes to support better search. In a recent release we rolled out changes that significantly improve the performance of our advanced search feature. Advanced search now lets you explicitly filter searches location, network presence, service level and a wide range of other features. You get the results you\u2019re looking for and can export them in structured data formats, so you can import the data into tools that will help you make decisions. We are continuing to work on improvements to the advanced search options. We will then turn our focus to the default search. This set of improvements to search will build on the work we delivered earlier in the year and allow more geographically targeted searches. Take a look at the advanced search feature and try it for yourself! If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Advanced Search (Part 1)"},{"location":"blog/advanced_search_1/#advanced-search-part-1","text":"You told us in our 2020 survey that improving search was your top priority. That\u2019s why we have been making some database changes to support better search. In a recent release we rolled out changes that significantly improve the performance of our advanced search feature. Advanced search now lets you explicitly filter searches location, network presence, service level and a wide range of other features. You get the results you\u2019re looking for and can export them in structured data formats, so you can import the data into tools that will help you make decisions. We are continuing to work on improvements to the advanced search options. We will then turn our focus to the default search. This set of improvements to search will build on the work we delivered earlier in the year and allow more geographically targeted searches. Take a look at the advanced search feature and try it for yourself! If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Advanced Search (Part 1)"},{"location":"blog/advanced_search_2/","text":"Advanced Search (Part 2) We\u2019ve published a couple of recent blogs about how we are improving search, following feedback on its importance in the 2020 user survey . Here\u2019s another one! We introduced two significant improvements in the production release 2.28.0. Our first improvement makes it easier to search based on a partial name. When an organization\u2019s name has two parts, you can now search for just the first part and then select from all the organizations that share that name. Previously, search worked on exact matches. This change makes it easier for users to find the organizations they want. Our second improvement allows users to search for facilities within a given radius, using the Advanced Search interface. Users can search from a country and city, and select a radius in kilometres or miles. Of course, you can achieve the same results using the API or the web interface, which means you can integrate this feature into your own tools. We hope you find these changes make PeeringDB even more useful to you. We prioritized these improvements because of the feedback we hear in 2020. We run out 2021 user survey in September but we\u2019re open to feedback on how to improve PeeringDB at any time. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Advanced Search (Part 2)"},{"location":"blog/advanced_search_2/#advanced-search-part-2","text":"We\u2019ve published a couple of recent blogs about how we are improving search, following feedback on its importance in the 2020 user survey . Here\u2019s another one! We introduced two significant improvements in the production release 2.28.0. Our first improvement makes it easier to search based on a partial name. When an organization\u2019s name has two parts, you can now search for just the first part and then select from all the organizations that share that name. Previously, search worked on exact matches. This change makes it easier for users to find the organizations they want. Our second improvement allows users to search for facilities within a given radius, using the Advanced Search interface. Users can search from a country and city, and select a radius in kilometres or miles. Of course, you can achieve the same results using the API or the web interface, which means you can integrate this feature into your own tools. We hope you find these changes make PeeringDB even more useful to you. We prioritized these improvements because of the feedback we hear in 2020. We run out 2021 user survey in September but we\u2019re open to feedback on how to improve PeeringDB at any time. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Advanced Search (Part 2)"},{"location":"blog/alphabetical_search/","text":"Alphabetical Search Results PeeringDB users have told us that data quality and search are what they value most. We have made changes to improve the search experience: You can search a radius from any address in Advanced Search . You can filter searches using the criteria important to you. You can test our new, faster, v2 Search . We have just improved v2 search to give back results in alphabetical order. It's a small change but has a big impact. If there's an exact match for a search term, it will be shown at the very top of the results. Partial matches are shown in alphabetical order. Try it out! And try out other searches using v2 Search and then let us know what you think. We need your feedback to improve search. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Alphabetical Search Results"},{"location":"blog/alphabetical_search/#alphabetical-search-results","text":"PeeringDB users have told us that data quality and search are what they value most. We have made changes to improve the search experience: You can search a radius from any address in Advanced Search . You can filter searches using the criteria important to you. You can test our new, faster, v2 Search . We have just improved v2 search to give back results in alphabetical order. It's a small change but has a big impact. If there's an exact match for a search term, it will be shown at the very top of the results. Partial matches are shown in alphabetical order. Try it out! And try out other searches using v2 Search and then let us know what you think. We need your feedback to improve search. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Alphabetical Search Results"},{"location":"blog/api_keys/","text":"API Keys How often does one new feature deliver three important improvements? Adding support for API Keys in this week\u2019s beta release does this. API Keys will help organizations improve the security of the data they publish while linking the tools to the org itself and not its people. API Keys allow organizations to have authenticated access directly associated with the org itself and not with individual users. Organizations will now have better control of their data and won\u2019t need to tie automation to their users\u2019 credentials, which will improve robust continuity of operations should individuals leave the organization. Organizations previously faced a problem that if a user left, and their PeeringDB account was closed, any update processes that used the user\u2019s account would end. Organizations can now tie automated processes to role accounts, ensuring continuity of operations even when people change. And if you automate searches to find new peers, your scripts can now be updated to collect contact information as well as other details. As more organizations use API Keys to automate more of their interactions with PeeringDB, we will get a better idea of who is using the API and who is not. This will allow us to engage with them so we can understand what they value. Of course, this does not mean that we\u2019ll be abandoning users who want to focus on using the web interface. Aris Lambrianidis, a senior security engineer with White & Case LLP, says: \u201c The ability to leverage API keys means that programmatic workflows can work reliably using an authentication and authorization model independently of any credentials assigned to humans. Decoupling these access methods should significantly benefit the security and scalability of such operations. \u201d We have published some documentation showing how to generate an API Key, and use that API Key to achieve tasks that will be common to many organizations using PeeringDB. We have also published sample code to help you develop your own automation. Additional examples that others can use are also welcome. Everyone benefits from sharing this kind of code as it means more accurate data quality. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"API Keys"},{"location":"blog/api_keys/#api-keys","text":"How often does one new feature deliver three important improvements? Adding support for API Keys in this week\u2019s beta release does this. API Keys will help organizations improve the security of the data they publish while linking the tools to the org itself and not its people. API Keys allow organizations to have authenticated access directly associated with the org itself and not with individual users. Organizations will now have better control of their data and won\u2019t need to tie automation to their users\u2019 credentials, which will improve robust continuity of operations should individuals leave the organization. Organizations previously faced a problem that if a user left, and their PeeringDB account was closed, any update processes that used the user\u2019s account would end. Organizations can now tie automated processes to role accounts, ensuring continuity of operations even when people change. And if you automate searches to find new peers, your scripts can now be updated to collect contact information as well as other details. As more organizations use API Keys to automate more of their interactions with PeeringDB, we will get a better idea of who is using the API and who is not. This will allow us to engage with them so we can understand what they value. Of course, this does not mean that we\u2019ll be abandoning users who want to focus on using the web interface. Aris Lambrianidis, a senior security engineer with White & Case LLP, says: \u201c The ability to leverage API keys means that programmatic workflows can work reliably using an authentication and authorization model independently of any credentials assigned to humans. Decoupling these access methods should significantly benefit the security and scalability of such operations. \u201d We have published some documentation showing how to generate an API Key, and use that API Key to achieve tasks that will be common to many organizations using PeeringDB. We have also published sample code to help you develop your own automation. Additional examples that others can use are also welcome. Everyone benefits from sharing this kind of code as it means more accurate data quality. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"API Keys"},{"location":"blog/api_writes_need_api_key/","text":"API Writes now Need an API Key You now need to use an API key if you want to update PeeringDB using the API. PeeringDB will continue to support HTTP Basic Authentication (HBA) for queries with the existing API, but transitioning to an API key is strongly recommended for users and organizations who have not already done so, since it is a more secure operational practice. We encourage all users to enable Multi-Factor Authentication (MFA) and to use that when accessing our website from a browser. We encourage anyone that wants to use our API to do so using API keys. We made this change because there is no way to perform MFA with HBA. Removing the ability to update PeeringDB via the API without API keys conforms to security best practices. We support both user and organizational API keys. We have a HOWTO about creating API keys and using them. We have also introduced some organizational policy features this month. Organizations can now require users: To enable MFA To have an email address from a specific domain To revalidate their account on a schedule set by the organization We made this change because of an internal security analysis. We accept security reports to security@peeringdb.com . We have published a HOWTO for making security reports. If you have questions about PeeringDB security, please write to security@peeringdb.com . If you need help configuring API keys, please write to support@peeringdb.com .","title":"API Writes now Need an API Key"},{"location":"blog/api_writes_need_api_key/#api-writes-now-need-an-api-key","text":"You now need to use an API key if you want to update PeeringDB using the API. PeeringDB will continue to support HTTP Basic Authentication (HBA) for queries with the existing API, but transitioning to an API key is strongly recommended for users and organizations who have not already done so, since it is a more secure operational practice. We encourage all users to enable Multi-Factor Authentication (MFA) and to use that when accessing our website from a browser. We encourage anyone that wants to use our API to do so using API keys. We made this change because there is no way to perform MFA with HBA. Removing the ability to update PeeringDB via the API without API keys conforms to security best practices. We support both user and organizational API keys. We have a HOWTO about creating API keys and using them. We have also introduced some organizational policy features this month. Organizations can now require users: To enable MFA To have an email address from a specific domain To revalidate their account on a schedule set by the organization We made this change because of an internal security analysis. We accept security reports to security@peeringdb.com . We have published a HOWTO for making security reports. If you have questions about PeeringDB security, please write to security@peeringdb.com . If you need help configuring API keys, please write to support@peeringdb.com .","title":"API Writes now Need an API Key"},{"location":"blog/automating_configuration/","text":"Automating Configuration - Why We Support the IX-F Member Export Schema We just released 2.29.0-beta and three of the improvements relate to our support for the IX-F Member Export Schema . The last year has seen half a dozen releases with changes to better support it. But why should PeeringDB support this API? Why should exchanges use it? And how can networks benefit from it? It is an agreed standard for which allows IXPs to make their member lists available for automatic consumption by tools like PeeringDB. Exchanges can publish important technical information about their participating networks, including their AS Number and IP address information. There are freely available tools that use this data to build configurations and automate work that would otherwise require tickets, and some copy and paste. So, how can a network take advantage of this if they participate at an exchange using the schema? It\u2019s simple, just select the \u201cAllow IXP Update\u201d radio button in your network configuration page. And if you\u2019re an exchange that sees the advantage of automatically sharing information about your participating networks? If you are using software that can automatically generate the JSON, you just need to configure the URL for us to poll in the LAN configuration panel for your exchange. Our continuing efforts in this area are designed to help exchanges share more accurate information about their participants, and networks to automate configuration. So, take a look at what the schema can do for your organization. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Automating Configuration - Why We Support the IX-F Member Export Schema"},{"location":"blog/automating_configuration/#automating-configuration-why-we-support-the-ix-f-member-export-schema","text":"We just released 2.29.0-beta and three of the improvements relate to our support for the IX-F Member Export Schema . The last year has seen half a dozen releases with changes to better support it. But why should PeeringDB support this API? Why should exchanges use it? And how can networks benefit from it? It is an agreed standard for which allows IXPs to make their member lists available for automatic consumption by tools like PeeringDB. Exchanges can publish important technical information about their participating networks, including their AS Number and IP address information. There are freely available tools that use this data to build configurations and automate work that would otherwise require tickets, and some copy and paste. So, how can a network take advantage of this if they participate at an exchange using the schema? It\u2019s simple, just select the \u201cAllow IXP Update\u201d radio button in your network configuration page. And if you\u2019re an exchange that sees the advantage of automatically sharing information about your participating networks? If you are using software that can automatically generate the JSON, you just need to configure the URL for us to poll in the LAN configuration panel for your exchange. Our continuing efforts in this area are designed to help exchanges share more accurate information about their participants, and networks to automate configuration. So, take a look at what the schema can do for your organization. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Automating Configuration - Why We Support the IX-F Member Export Schema"},{"location":"blog/better_data/","text":"Better Data PeeringDB users told us in surveys that data quality and search results are their two top priorities. Release 2.54.0 has multiple changes to improve data quality and search results. Report inaccurate data One of them is a feature allowing logged in users to report data they believe to be inaccurate. Every page now has a button that lets users report data they believe is inaccurate. The report form lets the user identify the specific element believe to be wrong, along with a reason. If the user knows, they can suggest what the correct data should be. The Admin Committee will review reports. Network types Many networks provide more than one kind of function. You can now select more than one type for each network you run. The Product Committee considered adding more granularity for network types. They decided against it, as not everyone shares the same understanding of terms. Allowing networks to select multiple options is a compromise that doesn't require a breaking change in the API. The Network Type field will probably not be imported into v3 of the API. Power choices The Available Voltage Services field now only shows non-standard power offers. Everyone expects data centers to offer power at the standard voltages for the country or territory they serve. What users find interesting is the non-standard offers. For the time being we only offer three of these non-standard power options. If you offer a different non-standard power option, please let us know. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Better Data"},{"location":"blog/better_data/#better-data","text":"PeeringDB users told us in surveys that data quality and search results are their two top priorities. Release 2.54.0 has multiple changes to improve data quality and search results.","title":"Better Data"},{"location":"blog/better_data/#report-inaccurate-data","text":"One of them is a feature allowing logged in users to report data they believe to be inaccurate. Every page now has a button that lets users report data they believe is inaccurate. The report form lets the user identify the specific element believe to be wrong, along with a reason. If the user knows, they can suggest what the correct data should be. The Admin Committee will review reports.","title":"Report inaccurate data"},{"location":"blog/better_data/#network-types","text":"Many networks provide more than one kind of function. You can now select more than one type for each network you run. The Product Committee considered adding more granularity for network types. They decided against it, as not everyone shares the same understanding of terms. Allowing networks to select multiple options is a compromise that doesn't require a breaking change in the API. The Network Type field will probably not be imported into v3 of the API.","title":"Network types"},{"location":"blog/better_data/#power-choices","text":"The Available Voltage Services field now only shows non-standard power offers. Everyone expects data centers to offer power at the standard voltages for the country or territory they serve. What users find interesting is the non-standard offers. For the time being we only offer three of these non-standard power options. If you offer a different non-standard power option, please let us know. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Power choices"},{"location":"blog/better_search_and_export/","text":"Better Search and Export PeeringDB users tell us that they most value search and data quality. We've been working on improved search for the last year and have made another improvement to it. It now recognizes ISO 3166-1 alpha-2 codes \u2013 the codes used for ccTLDs. This means you can now search for things like all the facilities or IXPs in a country. But sometimes you want to visualize our data. For a while we've been offering a .KMZ file of all the facilities in PeeringDB with a geocode. We've now improved that file. The new format removes unneeded fields, making it small enough for Google Maps to use. And you can export any advanced search based on location in a KMZ format. So take a look at these features on beta.peeringdb.com ahead of their deployment to production. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Better Search and Export"},{"location":"blog/better_search_and_export/#better-search-and-export","text":"PeeringDB users tell us that they most value search and data quality. We've been working on improved search for the last year and have made another improvement to it. It now recognizes ISO 3166-1 alpha-2 codes \u2013 the codes used for ccTLDs. This means you can now search for things like all the facilities or IXPs in a country. But sometimes you want to visualize our data. For a while we've been offering a .KMZ file of all the facilities in PeeringDB with a geocode. We've now improved that file. The new format removes unneeded fields, making it small enough for Google Maps to use. And you can export any advanced search based on location in a KMZ format. So take a look at these features on beta.peeringdb.com ahead of their deployment to production. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Better Search and Export"},{"location":"blog/carrier_object/","text":"Should PeeringDB Create a New \u201cCarrier\u201d Object? That was the question we asked two focus groups on 29 June 2021. Initial discussion Our Product Committee and others have been discussing this issue for about six months now. The one thing we could agree on was that we needed to reach out to more of the people involved in buying and delivering these interconnection services to help make a decision. Focus groups To do that we held two focus groups on 29 June 2021. One was scheduled at a time that is good for people in APAC and the west coast of the Americas. The other was scheduled at a time that was good for people in EMEA and the east coast of the Americas. The discussion included 12 people with significant industry experience in running carriers, exchanges, facilities, and networks. To build a trusted environment we applied the Chatham House Rule, so this blog post describes what was discussed but does not quote anyone or attribute views to any participants. The focus groups began with a description of the problem and then looked at a simple approach to address it: an object to describe the carrier and associated objects listing the facilities and IXs where they have a presence. The focus groups then discussed several questions: Is there an unmet need? Should PeeringDB be the organization to address it? What do you feel about the proposed approach? Should the proposed approach be adapted in some way? Why? There was a strong sense across both sessions that it can be a challenge to find out about connectivity options between locations. While putting information about those options in PeeringDB would not eliminate the need for buyers to perform their own due diligence checks, it would simplify the process of finding out who to contact and what they might be able to offer. There was support for putting this information in PeeringDB because keeping related information in a single database makes things easier for users. Participants favored starting off with a less complex object and adding detail in future iterations. Including information about whether links between locations were L1, L2, or L3, and owned or leased seemed to be the agreed minimum set of information. That said, there were concerns that keeping this information accurate could be a challenge for multiple reasons, including inaccurate internal asset databases and a desire from marketing people to overclaim. Any implementation would need to be well supported by extensions to the API. Despite making it easy for people to rapidly deploy information about new and improved deployments to PeeringDB through the API there was support ensuring that a new object can be created and configured through the web interface. Next steps When the Product Committee has evaluated the feedback we got from these two focus groups it will make a decision on the principle of creating this new object. If the decision is to proceed there is work to be done in both designing and naming it. What is the minimum set of information that would be useful to PeeringDB users? What name would cause least confusion? We\u2019ll keep you updated. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Should PeeringDB Create a New \u201cCarrier\u201d Object?"},{"location":"blog/carrier_object/#should-peeringdb-create-a-new-carrier-object","text":"That was the question we asked two focus groups on 29 June 2021.","title":"Should PeeringDB Create a New \u201cCarrier\u201d Object?"},{"location":"blog/carrier_object/#initial-discussion","text":"Our Product Committee and others have been discussing this issue for about six months now. The one thing we could agree on was that we needed to reach out to more of the people involved in buying and delivering these interconnection services to help make a decision.","title":"Initial discussion"},{"location":"blog/carrier_object/#focus-groups","text":"To do that we held two focus groups on 29 June 2021. One was scheduled at a time that is good for people in APAC and the west coast of the Americas. The other was scheduled at a time that was good for people in EMEA and the east coast of the Americas. The discussion included 12 people with significant industry experience in running carriers, exchanges, facilities, and networks. To build a trusted environment we applied the Chatham House Rule, so this blog post describes what was discussed but does not quote anyone or attribute views to any participants. The focus groups began with a description of the problem and then looked at a simple approach to address it: an object to describe the carrier and associated objects listing the facilities and IXs where they have a presence. The focus groups then discussed several questions: Is there an unmet need? Should PeeringDB be the organization to address it? What do you feel about the proposed approach? Should the proposed approach be adapted in some way? Why? There was a strong sense across both sessions that it can be a challenge to find out about connectivity options between locations. While putting information about those options in PeeringDB would not eliminate the need for buyers to perform their own due diligence checks, it would simplify the process of finding out who to contact and what they might be able to offer. There was support for putting this information in PeeringDB because keeping related information in a single database makes things easier for users. Participants favored starting off with a less complex object and adding detail in future iterations. Including information about whether links between locations were L1, L2, or L3, and owned or leased seemed to be the agreed minimum set of information. That said, there were concerns that keeping this information accurate could be a challenge for multiple reasons, including inaccurate internal asset databases and a desire from marketing people to overclaim. Any implementation would need to be well supported by extensions to the API. Despite making it easy for people to rapidly deploy information about new and improved deployments to PeeringDB through the API there was support ensuring that a new object can be created and configured through the web interface.","title":"Focus groups"},{"location":"blog/carrier_object/#next-steps","text":"When the Product Committee has evaluated the feedback we got from these two focus groups it will make a decision on the principle of creating this new object. If the decision is to proceed there is work to be done in both designing and naming it. What is the minimum set of information that would be useful to PeeringDB users? What name would cause least confusion? We\u2019ll keep you updated. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Next steps"},{"location":"blog/carrier_object_deployed/","text":"Carrier Objects We introduced support for carrier objects in release 2.43.0. This is the first new pillar of data we\u2019ve introduced for several years. Take a look and tell us how we can improve our implementation. A \u201cCarrier\u201d provides high capacity links between facilities. Networks and IXPs use these to connect equipment spread across multiple interconnection facilities in a metro area. They are different from the regular network in PeeringDB because their services run at layers 1 or 2 . Our initial deployment lets carriers show that they have a presence in an interconnection facility. It does not show what services are provided, like wavelengths or fiber. This is a tighter set of features than was suggested by the focus group in 2021 . We want to get a minimal set of features out first and see how they are received before tackling more complicated features. We have started small and will expand based on user demand. If this is a feature that your organization could benefit from, please take a look and tell us what you think. You can contact us on social media, and you can reach the Product Committee on our mailing list . If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Carrier Objects"},{"location":"blog/carrier_object_deployed/#carrier-objects","text":"We introduced support for carrier objects in release 2.43.0. This is the first new pillar of data we\u2019ve introduced for several years. Take a look and tell us how we can improve our implementation. A \u201cCarrier\u201d provides high capacity links between facilities. Networks and IXPs use these to connect equipment spread across multiple interconnection facilities in a metro area. They are different from the regular network in PeeringDB because their services run at layers 1 or 2 . Our initial deployment lets carriers show that they have a presence in an interconnection facility. It does not show what services are provided, like wavelengths or fiber. This is a tighter set of features than was suggested by the focus group in 2021 . We want to get a minimal set of features out first and see how they are received before tackling more complicated features. We have started small and will expand based on user demand. If this is a feature that your organization could benefit from, please take a look and tell us what you think. You can contact us on social media, and you can reach the Product Committee on our mailing list . If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Carrier Objects"},{"location":"blog/contacts_marked_private/","text":"Changes to Contacts Marked as Private We are removing the \u201cPrivate\u201d status from Points of Contact in PeeringDB in Release 2.30.0 . This status was carried over from v1 of PeeringDB but is no longer useful, it just confuses users. It will no longer be available as a status for newly created contacts. And if your organization has one or more contacts marked as \u201cPrivate\u201d in PeeringDB, admin users will be prompted to make a decision between two statuses when they next log in. These are : Users: only other PeeringDB users can see the Point of Contact Public: the record is shown to anonymous users as well as authenticated users If you are an administrator for your organization\u2019s entry in PeeringDB, you need to decide which of the Points of Contact you publish should only be disclosed to authenticated PeeringDB users and which should be published to anonymous users. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Changes to Contacts Marked as Private"},{"location":"blog/contacts_marked_private/#changes-to-contacts-marked-as-private","text":"We are removing the \u201cPrivate\u201d status from Points of Contact in PeeringDB in Release 2.30.0 . This status was carried over from v1 of PeeringDB but is no longer useful, it just confuses users. It will no longer be available as a status for newly created contacts. And if your organization has one or more contacts marked as \u201cPrivate\u201d in PeeringDB, admin users will be prompted to make a decision between two statuses when they next log in. These are : Users: only other PeeringDB users can see the Point of Contact Public: the record is shown to anonymous users as well as authenticated users If you are an administrator for your organization\u2019s entry in PeeringDB, you need to decide which of the Points of Contact you publish should only be disclosed to authenticated PeeringDB users and which should be published to anonymous users. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Changes to Contacts Marked as Private"},{"location":"blog/containerize/","text":"Containerized Deployment We deployed beta.peeringdb.com on a container based platform in release 2.59.0 . We'll be starting integration on www.peeringdb.com in the 2.60 release. PeeringDB started on a bare metal LAMP stack, and was deployed to virtual machines with the release of PeeringDB 2.0 about ten years ago, but technology has advanced since then. By deploying PeeringDB in containers, we will reduce our computing costs and more easily adjust compute resources dynamically based on load. Managing spending is important as PeeringDB is fully funded by our sponsors . It should also help us narrow the scope of work for our volunteer Operations Committee. We have been looking for ways to improve the efficiency of our spending since 2022 and started looking at switching to serving directly from containers in November 2023 . This deployment will complete that process. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Containerized Deployment"},{"location":"blog/containerize/#containerized-deployment","text":"We deployed beta.peeringdb.com on a container based platform in release 2.59.0 . We'll be starting integration on www.peeringdb.com in the 2.60 release. PeeringDB started on a bare metal LAMP stack, and was deployed to virtual machines with the release of PeeringDB 2.0 about ten years ago, but technology has advanced since then. By deploying PeeringDB in containers, we will reduce our computing costs and more easily adjust compute resources dynamically based on load. Managing spending is important as PeeringDB is fully funded by our sponsors . It should also help us narrow the scope of work for our volunteer Operations Committee. We have been looking for ways to improve the efficiency of our spending since 2022 and started looking at switching to serving directly from containers in November 2023 . This deployment will complete that process. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Containerized Deployment"},{"location":"blog/contributing_code/","text":"Contributing Code to PeeringDB Just Got Easier Have you ever wanted to contribute code to improve PeeringDB but found it too challenging to set up a test environment? The good news is that spinning up a development environment is now radically simplified. We have made it much easier for volunteer developers to contribute code to PeeringDB. Until now, even if a code fix was relatively simple, the process for testing it before making the contribution was a challenge. Now, you can spin up a PeeringDB development instance in a couple of minutes. You\u2019ll be able to test changes locally and then submit pull requests when you\u2019re ready to publish your contribution. Andy Davidson, CTO of Asteroid says: \u201c I recently developed some code against the PeeringDB OAuth instance for https://trackbgp.com . But it was hard to get a development environment set up. Now I can spin up a development environment in less time than it takes to boil a kettle. \u201d We have documented the steps needed to get up and running on GitHub. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Contributing Code to PeeringDB Just Got Easier"},{"location":"blog/contributing_code/#contributing-code-to-peeringdb-just-got-easier","text":"Have you ever wanted to contribute code to improve PeeringDB but found it too challenging to set up a test environment? The good news is that spinning up a development environment is now radically simplified. We have made it much easier for volunteer developers to contribute code to PeeringDB. Until now, even if a code fix was relatively simple, the process for testing it before making the contribution was a challenge. Now, you can spin up a PeeringDB development instance in a couple of minutes. You\u2019ll be able to test changes locally and then submit pull requests when you\u2019re ready to publish your contribution. Andy Davidson, CTO of Asteroid says: \u201c I recently developed some code against the PeeringDB OAuth instance for https://trackbgp.com . But it was hard to get a development environment set up. Now I can spin up a development environment in less time than it takes to boil a kettle. \u201d We have documented the steps needed to get up and running on GitHub. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Contributing Code to PeeringDB Just Got Easier"},{"location":"blog/data_quality_improvements/","text":"Data Quality Improvements Rolled Out Each year we run a user survey. Users keep telling us that network configuration data in PeeringDB is a top priority. We have recently added some automation to improve our data quality for networks. We now track the status of each ASN registered in PeeringDB at the RIRs and NIRs. When a network is no longer in the RIR or NIR database we can remove it. Release 2.41.0 completes the deployment of this feature. It will remove about 150 networks, which is only about 0.5%. But over time, it should help us maintain the highest quality data possible. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Data Quality Improvements Rolled Out"},{"location":"blog/data_quality_improvements/#data-quality-improvements-rolled-out","text":"Each year we run a user survey. Users keep telling us that network configuration data in PeeringDB is a top priority. We have recently added some automation to improve our data quality for networks. We now track the status of each ASN registered in PeeringDB at the RIRs and NIRs. When a network is no longer in the RIR or NIR database we can remove it. Release 2.41.0 completes the deployment of this feature. It will remove about 150 networks, which is only about 0.5%. But over time, it should help us maintain the highest quality data possible. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Data Quality Improvements Rolled Out"},{"location":"blog/data_quality_removing_closed_networks/","text":"Data Quality \u2014 Removing Closed Networks We added an \"RIR Status\" field in the data returned for networks a few months ago. The \"ok\" status lets you know that the ASN was assigned by an RIR or NIR. The \"RIR Status Updated\" field lets you know when we last checked. We use these fields to enable automation. In September we\u2019ll remove about 400 networks that have been returned to the RIR. We check the status of the network every day and will only flag it for deletion if the status was \u201cnot assigned\u201d for three months. This automation runs every month. It will improve data quality. You won't see results for networks that aren't operating anymore. And organizations assigned those returned and reissued ASNs will be able to register on PeeringDB without needing support from our volunteer Admin Committee. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Data Quality \u2014 Removing Closed Networks"},{"location":"blog/data_quality_removing_closed_networks/#data-quality-removing-closed-networks","text":"We added an \"RIR Status\" field in the data returned for networks a few months ago. The \"ok\" status lets you know that the ASN was assigned by an RIR or NIR. The \"RIR Status Updated\" field lets you know when we last checked. We use these fields to enable automation. In September we\u2019ll remove about 400 networks that have been returned to the RIR. We check the status of the network every day and will only flag it for deletion if the status was \u201cnot assigned\u201d for three months. This automation runs every month. It will improve data quality. You won't see results for networks that aren't operating anymore. And organizations assigned those returned and reissued ASNs will be able to register on PeeringDB without needing support from our volunteer Admin Committee. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Data Quality \u2014 Removing Closed Networks"},{"location":"blog/faster_queries/","text":"Faster PeeringDB Queries - No Limits Did you know that you can have lightning fast access to PeeringDB's database without query limits? Our web and API services impose query limits. Network latency is sometimes a factor when querying from far away. That's why we have peeringdb-py . This is a cache you can run in your own network or even on a laptop. You synchronize the whole database to a machine you run. Once you've done that you are only limited by your own infrastructure. Re-synchronizing peeringdb-py is efficient - it only syncs changes since the last sync - and is unlikely to trigger any query limits if updated once per hour or less frequently as needed. Are there reasons you should run a local cache other than query limits and latency? Yes. If you populate internal databases or generate configurations with PeeringDB then a local cache adds reliability. You'll have local access instead of having to rely on intermediate networks. Of course, peeringdb-py isn't the only choice. Some organizations have developed their own local caches. If you want a local cache you are welcome to use the peeringdb-py codebase as a reference. And if all you need is to have PeeringDB in a local database, it can be really simple . If your organization is a heavy PeeringDB user then work out the right caching approach for you. We\u2019re happy to answer any questions. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Faster PeeringDB Queries - No Limits"},{"location":"blog/faster_queries/#faster-peeringdb-queries-no-limits","text":"Did you know that you can have lightning fast access to PeeringDB's database without query limits? Our web and API services impose query limits. Network latency is sometimes a factor when querying from far away. That's why we have peeringdb-py . This is a cache you can run in your own network or even on a laptop. You synchronize the whole database to a machine you run. Once you've done that you are only limited by your own infrastructure. Re-synchronizing peeringdb-py is efficient - it only syncs changes since the last sync - and is unlikely to trigger any query limits if updated once per hour or less frequently as needed. Are there reasons you should run a local cache other than query limits and latency? Yes. If you populate internal databases or generate configurations with PeeringDB then a local cache adds reliability. You'll have local access instead of having to rely on intermediate networks. Of course, peeringdb-py isn't the only choice. Some organizations have developed their own local caches. If you want a local cache you are welcome to use the peeringdb-py codebase as a reference. And if all you need is to have PeeringDB in a local database, it can be really simple . If your organization is a heavy PeeringDB user then work out the right caching approach for you. We\u2019re happy to answer any questions. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Faster PeeringDB Queries - No Limits"},{"location":"blog/geographic_search/","text":"Geographic Search Where is it? This isn\u2019t just the plaintive cry of someone wondering where the courier has left their package. Finding facilities in PeeringDB has been a big problem. The database did not associate partial and full names in searches, so if a facility owner had entered Montana but you were searching for MT, their facility might not be found. As new facilities are created in our database they will be linked to geographic coordinates. Changing the way we record authoritative data for locations in our database means that we will be able to introduce a number of helpful features over the next few months. Over time, we will improve the way existing address data is presented in the database. The number of facilities in PeeringDB grew by about a sixth in 2020. As we add entries with new addresses in 2021 we will normalize the primary presentation of addresses and use them as a search key. We\u2019ll add support for additional searches based on these addresses in the coming months and use this experience to help us clean up the data we already have. In the future, we will be able to expand the way we provide searches. For instance, we\u2019ll be able to provide a search for facilities with a distance radius of a chosen coordinate. Other innovative searches will be possible and we will prioritize their development based on user feedback. Tom Paseka, Network Strategy at Cloudflare, says: \u201c Getting location naming right is hugely important. Having D\u00fcsseldorf and Dusseldorf return the same results makes local use of PeeringDB possible, giving more precise data across languages and improving data integrity. This is great!. \u201d If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Geographic Search"},{"location":"blog/geographic_search/#geographic-search","text":"Where is it? This isn\u2019t just the plaintive cry of someone wondering where the courier has left their package. Finding facilities in PeeringDB has been a big problem. The database did not associate partial and full names in searches, so if a facility owner had entered Montana but you were searching for MT, their facility might not be found. As new facilities are created in our database they will be linked to geographic coordinates. Changing the way we record authoritative data for locations in our database means that we will be able to introduce a number of helpful features over the next few months. Over time, we will improve the way existing address data is presented in the database. The number of facilities in PeeringDB grew by about a sixth in 2020. As we add entries with new addresses in 2021 we will normalize the primary presentation of addresses and use them as a search key. We\u2019ll add support for additional searches based on these addresses in the coming months and use this experience to help us clean up the data we already have. In the future, we will be able to expand the way we provide searches. For instance, we\u2019ll be able to provide a search for facilities with a distance radius of a chosen coordinate. Other innovative searches will be possible and we will prioritize their development based on user feedback. Tom Paseka, Network Strategy at Cloudflare, says: \u201c Getting location naming right is hugely important. Having D\u00fcsseldorf and Dusseldorf return the same results makes local use of PeeringDB possible, giving more precise data across languages and improving data integrity. This is great!. \u201d If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Geographic Search"},{"location":"blog/guidelines_for_registering/","text":"Guidelines for Registering in PeeringDB About one third of ASNs are now registered in PeeringDB. While that\u2019s a success it comes with a responsibility to enhance transparency over what is required when registering a network, IXP, or facility in the database. We have just published a set of guidelines that document the criteria our automation uses, or will use when new software is developed. Where we cannot automate, volunteers on our Admin Committee evaluate requests. There are clear criteria for the automatic, or semi-automatic, approval of each type of object. These are illustrated with flowcharts that show the possible paths through the process. What Are They? Networks must have a unique and properly registered ASN. IXP LANs must use unique and properly registered address space. There are some automatic prefix limits but these can be manually overridden when needed. Facilities can automatically be added by organizations that already have a facility, be validated by a web page offering interconnection services there, or be attested to by users that confirm the facility exists. There is also a process to remove empty facilities without registered networks or IXPs present in them. Feedback Loop We know that these guidelines will need to be improved and updated as we learn, so we have built in an \u201cexception\u201d process to help with that. Whenever an easy path is not possible, the requester can ask for more eyes on their registration request. The first step in this process is to get input from all the volunteers on the Admin Committee. If more eyes are needed, the request can be shared with all of PeeringDB\u2019s Stewards, a group made from the committee chairs and board members. Where a formal decision is needed, the board can vote on a request and make a final decision. Each step of this process is an opportunity to learn from experience and feed that back into our published guidelines, our internal processes, and any software that automates them. So, while we\u2019ve published these today, we\u2019ll be updating them as the interconnection environment changes and we need to adapt to it. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Guidelines for Registering in PeeringDB"},{"location":"blog/guidelines_for_registering/#guidelines-for-registering-in-peeringdb","text":"About one third of ASNs are now registered in PeeringDB. While that\u2019s a success it comes with a responsibility to enhance transparency over what is required when registering a network, IXP, or facility in the database. We have just published a set of guidelines that document the criteria our automation uses, or will use when new software is developed. Where we cannot automate, volunteers on our Admin Committee evaluate requests. There are clear criteria for the automatic, or semi-automatic, approval of each type of object. These are illustrated with flowcharts that show the possible paths through the process.","title":"Guidelines for Registering in PeeringDB"},{"location":"blog/guidelines_for_registering/#what-are-they","text":"Networks must have a unique and properly registered ASN. IXP LANs must use unique and properly registered address space. There are some automatic prefix limits but these can be manually overridden when needed. Facilities can automatically be added by organizations that already have a facility, be validated by a web page offering interconnection services there, or be attested to by users that confirm the facility exists. There is also a process to remove empty facilities without registered networks or IXPs present in them.","title":"What Are They?"},{"location":"blog/guidelines_for_registering/#feedback-loop","text":"We know that these guidelines will need to be improved and updated as we learn, so we have built in an \u201cexception\u201d process to help with that. Whenever an easy path is not possible, the requester can ask for more eyes on their registration request. The first step in this process is to get input from all the volunteers on the Admin Committee. If more eyes are needed, the request can be shared with all of PeeringDB\u2019s Stewards, a group made from the committee chairs and board members. Where a formal decision is needed, the board can vote on a request and make a final decision. Each step of this process is an opportunity to learn from experience and feed that back into our published guidelines, our internal processes, and any software that automates them. So, while we\u2019ve published these today, we\u2019ll be updating them as the interconnection environment changes and we need to adapt to it. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Feedback Loop"},{"location":"blog/improving_beta_and_kmz_export/","text":"Making beta.peeringdb.com, Search, and KMZ More Attractive Just over half a percent of users visit beta.peeringdb.com each month. We recognize that there are good and bad reasons for this. On the good side, people are pretty happy with www.peeringdb.com . But on the bad side, we only used to refresh the data in beta.peeringdb.com once a month. We're getting ready to refresh data on our beta site every hour. That will come soon. It will make it an ideal place to test your searches each month \u2013 and get early access to new search features. Of course, you can also test making updates on our beta site. But any changes you make will be wiped at the next refresh. We're also refining our .KMZ export in 2.57.0. The export has tidier entries for each fac , improves the placemark, and drops facilities without location data. And two bugs have been fixed for v2 search, which is now the default search. A problem searching for a \" fac in city name\" has been resolved. And a bug that caused a server error when the last character was a colon has also been fixed. So, head on over to beta.peeringdb.com and test these improvements. Let us know if you see any problems with these improvements. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Making beta.peeringdb.com, Search, and KMZ More Attractive"},{"location":"blog/improving_beta_and_kmz_export/#making-betapeeringdbcom-search-and-kmz-more-attractive","text":"Just over half a percent of users visit beta.peeringdb.com each month. We recognize that there are good and bad reasons for this. On the good side, people are pretty happy with www.peeringdb.com . But on the bad side, we only used to refresh the data in beta.peeringdb.com once a month. We're getting ready to refresh data on our beta site every hour. That will come soon. It will make it an ideal place to test your searches each month \u2013 and get early access to new search features. Of course, you can also test making updates on our beta site. But any changes you make will be wiped at the next refresh. We're also refining our .KMZ export in 2.57.0. The export has tidier entries for each fac , improves the placemark, and drops facilities without location data. And two bugs have been fixed for v2 search, which is now the default search. A problem searching for a \" fac in city name\" has been resolved. And a bug that caused a server error when the last character was a colon has also been fixed. So, head on over to beta.peeringdb.com and test these improvements. Let us know if you see any problems with these improvements. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Making beta.peeringdb.com, Search, and KMZ More Attractive"},{"location":"blog/installing_peeringdb-py/","text":"Installing peeringdb-py at NANOG 86 NANOG 86 participants installed peeringdb-py on Linux, macOS, and Windows Subsystem for Linux. We have used what they learned to publish a new HOWTO document to help more users install it. peeringdb-py is our reference implementation of a local cache of our database. You can install it on your own infrastructure. That means you can avoid query limits and get the best response time. Our new HOWTO document explains when you'll need an API Key and what kind of API Key to create. It also lists the packages you'll need installed to get peeringdb-py up and running. Finally, it provides guidance on how you can automatically refresh the database. We improved the installation guide to help users keep their installation current. Better documentation makes it easier for everyone to install peeringdb-py . If you need to make a lot of PeeringDB queries then we encourage you to query a local cache. If you do this, you'll want to run API queries against it using our software library. The API will remain stable while the database structure could change. The API will remain stable and our library will ensure you don't need to rewrite your queries. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Installing peeringdb-py at NANOG 86"},{"location":"blog/installing_peeringdb-py/#installing-peeringdb-py-at-nanog-86","text":"NANOG 86 participants installed peeringdb-py on Linux, macOS, and Windows Subsystem for Linux. We have used what they learned to publish a new HOWTO document to help more users install it. peeringdb-py is our reference implementation of a local cache of our database. You can install it on your own infrastructure. That means you can avoid query limits and get the best response time. Our new HOWTO document explains when you'll need an API Key and what kind of API Key to create. It also lists the packages you'll need installed to get peeringdb-py up and running. Finally, it provides guidance on how you can automatically refresh the database. We improved the installation guide to help users keep their installation current. Better documentation makes it easier for everyone to install peeringdb-py . If you need to make a lot of PeeringDB queries then we encourage you to query a local cache. If you do this, you'll want to run API queries against it using our software library. The API will remain stable while the database structure could change. The API will remain stable and our library will ensure you don't need to rewrite your queries. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Installing peeringdb-py at NANOG 86"},{"location":"blog/introducing_analytics/","text":"Introducing Analytics Until now, we have not had any analytics about PeeringDB usage. This is a problem. It means we can't make informed decisions that will help us deliver a better service to users. Users have often told us that they want improvements to the website. We know what some of these are but not all. Introducing analytics will help us learn more about the problems some users face. We can then develop improvements to meet their needs. The Product Committee has decided to test Google Analytics. The first step is to deploy it on beta.peeringdb.com. We'll use this as a learning experience. When we are happy with the analytics, we want to deploy an analytics service on www.peeringdb.com. What's next? We know that analytics only provides some of the information we need. We are developing plans to help users give more timely and targeted feedback. We can use that feedback to design and implement the improvements that will be most valuable to users. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Introducing Analytics"},{"location":"blog/introducing_analytics/#introducing-analytics","text":"Until now, we have not had any analytics about PeeringDB usage. This is a problem. It means we can't make informed decisions that will help us deliver a better service to users. Users have often told us that they want improvements to the website. We know what some of these are but not all. Introducing analytics will help us learn more about the problems some users face. We can then develop improvements to meet their needs. The Product Committee has decided to test Google Analytics. The first step is to deploy it on beta.peeringdb.com. We'll use this as a learning experience. When we are happy with the analytics, we want to deploy an analytics service on www.peeringdb.com.","title":"Introducing Analytics"},{"location":"blog/introducing_analytics/#whats-next","text":"We know that analytics only provides some of the information we need. We are developing plans to help users give more timely and targeted feedback. We can use that feedback to design and implement the improvements that will be most valuable to users. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"What's next?"},{"location":"blog/more_details_facilities/","text":"More Details on Facilities We\u2019ve been working hard on improving search this year. In release 2.30.0 we have an improvement that will help data centers and their users. Organizations running facilities can now share information about ownership status, power availability, diversity and resilience. These can all be used as filters in the advanced search page . You will need to be logged in to take advantage of these features. These improvements build on improvements delivered in 2.27.1 and 2.28.0 . We have additional search improvements scheduled for development in upcoming releases. If you run a facility you\u2019ll want to login and update its entry, so it can be found when users take advantage of these new searches. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"More Details on Facilities"},{"location":"blog/more_details_facilities/#more-details-on-facilities","text":"We\u2019ve been working hard on improving search this year. In release 2.30.0 we have an improvement that will help data centers and their users. Organizations running facilities can now share information about ownership status, power availability, diversity and resilience. These can all be used as filters in the advanced search page . You will need to be logged in to take advantage of these features. These improvements build on improvements delivered in 2.27.1 and 2.28.0 . We have additional search improvements scheduled for development in upcoming releases. If you run a facility you\u2019ll want to login and update its entry, so it can be found when users take advantage of these new searches. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"More Details on Facilities"},{"location":"blog/nanog_85_hackathon/","text":"NANOG 85 Hackathon Project We\u2019re bringing a project to the NANOG 85 Hackathon on June 4 - 5, 2022. This time we\u2019re looking for your help in developing a proof of concept we can later develop into a full implementation. In exchange, we\u2019ll walk you through what PeeringDB does. We\u2019ll explain how we support different parts of the Internet community. And you can choose some PeeringDB swag as a thank you! We\u2019re looking for help both from people who want to help turn a flowchart into a designed tool and those who can code ( Python and Django ) and. If you can see yourself in one of those roles then let us know at productcom@lists.peeringdb.com and register for the Hackathon . What\u2019s the project? When we published our updated guidelines for registering in PeeringDB we noted that some of the processes would need to be automated. We want to automate the attestation process for confirming new interconnection facilities. This is a new process to let users confirm that an interconnection facility is real and offers relevant services. It\u2019s a simple workflow. What will you learn? We\u2019ll make sure that you have a good understanding of PeeringDB\u2019s structure. You\u2019ll learn what a network is - in PeeringDB. And we\u2019ll also explain about Internet Exchange Points and interconnection facilities. And you\u2019ll get a good understanding of how and why people use PeeringDB. What will we test together? We want to look at ways that facility operators could activate the process. How should they get the unique URL? Do we need to implement ways for them to share it? What should PeeringDB users see when they visit the URL? Should we implement #1156 ? What will success look like? Success is helping people understand PeeringDB and using that to work out how our tool needs to work. Getting some proof of concept code running would be nice. But identifying issues to take account of in a future feature design would be a win, too. Introducing new people to PeeringDB and getting them involved in extending it is a win for us! If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"NANOG 85 Hackathon Project"},{"location":"blog/nanog_85_hackathon/#nanog-85-hackathon-project","text":"We\u2019re bringing a project to the NANOG 85 Hackathon on June 4 - 5, 2022. This time we\u2019re looking for your help in developing a proof of concept we can later develop into a full implementation. In exchange, we\u2019ll walk you through what PeeringDB does. We\u2019ll explain how we support different parts of the Internet community. And you can choose some PeeringDB swag as a thank you! We\u2019re looking for help both from people who want to help turn a flowchart into a designed tool and those who can code ( Python and Django ) and. If you can see yourself in one of those roles then let us know at productcom@lists.peeringdb.com and register for the Hackathon .","title":"NANOG 85 Hackathon Project"},{"location":"blog/nanog_85_hackathon/#whats-the-project","text":"When we published our updated guidelines for registering in PeeringDB we noted that some of the processes would need to be automated. We want to automate the attestation process for confirming new interconnection facilities. This is a new process to let users confirm that an interconnection facility is real and offers relevant services. It\u2019s a simple workflow.","title":"What\u2019s the project?"},{"location":"blog/nanog_85_hackathon/#what-will-you-learn","text":"We\u2019ll make sure that you have a good understanding of PeeringDB\u2019s structure. You\u2019ll learn what a network is - in PeeringDB. And we\u2019ll also explain about Internet Exchange Points and interconnection facilities. And you\u2019ll get a good understanding of how and why people use PeeringDB.","title":"What will you learn?"},{"location":"blog/nanog_85_hackathon/#what-will-we-test-together","text":"We want to look at ways that facility operators could activate the process. How should they get the unique URL? Do we need to implement ways for them to share it? What should PeeringDB users see when they visit the URL? Should we implement #1156 ?","title":"What will we test together?"},{"location":"blog/nanog_85_hackathon/#what-will-success-look-like","text":"Success is helping people understand PeeringDB and using that to work out how our tool needs to work. Getting some proof of concept code running would be nice. But identifying issues to take account of in a future feature design would be a win, too. Introducing new people to PeeringDB and getting them involved in extending it is a win for us! If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"What will success look like?"},{"location":"blog/nanog_87_hackathon_proof_of_concept/","text":"Do You Want Your Configuration Management System to Update PeeringDB? The theme for NANOG 87's Hackathon was interacting with sources of truth. Our project focused on identifying the difference between what's in a configuration system and PeeringDB - then sending an update. Developers from FullCtl and Peering Manager worked together to develop a proof of concept feature. It lets users know when PeeringDB did not reflect the internal configuration. It then made it easy to send PeeringDB an update. Users tell us that network configuration data is what they value most. So developing ways to help users identify what to update could be valuable. And offering a way to tie that to an update mechanism could make updating PeeringDB much faster. We've created an issue describing this on GitHub . If you or your organization would benefit from a feature like this, please let us know. You can comment on the issue, write to the Product Committee's list , or chat with a PC member. If this is something our users want then we'll need to answer some questions. One example is how to manage multiple updates. How should web users be invited to review multiple updates, so they can approve or reject as needed? We also need to think about how to keep parity between the website and the API. The API supports write operations but is not interactive. So it might be important to add in a feature to show orgs the changes made to their objects. And we might want to add the ability to add a comment alongside updates, so admins can later review logs of what changed and why. We want to speak with people who develop tools that might implement this feature. If you develop a tool that could benefit from a feature like this then let us know. We'd like to speak. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Do You Want Your Configuration Management System to Update PeeringDB?"},{"location":"blog/nanog_87_hackathon_proof_of_concept/#do-you-want-your-configuration-management-system-to-update-peeringdb","text":"The theme for NANOG 87's Hackathon was interacting with sources of truth. Our project focused on identifying the difference between what's in a configuration system and PeeringDB - then sending an update. Developers from FullCtl and Peering Manager worked together to develop a proof of concept feature. It lets users know when PeeringDB did not reflect the internal configuration. It then made it easy to send PeeringDB an update. Users tell us that network configuration data is what they value most. So developing ways to help users identify what to update could be valuable. And offering a way to tie that to an update mechanism could make updating PeeringDB much faster. We've created an issue describing this on GitHub . If you or your organization would benefit from a feature like this, please let us know. You can comment on the issue, write to the Product Committee's list , or chat with a PC member. If this is something our users want then we'll need to answer some questions. One example is how to manage multiple updates. How should web users be invited to review multiple updates, so they can approve or reject as needed? We also need to think about how to keep parity between the website and the API. The API supports write operations but is not interactive. So it might be important to add in a feature to show orgs the changes made to their objects. And we might want to add the ability to add a comment alongside updates, so admins can later review logs of what changed and why. We want to speak with people who develop tools that might implement this feature. If you develop a tool that could benefit from a feature like this then let us know. We'd like to speak. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Do You Want Your Configuration Management System to Update PeeringDB?"},{"location":"blog/network_type_what_you_told_us/","text":"Network Type \u2013 What did you tell us? We invited PeeringDB users to tell us what they thought about the Network Type setting. This is the setting that describes your network to other PeeringDB users. It's OK 162 people participated and their core message was that the field is largely working for both those sharing and reading the data. Just over half of respondents use the field to make decisions. About two thirds think it is accurate or very accurate. About three quarters think the current range of options is useful or very useful. About half think the level of granularity is about right, while almost a third would like more nuance. Comments Lots of people told us how they use the Network Type field in the comments. Some reinforced their responses to the other questions with calls to remove the field, add additional options, or restrict the options to \u201ceyeball\u201d, \u201ccontent\u201d, and \u201chybrid\u201d. There was also a call to allow networks to select multiple categories. Next steps The Product Committee has decided to keep the Network Type field. We will not change the types of networks but will implement the ability to select multiple types. This will be implemented in the website and v2 API now deployed. We will plan a more radical update of the field for a future v3 API. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Network Type \u2013 What did you tell us?"},{"location":"blog/network_type_what_you_told_us/#network-type-what-did-you-tell-us","text":"We invited PeeringDB users to tell us what they thought about the Network Type setting. This is the setting that describes your network to other PeeringDB users.","title":"Network Type \u2013 What did you tell us?"},{"location":"blog/network_type_what_you_told_us/#its-ok","text":"162 people participated and their core message was that the field is largely working for both those sharing and reading the data. Just over half of respondents use the field to make decisions. About two thirds think it is accurate or very accurate. About three quarters think the current range of options is useful or very useful. About half think the level of granularity is about right, while almost a third would like more nuance.","title":"It's OK"},{"location":"blog/network_type_what_you_told_us/#comments","text":"Lots of people told us how they use the Network Type field in the comments. Some reinforced their responses to the other questions with calls to remove the field, add additional options, or restrict the options to \u201ceyeball\u201d, \u201ccontent\u201d, and \u201chybrid\u201d. There was also a call to allow networks to select multiple categories.","title":"Comments"},{"location":"blog/network_type_what_you_told_us/#next-steps","text":"The Product Committee has decided to keep the Network Type field. We will not change the types of networks but will implement the ability to select multiple types. This will be implemented in the website and v2 API now deployed. We will plan a more radical update of the field for a future v3 API. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Next steps"},{"location":"blog/network_type_your_input_sought/","text":"Network Type \u2013 Your Input Sought You can select from 10 options to describe your network in PeeringDB. We want to know if these options are useful. If we need to improve this part of PeeringDB, how should we improve it ? Please take our four question survey . We need your input to inform our decision. One option we're discussing is to clarify what each category means . Another is to deprecate the field . We know that not everyone understands the current categories in the same way. We don't know if anyone actually relies on this data to make decisions. Please take the survey and tell us if you use this data, how reliable you think it is, and how it should change if you think it needs improvement. The improvements we make are only as good as the requests we get from you. We want to make sure that we understand what you need and why. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Network Type \u2013 Your Input Sought"},{"location":"blog/network_type_your_input_sought/#network-type-your-input-sought","text":"You can select from 10 options to describe your network in PeeringDB. We want to know if these options are useful. If we need to improve this part of PeeringDB, how should we improve it ? Please take our four question survey . We need your input to inform our decision. One option we're discussing is to clarify what each category means . Another is to deprecate the field . We know that not everyone understands the current categories in the same way. We don't know if anyone actually relies on this data to make decisions. Please take the survey and tell us if you use this data, how reliable you think it is, and how it should change if you think it needs improvement. The improvements we make are only as good as the requests we get from you. We want to make sure that we understand what you need and why. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Network Type \u2013 Your Input Sought"},{"location":"blog/new_permission_manage_peering_sessions/","text":"New Permission: Manage Peering Sessions Last November, Maximilian Wilhelm suggested that we add a 'manage peering sessions' permission. Some networks let you request peering using our OAuth service . You don't have to rely on someone to read your email message. They get the ability to pull structured information about your network through our API. Automation. Everyone can win. Today, in 2.47.0 , we\u2019re introducing a new permission that lets organizations limit who can \"manage peering sessions\" via peering portals. It will default to \u2018on\u2019 for organizational admins. But other users won\u2019t get this permission by default. If you need this permission you\u2019ll need to speak with the admins for your organization\u2019s presence on PeeringDB. \" Today many peering portals leverage PeeringDB's OAuth to make managing peerings easier and remove the need to manage separate accounts with every network you peer with. The new \"manage peerings\" permission lets organisations control which of their teams can represent them to external organisations instead of relying on admin privileges in PeeringDB, providing safer and more secure access. \" Maximilian Wilhelm, Network Automation Engineer, Cloudflare Take a look at these new permissions if you use PeeringDB OAuth to manage peering sessions. If you operate a peering portal using our OAuth, you should make sure you check the new permission when authenticating users. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"New Permission: Manage Peering Sessions"},{"location":"blog/new_permission_manage_peering_sessions/#new-permission-manage-peering-sessions","text":"Last November, Maximilian Wilhelm suggested that we add a 'manage peering sessions' permission. Some networks let you request peering using our OAuth service . You don't have to rely on someone to read your email message. They get the ability to pull structured information about your network through our API. Automation. Everyone can win. Today, in 2.47.0 , we\u2019re introducing a new permission that lets organizations limit who can \"manage peering sessions\" via peering portals. It will default to \u2018on\u2019 for organizational admins. But other users won\u2019t get this permission by default. If you need this permission you\u2019ll need to speak with the admins for your organization\u2019s presence on PeeringDB. \" Today many peering portals leverage PeeringDB's OAuth to make managing peerings easier and remove the need to manage separate accounts with every network you peer with. The new \"manage peerings\" permission lets organisations control which of their teams can represent them to external organisations instead of relying on admin privileges in PeeringDB, providing safer and more secure access. \" Maximilian Wilhelm, Network Automation Engineer, Cloudflare Take a look at these new permissions if you use PeeringDB OAuth to manage peering sessions. If you operate a peering portal using our OAuth, you should make sure you check the new permission when authenticating users. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"New Permission: Manage Peering Sessions"},{"location":"blog/oauth_users/","text":"PeeringDB Can Bring Users to Your Application One of the most challenging parts of developing a new service or expanding an existing one is to get users to register for an account. That\u2019s one of the advantages of using PeeringDB\u2019s OAuth service. We\u2019ve already got plenty of users. But why would you want to enable PeeringDB\u2019s OAuth service with your application? Well, if it\u2019s focused on people at networks who engage in managing interconnections then you have a readymade audience. Take Facebook\u2019s example . They are now using PeeringDB OAuth as a part of the process they use to automate peering requests. \u201c We wanted to offer our partners an easy way to request and manage their peering with Facebook. Thanks to PeeringDB OAuth, our partner networks can submit peering requests and see their existing peering sessions with Facebook without having to login to their Facebook accounts! \u201d Jakub Heichman & Jenny Ramseyer @ Facebook Almost 150 applications have registered with PeeringDB and we\u2019re authenticating over 1,500 sessions each quarter. We expect that to grow. If you\u2019d like to learn how you can register your application with PeeringDB\u2019s OAuth service, take a look at our documentation . If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB Can Bring Users to Your Application"},{"location":"blog/oauth_users/#peeringdb-can-bring-users-to-your-application","text":"One of the most challenging parts of developing a new service or expanding an existing one is to get users to register for an account. That\u2019s one of the advantages of using PeeringDB\u2019s OAuth service. We\u2019ve already got plenty of users. But why would you want to enable PeeringDB\u2019s OAuth service with your application? Well, if it\u2019s focused on people at networks who engage in managing interconnections then you have a readymade audience. Take Facebook\u2019s example . They are now using PeeringDB OAuth as a part of the process they use to automate peering requests. \u201c We wanted to offer our partners an easy way to request and manage their peering with Facebook. Thanks to PeeringDB OAuth, our partner networks can submit peering requests and see their existing peering sessions with Facebook without having to login to their Facebook accounts! \u201d Jakub Heichman & Jenny Ramseyer @ Facebook Almost 150 applications have registered with PeeringDB and we\u2019re authenticating over 1,500 sessions each quarter. We expect that to grow. If you\u2019d like to learn how you can register your application with PeeringDB\u2019s OAuth service, take a look at our documentation . If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB Can Bring Users to Your Application"},{"location":"blog/october_2024_retrospective/","text":"October 2024 PeeringDB Product Update Strategy We reviewed and updated our strategy earlier in the year. We will be publishing overviews of product changes in April and October. We've had a blog for a few years but it\u2019s focused on details. These updates will give a bigger picture. People and process Terry Sweetser from APNIC has recently joined the Product Committee (PC). The PC now has members from Africa, Asia Pacific, Europe, and North America. Our committee\u2019s geographic diversity is matched by a diversity in expertise. We have updated our processes because our members live around the globe. We are using asynchronous work methods more. And we will focus on planning out sets of related issues to improve PeeringDB more quickly. We still encourage users to submit feature requests and bug reports in GitHub. We want to understand how feature developments can help our users. Please tell us whether you'd use a feature and how it would help. You can do this in GitHub, on our mailing list, or when you meet us at industry events. Last six months We've been rounding out support for Carrier objects. Organizations can now set user permissions for carriers. We\u2019ve also been working to improve data quality. We now enforce state naming. For instance, Queensland in Australia is now always QLD. We also normalize city names in responses but accept popular versions in the search request. So, a search for \"fac in M\u00fcnchen\" returns results for facilities within 34 km of Munich, Germany. The radius search is managed in the backend by the new search. It's different for each city. You can control the radius in Advanced Search, or just look on a map when you download our KMZ. The full KMZ download was popular. So, we tidied up the data in the export, added a watermark, so users know that they have PeeringDB data, and integrated KMZ support into other features. You can now download a .KMZ file of exchanges or facilities in a city, state, or country. This keeps the file size small, making it easier to integrate it with other data sources. Once you\u2019ve found the carrier, exchange, facility, or network you are interested in you can now export all their data in structured formats. Previously, this was only available for Advanced Search results. These data quality, search and extract features are one part of the work we've been doing. We've also put more effort into peeringdb-py, our local cache. We encourage anyone who wants to make heavy use of PeeringDB to run a local cache. There are no usage limits and no latency. If you often hit query limits then it could be worth installing. It is resource light, so it can run on a laptop as well as a server. If you sync it once an hour, the changes are normally under 100kb of data. We\u2019ve also made improvements behind the scenes. We\u2019ve switched to deploying PeeringDB in containers. This change will reduce the work needed by our volunteer Operations Committee. It will also help us manage costs better by adjusting compute resources dynamically based on load. Security A user made two security reports. Our Operations team also noticed one issue. Based on these reports, we will be making 2FA mandatory for all user accounts. We will also make some minor improvements to other elements of account security. We\u2019ll share more details after deploying changes. If you notice a security issue, please let us know! https://docs.peeringdb.com/howto/make-a-security-report/ Coming up and engagement Over the next six months we'd like to deploy improvements to our web design. These won't just make it look better. Once we have them in place we can implement lazy loading, to improve the user experience. We can also start to develop some key feature improvements, including saved searches, notifications, and comparison tools. Your input on how you'd use these and other feature improvements are welcome. You can create or comment on issues in GitHub. But we'd love to speak with you, too. We actively attend industry events around the world, so look for us there. Or send mail so we can schedule a conversation! If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"October 2024 PeeringDB Product Update"},{"location":"blog/october_2024_retrospective/#october-2024-peeringdb-product-update","text":"","title":"October 2024 PeeringDB Product Update"},{"location":"blog/october_2024_retrospective/#strategy","text":"We reviewed and updated our strategy earlier in the year. We will be publishing overviews of product changes in April and October. We've had a blog for a few years but it\u2019s focused on details. These updates will give a bigger picture.","title":"Strategy"},{"location":"blog/october_2024_retrospective/#people-and-process","text":"Terry Sweetser from APNIC has recently joined the Product Committee (PC). The PC now has members from Africa, Asia Pacific, Europe, and North America. Our committee\u2019s geographic diversity is matched by a diversity in expertise. We have updated our processes because our members live around the globe. We are using asynchronous work methods more. And we will focus on planning out sets of related issues to improve PeeringDB more quickly. We still encourage users to submit feature requests and bug reports in GitHub. We want to understand how feature developments can help our users. Please tell us whether you'd use a feature and how it would help. You can do this in GitHub, on our mailing list, or when you meet us at industry events.","title":"People and process"},{"location":"blog/october_2024_retrospective/#last-six-months","text":"We've been rounding out support for Carrier objects. Organizations can now set user permissions for carriers. We\u2019ve also been working to improve data quality. We now enforce state naming. For instance, Queensland in Australia is now always QLD. We also normalize city names in responses but accept popular versions in the search request. So, a search for \"fac in M\u00fcnchen\" returns results for facilities within 34 km of Munich, Germany. The radius search is managed in the backend by the new search. It's different for each city. You can control the radius in Advanced Search, or just look on a map when you download our KMZ. The full KMZ download was popular. So, we tidied up the data in the export, added a watermark, so users know that they have PeeringDB data, and integrated KMZ support into other features. You can now download a .KMZ file of exchanges or facilities in a city, state, or country. This keeps the file size small, making it easier to integrate it with other data sources. Once you\u2019ve found the carrier, exchange, facility, or network you are interested in you can now export all their data in structured formats. Previously, this was only available for Advanced Search results. These data quality, search and extract features are one part of the work we've been doing. We've also put more effort into peeringdb-py, our local cache. We encourage anyone who wants to make heavy use of PeeringDB to run a local cache. There are no usage limits and no latency. If you often hit query limits then it could be worth installing. It is resource light, so it can run on a laptop as well as a server. If you sync it once an hour, the changes are normally under 100kb of data. We\u2019ve also made improvements behind the scenes. We\u2019ve switched to deploying PeeringDB in containers. This change will reduce the work needed by our volunteer Operations Committee. It will also help us manage costs better by adjusting compute resources dynamically based on load.","title":"Last six months"},{"location":"blog/october_2024_retrospective/#security","text":"A user made two security reports. Our Operations team also noticed one issue. Based on these reports, we will be making 2FA mandatory for all user accounts. We will also make some minor improvements to other elements of account security. We\u2019ll share more details after deploying changes. If you notice a security issue, please let us know! https://docs.peeringdb.com/howto/make-a-security-report/","title":"Security"},{"location":"blog/october_2024_retrospective/#coming-up-and-engagement","text":"Over the next six months we'd like to deploy improvements to our web design. These won't just make it look better. Once we have them in place we can implement lazy loading, to improve the user experience. We can also start to develop some key feature improvements, including saved searches, notifications, and comparison tools. Your input on how you'd use these and other feature improvements are welcome. You can create or comment on issues in GitHub. But we'd love to speak with you, too. We actively attend industry events around the world, so look for us there. Or send mail so we can schedule a conversation! If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Coming up and engagement"},{"location":"blog/organizational_policy/","text":"Organizational Policy Features and More We want administrators for organizations in PeeringDB to log in and to look around. We have created some new settings to help you manage users affiliated with your organization in PeeringDB. There are three key changes you'll want to look at. You can now require your users to use a specific email domain. For example, if your company email uses example.com, you could require them to have an example.com email address for their PeeringDB account. You can now force users to revalidate their PeeringDB account periodically. You can set the period that fits with your organization's needs. Your users can now have multiple email addresses for their PeeringDB account. We have published a HOWTO that walks administrators through the details of how to configure these features. This release also includes improvements contributed by developers at Amazon and Google. We are grateful for their contributions. Take a look at our HOWTO about developing for PeeringDB if you'd like to contribute. This release also has several small feature improvements and changes that allow us to provide users with better support. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Organizational Policy Features and More"},{"location":"blog/organizational_policy/#organizational-policy-features-and-more","text":"We want administrators for organizations in PeeringDB to log in and to look around. We have created some new settings to help you manage users affiliated with your organization in PeeringDB. There are three key changes you'll want to look at. You can now require your users to use a specific email domain. For example, if your company email uses example.com, you could require them to have an example.com email address for their PeeringDB account. You can now force users to revalidate their PeeringDB account periodically. You can set the period that fits with your organization's needs. Your users can now have multiple email addresses for their PeeringDB account. We have published a HOWTO that walks administrators through the details of how to configure these features. This release also includes improvements contributed by developers at Amazon and Google. We are grateful for their contributions. Take a look at our HOWTO about developing for PeeringDB if you'd like to contribute. This release also has several small feature improvements and changes that allow us to provide users with better support. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Organizational Policy Features and More"},{"location":"blog/peeringdb_2020_satisfaction_survey/","text":"PeeringDB 2020 Satisfaction Survey PeeringDB wants input from network operators, exchange operators, facility providers, content distributors and anyone who uses our interconnection database. We are running an anonymous satisfaction survey until 23:59 UTC on 20 November 2020 and would like your feedback to help us make PeeringDB more useful to everyone involved in connecting networks. We haven\u2019t had the diversity of input we\u2019d like in previous surveys, so we are making an extra effort to reach parts of the community who weren\u2019t aware of our previous surveys. We're telling you here and we are teaming up with partners around the world to get the message out. Steve McManus, PeeringDB Product Committee Chair, says: \"Input from all PeeringDB users on what is important and what needs improving is essential. Telling us what you value and what you need us to improve will help us make PeeringDB better for you and make peering easier for all.\" The survey will help us understand what is important to you and how satisfied you are with what we are doing. We will use your responses to focus our product roadmap on the improvements that will make things better for you. If you have specific comments or suggestions we\u2019d love you to leave them along with your ratings. This is the first survey we are making available in multiple languages. In this survey we are using the six UN languages for the questions. That said, we\u2019re happy with people providing free text comments in whichever language they are happiest expressing themselves. We\u2019ll share the results and the new product roadmap early in 2021. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB 2020 Satisfaction Survey"},{"location":"blog/peeringdb_2020_satisfaction_survey/#peeringdb-2020-satisfaction-survey","text":"PeeringDB wants input from network operators, exchange operators, facility providers, content distributors and anyone who uses our interconnection database. We are running an anonymous satisfaction survey until 23:59 UTC on 20 November 2020 and would like your feedback to help us make PeeringDB more useful to everyone involved in connecting networks. We haven\u2019t had the diversity of input we\u2019d like in previous surveys, so we are making an extra effort to reach parts of the community who weren\u2019t aware of our previous surveys. We're telling you here and we are teaming up with partners around the world to get the message out. Steve McManus, PeeringDB Product Committee Chair, says: \"Input from all PeeringDB users on what is important and what needs improving is essential. Telling us what you value and what you need us to improve will help us make PeeringDB better for you and make peering easier for all.\" The survey will help us understand what is important to you and how satisfied you are with what we are doing. We will use your responses to focus our product roadmap on the improvements that will make things better for you. If you have specific comments or suggestions we\u2019d love you to leave them along with your ratings. This is the first survey we are making available in multiple languages. In this survey we are using the six UN languages for the questions. That said, we\u2019re happy with people providing free text comments in whichever language they are happiest expressing themselves. We\u2019ll share the results and the new product roadmap early in 2021. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB 2020 Satisfaction Survey"},{"location":"blog/peeringdb_2020_survey_2021_roadmap/","text":"2020 Survey Results and 2021 Product Roadmap Last November we asked you for input through our anonymous satisfaction survey, so we could use it to guide our product roadmap for 2021. Today, we are sharing what you told us through the survey and how we\u2019ll be improving PeeringDB and your experience of it in 2021. We had over 200 responses to the survey. Respondents identified themselves as connected with organizations operating on every continent and in every part of our industry. 99% of respondents described themselves as very or somewhat satisfied with PeeringDB overall. When we asked about specific service categories, we were told that Network Configuration Data and Search and Discovery capabilities were the most important. These service categories had lower, though still high, levels of satisfaction, with 95% and 96% of respondents describing themselves as very or somewhat satisfied with these aspects of PeeringDB. Although we saw higher satisfaction with the User Experience and Web Interface, at 97%, this service category both had the most responses and the most divided feedback. One user described the current web interface as \u201c clean and simple \u201d while others said it was \u201c showing its age .\u201d Documentation quality was also an area with lower specific satisfaction, at 93%. One comment homed in on a key problem, noting: \" Needs a top-level overview document/intro. Or if it exists, I need to find it. \" We have used your feedback to guide our product roadmap for 2021. The four key focus areas will be: Improving geographic search Developing a structured framework for user documentation Improving the web site\u2019s responsiveness Introducing a communications framework to alert users to developments and support future tooling Our first steps to accomplish this have been to add database support for coordinates of facilities. All new facilities will be located by their latitude and longitude, with street addresses as human friendly search terms instead of authoritative data. This is a major project and we will share more on this work in a future blog post. Another key change is the publication of our first HOWTO document . This document is designed to help new networks register with PeeringDB using our website. We will be publishing more documents in this series and developing a broader documentation framework to support API and web users equally. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"2020 Survey Results and 2021 Product Roadmap"},{"location":"blog/peeringdb_2020_survey_2021_roadmap/#2020-survey-results-and-2021-product-roadmap","text":"Last November we asked you for input through our anonymous satisfaction survey, so we could use it to guide our product roadmap for 2021. Today, we are sharing what you told us through the survey and how we\u2019ll be improving PeeringDB and your experience of it in 2021. We had over 200 responses to the survey. Respondents identified themselves as connected with organizations operating on every continent and in every part of our industry. 99% of respondents described themselves as very or somewhat satisfied with PeeringDB overall. When we asked about specific service categories, we were told that Network Configuration Data and Search and Discovery capabilities were the most important. These service categories had lower, though still high, levels of satisfaction, with 95% and 96% of respondents describing themselves as very or somewhat satisfied with these aspects of PeeringDB. Although we saw higher satisfaction with the User Experience and Web Interface, at 97%, this service category both had the most responses and the most divided feedback. One user described the current web interface as \u201c clean and simple \u201d while others said it was \u201c showing its age .\u201d Documentation quality was also an area with lower specific satisfaction, at 93%. One comment homed in on a key problem, noting: \" Needs a top-level overview document/intro. Or if it exists, I need to find it. \" We have used your feedback to guide our product roadmap for 2021. The four key focus areas will be: Improving geographic search Developing a structured framework for user documentation Improving the web site\u2019s responsiveness Introducing a communications framework to alert users to developments and support future tooling Our first steps to accomplish this have been to add database support for coordinates of facilities. All new facilities will be located by their latitude and longitude, with street addresses as human friendly search terms instead of authoritative data. This is a major project and we will share more on this work in a future blog post. Another key change is the publication of our first HOWTO document . This document is designed to help new networks register with PeeringDB using our website. We will be publishing more documents in this series and developing a broader documentation framework to support API and web users equally. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"2020 Survey Results and 2021 Product Roadmap"},{"location":"blog/peeringdb_2021_survey_2022_roadmap/","text":"2021 Survey Results and 2022 Product Roadmap Last September we asked you for input through our anonymous satisfaction survey, so we could use it to guide our product roadmap for 2022. Today, we are sharing what you told us through the survey and how we\u2019ll be improving PeeringDB and your experience of it in 2022. Highlights We had almost 250 responses to the survey, a 25% increase on last year. As with last year, respondents identified themselves as connected with organizations operating on every continent and in every part of our industry. Overall satisfaction remains unchanged from last year. We asked a few new questions in 2021 and learned: Almost 70% of respondents use PeeringDB every day or every week. Most of the rest use it every month. Under half of respondents use PeeringDB on a mobile device. About 70% of respondents want a way to be notified about changes that are relevant to them. From the questions that were repeated from 2021 we learned that Network Configuration Data and Search and Discovery capabilities remained the most important to our users. The User Experience and Web Interface remained the service categories with the lowest satisfaction, although 85% of respondents were still somewhat or very satisfied. The other lower performing area was Documentation Quality, which is an area that we started to address later in 2021 and some respondents won't have known about. Work on improving our documentation will continue in 2022. We hope that these improvements drive satisfaction in 2022. Roadmap We have used your feedback, in combination with a focus group consultation , to guide our product roadmap for 2022. The three key focus areas will be: Introduce a new \u201cCarrier\u201d object This object will describe providers of high capacity links between interconnection facilities. It was named \u201cCarrier\u201d during the discussion but that is a placeholder that could be changed if it is considered confusing or inappropriate. We are developing a design which will be circulated with the focus group before developing this new feature. As a new object, we\u2019ll make sure that it is well documented so users can get the most value from it. Improving the web site\u2019s responsiveness We recognize that the overall visual design needs some improvement. But perhaps more importantly we need to improve page load times. We plan to bring PeeringDB nearer to its users by completing deployment to a CDN. We have already tested this by deploying beta.peeringdb.com there and we will be moving www.peeringdb.com to it in 2022. We will also introduce modular page rendering, so each element loads via a separate connection, speeding the overall experience. We will use the CDN metrics to learn more about how www.peeringdb.com is used and that will inform improvements to the visual design. Continue improving search 2021 saw significant improvements to advanced search and simple search. We will continue to make improvements to search and help users keep the underlying data more accurate. One example of this is work that\u2019s going on, as I type, at the NANOG 84 Hackathon where volunteer developers are introducing intersection searches . That means you\u2019ll be able to make a single query to find out which IXPs or interconnection facilities have two networks present, such as your own and a desired peer\u2019s. This is an example of how PeeringDB is developed by its users as well as the core team. What else? Data accuracy We know that we need to do work to improve the quality of data in PeeringDB as it plays such an important role in configuration. We last looked at this in 2019\u2019s Data Ownership Task Force , whose report acknowledged the shared responsibility for data describing the interconnected nature of separately managed parts of our Internet. We plan to work with PeeringDB users to renew our work in this area so we can continue to improve the quality of data we publish. We are also setting course towards increased data accuracy by using the RPKI and Resource Signed Checklists (RSC). We want to use RSC validation to cryptographically validate our users\u2019 ability to control specific Internet Number Resources. Call to action We just deployed two user developed features: improvements to simple search and OpenID Connect integration. We are keen to include more user developed code. If you\u2019d like to contribute to PeeringDB then let me know and we can help you. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"2021 Survey Results and 2022 Product Roadmap"},{"location":"blog/peeringdb_2021_survey_2022_roadmap/#2021-survey-results-and-2022-product-roadmap","text":"Last September we asked you for input through our anonymous satisfaction survey, so we could use it to guide our product roadmap for 2022. Today, we are sharing what you told us through the survey and how we\u2019ll be improving PeeringDB and your experience of it in 2022.","title":"2021 Survey Results and 2022 Product Roadmap"},{"location":"blog/peeringdb_2021_survey_2022_roadmap/#highlights","text":"We had almost 250 responses to the survey, a 25% increase on last year. As with last year, respondents identified themselves as connected with organizations operating on every continent and in every part of our industry. Overall satisfaction remains unchanged from last year. We asked a few new questions in 2021 and learned: Almost 70% of respondents use PeeringDB every day or every week. Most of the rest use it every month. Under half of respondents use PeeringDB on a mobile device. About 70% of respondents want a way to be notified about changes that are relevant to them. From the questions that were repeated from 2021 we learned that Network Configuration Data and Search and Discovery capabilities remained the most important to our users. The User Experience and Web Interface remained the service categories with the lowest satisfaction, although 85% of respondents were still somewhat or very satisfied. The other lower performing area was Documentation Quality, which is an area that we started to address later in 2021 and some respondents won't have known about. Work on improving our documentation will continue in 2022. We hope that these improvements drive satisfaction in 2022.","title":"Highlights"},{"location":"blog/peeringdb_2021_survey_2022_roadmap/#roadmap","text":"We have used your feedback, in combination with a focus group consultation , to guide our product roadmap for 2022. The three key focus areas will be:","title":"Roadmap"},{"location":"blog/peeringdb_2021_survey_2022_roadmap/#introduce-a-new-carrier-object","text":"This object will describe providers of high capacity links between interconnection facilities. It was named \u201cCarrier\u201d during the discussion but that is a placeholder that could be changed if it is considered confusing or inappropriate. We are developing a design which will be circulated with the focus group before developing this new feature. As a new object, we\u2019ll make sure that it is well documented so users can get the most value from it.","title":"Introduce a new \u201cCarrier\u201d object"},{"location":"blog/peeringdb_2021_survey_2022_roadmap/#improving-the-web-sites-responsiveness","text":"We recognize that the overall visual design needs some improvement. But perhaps more importantly we need to improve page load times. We plan to bring PeeringDB nearer to its users by completing deployment to a CDN. We have already tested this by deploying beta.peeringdb.com there and we will be moving www.peeringdb.com to it in 2022. We will also introduce modular page rendering, so each element loads via a separate connection, speeding the overall experience. We will use the CDN metrics to learn more about how www.peeringdb.com is used and that will inform improvements to the visual design.","title":"Improving the web site\u2019s responsiveness"},{"location":"blog/peeringdb_2021_survey_2022_roadmap/#continue-improving-search","text":"2021 saw significant improvements to advanced search and simple search. We will continue to make improvements to search and help users keep the underlying data more accurate. One example of this is work that\u2019s going on, as I type, at the NANOG 84 Hackathon where volunteer developers are introducing intersection searches . That means you\u2019ll be able to make a single query to find out which IXPs or interconnection facilities have two networks present, such as your own and a desired peer\u2019s. This is an example of how PeeringDB is developed by its users as well as the core team.","title":"Continue improving search"},{"location":"blog/peeringdb_2021_survey_2022_roadmap/#what-else-data-accuracy","text":"We know that we need to do work to improve the quality of data in PeeringDB as it plays such an important role in configuration. We last looked at this in 2019\u2019s Data Ownership Task Force , whose report acknowledged the shared responsibility for data describing the interconnected nature of separately managed parts of our Internet. We plan to work with PeeringDB users to renew our work in this area so we can continue to improve the quality of data we publish. We are also setting course towards increased data accuracy by using the RPKI and Resource Signed Checklists (RSC). We want to use RSC validation to cryptographically validate our users\u2019 ability to control specific Internet Number Resources.","title":"What else? Data accuracy"},{"location":"blog/peeringdb_2021_survey_2022_roadmap/#call-to-action","text":"We just deployed two user developed features: improvements to simple search and OpenID Connect integration. We are keen to include more user developed code. If you\u2019d like to contribute to PeeringDB then let me know and we can help you. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Call to action"},{"location":"blog/peeringdb_2021_user_survey/","text":"PeeringDB 2021 User Survey PeeringDB wants input from network operators, exchange operators, facility providers, content distributors and anyone who uses our interconnection database. We are running an anonymous satisfaction survey until 23:59 UTC on Friday, 8 October 2021 and would like your feedback to help us make PeeringDB more useful to everyone involved in connecting networks. We had over 200 responses to last year\u2019s survey and those responses helped guide our product development. We\u2019ve made significant improvements to search based on user input, introduced a HOWTO documentation series , and are developing a documentation architecture directly as a result of your input. We\u2019d like more input, in 2021, so we can keep up with the industry\u2019s evolving needs. Steve McManus, PeeringDB Product Committee Chair, says: \" User comments in the 2020 survey helped us focus development where it was most needed. It directly influenced our roadmap and highlighted the need for specific expertise in documentation and user experience design to solve users\u2019 most pressing needs. Thanks to everyone who gives a few moments of their time to help us make PeeringDB a better service! \u201d In addition to the questions we asked last year, we have three extra questions about documentation priorities, notifications, and user experience on mobile devices. We are particularly keen to improve our understanding of people\u2019s needs for the website as this was the area with the most divided responses last year. The survey is available in the six UN languages and Portuguese. We\u2019re happy with people providing free text comments in whichever language they are happiest expressing themselves. We\u2019ll share the results and the new product roadmap early in 2022. So CLICK HERE to help guide PeeringDB\u2019s future development. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB 2021 User Survey"},{"location":"blog/peeringdb_2021_user_survey/#peeringdb-2021-user-survey","text":"PeeringDB wants input from network operators, exchange operators, facility providers, content distributors and anyone who uses our interconnection database. We are running an anonymous satisfaction survey until 23:59 UTC on Friday, 8 October 2021 and would like your feedback to help us make PeeringDB more useful to everyone involved in connecting networks. We had over 200 responses to last year\u2019s survey and those responses helped guide our product development. We\u2019ve made significant improvements to search based on user input, introduced a HOWTO documentation series , and are developing a documentation architecture directly as a result of your input. We\u2019d like more input, in 2021, so we can keep up with the industry\u2019s evolving needs. Steve McManus, PeeringDB Product Committee Chair, says: \" User comments in the 2020 survey helped us focus development where it was most needed. It directly influenced our roadmap and highlighted the need for specific expertise in documentation and user experience design to solve users\u2019 most pressing needs. Thanks to everyone who gives a few moments of their time to help us make PeeringDB a better service! \u201d In addition to the questions we asked last year, we have three extra questions about documentation priorities, notifications, and user experience on mobile devices. We are particularly keen to improve our understanding of people\u2019s needs for the website as this was the area with the most divided responses last year. The survey is available in the six UN languages and Portuguese. We\u2019re happy with people providing free text comments in whichever language they are happiest expressing themselves. We\u2019ll share the results and the new product roadmap early in 2022. So CLICK HERE to help guide PeeringDB\u2019s future development. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB 2021 User Survey"},{"location":"blog/peeringdb_2022_user_survey/","text":"PeeringDB 2022 User Survey PeeringDB wants input from everyone who uses our interconnection database. Our anonymous survey is now open until 23:59 UTC on 16 October 2022. We would like your feedback to help us make PeeringDB more useful to everyone involved in connecting networks. We had about 250 responses to last year\u2019s survey which helped guide our product development. Key changes delivered so far in 2022 include: Added API Key support to peeringdb-py Added FIDO U2F 2FA support to www.peeringdb.com Normalized place names We\u2019ve also published more documents in our HOWTO documentation series . 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! \u201d In 2022 we have added a couple of extra questions. We'd like to know how many people use PeeringDB at your organization. We'd also like to know how you use it: web, API, or via a local cache. We will use your answers to focus development work where it is most needed. The survey is available in the six UN languages, Portuguese and Ukrainian. Please provide comments in whatever language you want to express yourself. We\u2019ll share the results and the new product roadmap early in 2023. So CLICK HERE to help guide PeeringDB\u2019s future development. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB 2022 User Survey"},{"location":"blog/peeringdb_2022_user_survey/#peeringdb-2022-user-survey","text":"PeeringDB wants input from everyone who uses our interconnection database. Our anonymous survey is now open until 23:59 UTC on 16 October 2022. We would like your feedback to help us make PeeringDB more useful to everyone involved in connecting networks. We had about 250 responses to last year\u2019s survey which helped guide our product development. Key changes delivered so far in 2022 include: Added API Key support to peeringdb-py Added FIDO U2F 2FA support to www.peeringdb.com Normalized place names We\u2019ve also published more documents in our HOWTO documentation series . 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! \u201d In 2022 we have added a couple of extra questions. We'd like to know how many people use PeeringDB at your organization. We'd also like to know how you use it: web, API, or via a local cache. We will use your answers to focus development work where it is most needed. The survey is available in the six UN languages, Portuguese and Ukrainian. Please provide comments in whatever language you want to express yourself. We\u2019ll share the results and the new product roadmap early in 2023. So CLICK HERE to help guide PeeringDB\u2019s future development. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB 2022 User Survey"},{"location":"blog/peeringdb_2023_roadmap/","text":"PeeringDB's Product Roadmap for 2023 We want to build more agility into our Product Management process in 2023. This blog post describes what we have planned for the start of the year. It also describes how we want to work over the whole year, and how you can help us make good choices. We are starting the year with features that open new paths to us. Your input will help us choose how we move down them. Our roundup of 2022 noted that we have some big things planned for the start of 2023. The two biggest are two new objects. We deployed the first in our January release. The new carrier object is a way for providers of high capacity links to show which interconnection facilities they are in. We\u2019ve deployed the minimal possible structure for this new object. We want users to tell us what additional features they cannot do without. The next big new addition is a campus object. This will be a way for interconnection facilities to show that inter-building cross-connects are available with the same ease as those within a building. This will help buyers understand when they don't need to be in the same building as something they want to connect to. We can expand either or both of these objects. We need your feedback to help us decide what would make them more valuable. Respondents to our annual surveys have consistently told us that Network Configuration Data is what they value most. They are also quite divided about the website design. Some people love its simplicity and others want something more modern. We knew that we didn't have enough information to make good decisions on how to improve things for the people who want change without disappointing those who like it the way it is. We have deployed Google Analytics for beta.peeringdb.com and would like to deploy it to www.peeringdb.com and docs.peeringdb.com . This will give us important information about how people use our site. We\u2019ll use this information to understand the problems people experience and develop ways to solve them. We also have lots of users who rely on our API or a local cache of PeeringDB data. So, we want to make it easier for users to identify the deltas between what they have in PeeringDB and their local configuration management. This is the focus on the projects we're taking to the NANOG 87 Hackathon . We want to work with tool developers and anyone who relies on PeeringDB as a source of network configuration data. Ultimately, we'd like to offer a way for users to automatically identify deltas, the changes that could be made, and ways to make or approve those changes. Across the rest of the year, we'd like to focus on one theme at a time and deliver a set of significant improvements there. Then we can move on to the next relevant theme. So please let us know how we could make PeeringDB more valuable for your organization. As always, you can submit an issue, or comment on existing issues in GitHub . But you can also send us email or chat to us at various community events. PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB's Product Roadmap for 2023"},{"location":"blog/peeringdb_2023_roadmap/#peeringdbs-product-roadmap-for-2023","text":"We want to build more agility into our Product Management process in 2023. This blog post describes what we have planned for the start of the year. It also describes how we want to work over the whole year, and how you can help us make good choices. We are starting the year with features that open new paths to us. Your input will help us choose how we move down them. Our roundup of 2022 noted that we have some big things planned for the start of 2023. The two biggest are two new objects. We deployed the first in our January release. The new carrier object is a way for providers of high capacity links to show which interconnection facilities they are in. We\u2019ve deployed the minimal possible structure for this new object. We want users to tell us what additional features they cannot do without. The next big new addition is a campus object. This will be a way for interconnection facilities to show that inter-building cross-connects are available with the same ease as those within a building. This will help buyers understand when they don't need to be in the same building as something they want to connect to. We can expand either or both of these objects. We need your feedback to help us decide what would make them more valuable. Respondents to our annual surveys have consistently told us that Network Configuration Data is what they value most. They are also quite divided about the website design. Some people love its simplicity and others want something more modern. We knew that we didn't have enough information to make good decisions on how to improve things for the people who want change without disappointing those who like it the way it is. We have deployed Google Analytics for beta.peeringdb.com and would like to deploy it to www.peeringdb.com and docs.peeringdb.com . This will give us important information about how people use our site. We\u2019ll use this information to understand the problems people experience and develop ways to solve them. We also have lots of users who rely on our API or a local cache of PeeringDB data. So, we want to make it easier for users to identify the deltas between what they have in PeeringDB and their local configuration management. This is the focus on the projects we're taking to the NANOG 87 Hackathon . We want to work with tool developers and anyone who relies on PeeringDB as a source of network configuration data. Ultimately, we'd like to offer a way for users to automatically identify deltas, the changes that could be made, and ways to make or approve those changes. Across the rest of the year, we'd like to focus on one theme at a time and deliver a set of significant improvements there. Then we can move on to the next relevant theme. So please let us know how we could make PeeringDB more valuable for your organization. As always, you can submit an issue, or comment on existing issues in GitHub . But you can also send us email or chat to us at various community events. PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB's Product Roadmap for 2023"},{"location":"blog/peeringdb_in_your_preferred_language/","text":"PeeringDB in Your Preferred Language Volunteers translate PeeringDB into 17 different languages . Some of those translations, like Romanian, are complete. Others, like Indonesian, have only just started. Translation is important in making PeeringDB accessible to people around the world. But until now, you had to create an account \u2013 using the English language interface \u2013 to set your preferred language. We realized that this was not a perfect solution. We are grateful to Daniel Van Allen of Google. He developed the code to make translations available to anonymous web users. Now, you can land on the homepage and select the language you want to use from the dropdown menu. We hope that this will make PeeringDB accessible to more users. We also hope it will inspire people to volunteer to translate PeeringDB. If you want to volunteer, you can contact us . If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB in Your Preferred Language"},{"location":"blog/peeringdb_in_your_preferred_language/#peeringdb-in-your-preferred-language","text":"Volunteers translate PeeringDB into 17 different languages . Some of those translations, like Romanian, are complete. Others, like Indonesian, have only just started. Translation is important in making PeeringDB accessible to people around the world. But until now, you had to create an account \u2013 using the English language interface \u2013 to set your preferred language. We realized that this was not a perfect solution. We are grateful to Daniel Van Allen of Google. He developed the code to make translations available to anonymous web users. Now, you can land on the homepage and select the language you want to use from the dropdown menu. We hope that this will make PeeringDB accessible to more users. We also hope it will inspire people to volunteer to translate PeeringDB. If you want to volunteer, you can contact us . If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB in Your Preferred Language"},{"location":"blog/peeringdb_is_developed_by_its_community/","text":"PeeringDB is Developed by its Community PeeringDB community members have contributed two significant improvements that were deployed into production this month. Simple Search is Smarter Search As reported by NANOG last week, we have deployed code developed by Brad Schwyzer, James Lamanna, and Jeff Kala that significantly improves the accuracy of what we call Simple Search. This is the main search box on the front page or the basic API call. Until this month it provided an enthusiastic number of responses when searching for things like small AS Numbers. While the answers weren\u2019t wrong, our users needed to pay extra attention to find what they needed. Brad, James, and Jeff developed logic to work out what users are likely to be searching for and give them the most relevant results. Simple Search now knows about the difference between an AS Number, an IPv4 address, and an IPv6 address. It will only respond with IP address information if at least two segments of the address are included in the search. They turned this: Into this: We are grateful to them and to NANOG, who hosted the Hackathon where this code was developed. We are keen to participate in more Hackathons in the future. OpenID Connect We also deployed code developed by Carlos Aguado to implement OpenID Connect . This builds on our existing support for OAuth to enable identity federation with managed services. The code Carlos developed means that PeeringDB can be used as an OpenID Authorization Server so that any PeeringDB user can sign in to other websites. Your Code If you are a software developer who needs something from PeeringDB we might be able to deploy code you develop. We have a tested development environment and are keen to make PeeringDB service the interconnection community\u2019s needs. So please create an issue on GitHub or let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB is Developed by its Community"},{"location":"blog/peeringdb_is_developed_by_its_community/#peeringdb-is-developed-by-its-community","text":"PeeringDB community members have contributed two significant improvements that were deployed into production this month.","title":"PeeringDB is Developed by its Community"},{"location":"blog/peeringdb_is_developed_by_its_community/#simple-search-is-smarter-search","text":"As reported by NANOG last week, we have deployed code developed by Brad Schwyzer, James Lamanna, and Jeff Kala that significantly improves the accuracy of what we call Simple Search. This is the main search box on the front page or the basic API call. Until this month it provided an enthusiastic number of responses when searching for things like small AS Numbers. While the answers weren\u2019t wrong, our users needed to pay extra attention to find what they needed. Brad, James, and Jeff developed logic to work out what users are likely to be searching for and give them the most relevant results. Simple Search now knows about the difference between an AS Number, an IPv4 address, and an IPv6 address. It will only respond with IP address information if at least two segments of the address are included in the search. They turned this: Into this: We are grateful to them and to NANOG, who hosted the Hackathon where this code was developed. We are keen to participate in more Hackathons in the future.","title":"Simple Search is Smarter Search"},{"location":"blog/peeringdb_is_developed_by_its_community/#openid-connect","text":"We also deployed code developed by Carlos Aguado to implement OpenID Connect . This builds on our existing support for OAuth to enable identity federation with managed services. The code Carlos developed means that PeeringDB can be used as an OpenID Authorization Server so that any PeeringDB user can sign in to other websites.","title":"OpenID Connect"},{"location":"blog/peeringdb_is_developed_by_its_community/#your-code","text":"If you are a software developer who needs something from PeeringDB we might be able to deploy code you develop. We have a tested development environment and are keen to make PeeringDB service the interconnection community\u2019s needs. So please create an issue on GitHub or let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Your Code"},{"location":"blog/peeringdb_map_with_kmz/","text":"See Locations in PeeringDB on a Map We're making it easier for you to see where facilities are. It\u2019s good to know how close facilities are to each other and anything else that\u2019s important to you, like who and what is present there. We have coordinates for every facility in PeeringDB. For instance, One Wilshire in Los Angeles is at 34.047942, -118.255564. When you click on the coordinates on our site, you go to a map view. But that just shows you that one facility. Anyone who wants could use our API to extract the coordinates for all facilities. They could then populate any map they want. But that can be hard to do from raw data. We now produce a .KMZ file every day. It's ideal if you want to populate a map or GIS tool with PeeringDB facility data. We have linked to the file from the footer of every page on the site. If you want fresh data on interconnection facilities around the world, grab a copy every day. If you want to explore a new area, grab a copy and open it in your favorite .KMZ viewer. We have ideas for ways to improve the visualization of data in PeeringDB. But we want your input to guide us. Let us know what's most important to you, or the problems you need to solve. Contact the Product Committee , share it on our low traffic mailing lists , or have a chat when you meet us at an event. Or create an issue describing your need on GitHub. If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"See Locations in PeeringDB on a Map"},{"location":"blog/peeringdb_map_with_kmz/#see-locations-in-peeringdb-on-a-map","text":"We're making it easier for you to see where facilities are. It\u2019s good to know how close facilities are to each other and anything else that\u2019s important to you, like who and what is present there. We have coordinates for every facility in PeeringDB. For instance, One Wilshire in Los Angeles is at 34.047942, -118.255564. When you click on the coordinates on our site, you go to a map view. But that just shows you that one facility. Anyone who wants could use our API to extract the coordinates for all facilities. They could then populate any map they want. But that can be hard to do from raw data. We now produce a .KMZ file every day. It's ideal if you want to populate a map or GIS tool with PeeringDB facility data. We have linked to the file from the footer of every page on the site. If you want fresh data on interconnection facilities around the world, grab a copy every day. If you want to explore a new area, grab a copy and open it in your favorite .KMZ viewer. We have ideas for ways to improve the visualization of data in PeeringDB. But we want your input to guide us. Let us know what's most important to you, or the problems you need to solve. Contact the Product Committee , share it on our low traffic mailing lists , or have a chat when you meet us at an event. Or create an issue describing your need on GitHub. If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"See Locations in PeeringDB on a Map"},{"location":"blog/peeringdb_release_v2.23.0/","text":"PeeringDB Release v2.23.0 PeeringDB is pleased to announce the release of v2.23.0. Summary release notes are published on the release notes page . This release includes a key feature that comes out of the Data Ownership Task Force , which was established to clarify who is authoritative for data about networks where multiple members participate, like IXPs. This change means that all networks will need to have a technical POC when they publish a connection to an exchange network. This change will help all the parties on the exchange resolve technical issues efficiently. It was proposed and discussed in GitHub issues #826 . Stefan Wahl, Senior Ambassador ECIX, Megaport, says: \"This new feature is a great improvement allowing users to correctly identify the authoritative contact of a network. I enjoyed collaborating with the PeeringDB Task Force on this project.\" If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB Release v2.23.0"},{"location":"blog/peeringdb_release_v2.23.0/#peeringdb-release-v2230","text":"PeeringDB is pleased to announce the release of v2.23.0. Summary release notes are published on the release notes page . This release includes a key feature that comes out of the Data Ownership Task Force , which was established to clarify who is authoritative for data about networks where multiple members participate, like IXPs. This change means that all networks will need to have a technical POC when they publish a connection to an exchange network. This change will help all the parties on the exchange resolve technical issues efficiently. It was proposed and discussed in GitHub issues #826 . Stefan Wahl, Senior Ambassador ECIX, Megaport, says: \"This new feature is a great improvement allowing users to correctly identify the authoritative contact of a network. I enjoyed collaborating with the PeeringDB Task Force on this project.\" If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB Release v2.23.0"},{"location":"blog/peeringdb_release_v2.24.0/","text":"PeeringDB Release v2.24.0 PeeringDB is pleased to announce the release of v2.24.0. Summary release notes are published on the release notes page . This release focuses on improving data quality in the database by improving the way networks can identify themselves and making the user interface clearer where people misunderstood what was meant. Specialist networks can now identify themselves better. Governments, Route Collectors and organizations providing specialized Network Services, such as DNS, RDAP, or DDoS Protection can say so in their network type. We have cleaned up the data to reflect this for existing networks. Some users misunderstood the maximum prefix limit to mean the maximum prefix length. The tooltip now makes it clear that this refers to the maximum number of prefixes and not the prefix length. While our anonymous 2020 User Satisfaction Survey is still open, we can already see that we\u2019ll need to make more improvements along these lines. If you have not yet completed the survey, please do. It takes under three minutes and will help us build our product roadmap for the next year. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB Release v2.24.0"},{"location":"blog/peeringdb_release_v2.24.0/#peeringdb-release-v2240","text":"PeeringDB is pleased to announce the release of v2.24.0. Summary release notes are published on the release notes page . This release focuses on improving data quality in the database by improving the way networks can identify themselves and making the user interface clearer where people misunderstood what was meant. Specialist networks can now identify themselves better. Governments, Route Collectors and organizations providing specialized Network Services, such as DNS, RDAP, or DDoS Protection can say so in their network type. We have cleaned up the data to reflect this for existing networks. Some users misunderstood the maximum prefix limit to mean the maximum prefix length. The tooltip now makes it clear that this refers to the maximum number of prefixes and not the prefix length. While our anonymous 2020 User Satisfaction Survey is still open, we can already see that we\u2019ll need to make more improvements along these lines. If you have not yet completed the survey, please do. It takes under three minutes and will help us build our product roadmap for the next year. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB Release v2.24.0"},{"location":"blog/search_gets_better/","text":"Search Gets Better Users tell us that search and the quality of the data in PeeringDB are their two top priorities. We've previously written about using automation to improve data quality. We're now beta testing some improvements to search. You can test our new search interface now on beta.peeringdb.com . You can use natural language words, like \"near\" and \"in\", when you query PeeringDB. That means you're not forced to use the radius feature in Advanced Search. Martin Levy gave a use case when he opened issue #479 . The radius search improved things. This is a further improvement. In any of the countries where we\u2019ve normalized address data, you can search using a state name or its abbreviation. \" In my retirement, I finally had the time to visit and enjoy Montana. It's a wonderful state replete with interesting wildlife and absolutely-stunning landscapes. The fact that you can now find an IXP in Montana with an easy search on PeeringDB's website makes me very happy. I don't think I need to do that search anymore; however, I'm glad others active in the industry can now do that style of search. I wish PeeringDB and the whole industry all the best! I'm happy that my April 2019 issue on GitHub (You can\u2019t find an IXP in Montana; but you should be able to!) is now banished into the history books! \" Martin Levy When you search for facilities near New York, you\u2019ll get results for relevant locations in nearby New Jersey, just across the river. Similarly, searches for facilities near Los Angeles will extend south into Orange County. None of this takes away the Advanced Search tools . They are staying. But you can now find out about the scale of opportunities in a new area nice and quickly. As our first image shows, we\u2019re testing this new interface side-by-side with the old one. We\u2019d like you to try it and tell us what you think. There\u2019s a link to a feedback form at the top of the page. Please tell us what you like, what you'd like improved, or where our new search tool doesn't work properly. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Search Gets Better"},{"location":"blog/search_gets_better/#search-gets-better","text":"Users tell us that search and the quality of the data in PeeringDB are their two top priorities. We've previously written about using automation to improve data quality. We're now beta testing some improvements to search. You can test our new search interface now on beta.peeringdb.com . You can use natural language words, like \"near\" and \"in\", when you query PeeringDB. That means you're not forced to use the radius feature in Advanced Search. Martin Levy gave a use case when he opened issue #479 . The radius search improved things. This is a further improvement. In any of the countries where we\u2019ve normalized address data, you can search using a state name or its abbreviation. \" In my retirement, I finally had the time to visit and enjoy Montana. It's a wonderful state replete with interesting wildlife and absolutely-stunning landscapes. The fact that you can now find an IXP in Montana with an easy search on PeeringDB's website makes me very happy. I don't think I need to do that search anymore; however, I'm glad others active in the industry can now do that style of search. I wish PeeringDB and the whole industry all the best! I'm happy that my April 2019 issue on GitHub (You can\u2019t find an IXP in Montana; but you should be able to!) is now banished into the history books! \" Martin Levy When you search for facilities near New York, you\u2019ll get results for relevant locations in nearby New Jersey, just across the river. Similarly, searches for facilities near Los Angeles will extend south into Orange County. None of this takes away the Advanced Search tools . They are staying. But you can now find out about the scale of opportunities in a new area nice and quickly. As our first image shows, we\u2019re testing this new interface side-by-side with the old one. We\u2019d like you to try it and tell us what you think. There\u2019s a link to a feedback form at the top of the page. Please tell us what you like, what you'd like improved, or where our new search tool doesn't work properly. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Search Gets Better"},{"location":"blog/structured_data_and_more/","text":"Structured Data and More With PeeringDB This article describes our latest improvements and puts them in the context of recent feature developments. PeeringDB users have told us that their top priorities are data quality and search. These priorities have guided recent improvements. We want to make it easier to keep PeeringDB current. We want users to be able to analyze data. And we want to make the data available to users in the way that works best for them. Our API has enabled you to automate updates and get data in structured formats. And peeringdb-py , our local cache, lets you keep a local copy of our data. That makes it easy to keep queries local and integrate PeeringDB with other data sources. But we've been working to add key features for web users. Your internal source of truth can suggest updates to PeeringDB . Once you set that up, you can review and approve or deny suggestions. You can get PeeringDB data about facilities as a .KMZ file as well as CSV or JSON. So you can import it into Google Earth and other GIS tools. Simple search understands a wide range of geographic terms. For instance, you can just search for an ix in berlin or a fac in ke . Yes, PeeringDB understands ISO 3166-2 country codes. And now you can export data from any page. Of course, you could always copy and paste. But copying and pasting the list of peers at IX.br (PTT.br) S\u00e3o Paulo is a big job. Grabbing its data as a CSV or JSON removes copy/paste errors. You can import it straight into a business analytics engine.x Of course, it\u2019s not all feature changes. We know that we need to update the web design, too. We have a preview of the design available for you to look at and comment on: https://preview.beta.peeringdb.com Take a look and tell us what you like and what needs to be updated before we deploy this into production. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Structured Data and More With PeeringDB"},{"location":"blog/structured_data_and_more/#structured-data-and-more-with-peeringdb","text":"This article describes our latest improvements and puts them in the context of recent feature developments. PeeringDB users have told us that their top priorities are data quality and search. These priorities have guided recent improvements. We want to make it easier to keep PeeringDB current. We want users to be able to analyze data. And we want to make the data available to users in the way that works best for them. Our API has enabled you to automate updates and get data in structured formats. And peeringdb-py , our local cache, lets you keep a local copy of our data. That makes it easy to keep queries local and integrate PeeringDB with other data sources. But we've been working to add key features for web users. Your internal source of truth can suggest updates to PeeringDB . Once you set that up, you can review and approve or deny suggestions. You can get PeeringDB data about facilities as a .KMZ file as well as CSV or JSON. So you can import it into Google Earth and other GIS tools. Simple search understands a wide range of geographic terms. For instance, you can just search for an ix in berlin or a fac in ke . Yes, PeeringDB understands ISO 3166-2 country codes. And now you can export data from any page. Of course, you could always copy and paste. But copying and pasting the list of peers at IX.br (PTT.br) S\u00e3o Paulo is a big job. Grabbing its data as a CSV or JSON removes copy/paste errors. You can import it straight into a business analytics engine.x Of course, it\u2019s not all feature changes. We know that we need to update the web design, too. We have a preview of the design available for you to look at and comment on: https://preview.beta.peeringdb.com Take a look and tell us what you like and what needs to be updated before we deploy this into production. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Structured Data and More With PeeringDB"},{"location":"blog/u2f_and_url/","text":"Improve Your Account Security - And Check Our URL We completed our support for FIDO U2F hardware tokens this month and have made www.peeringdb.com the canonical URL for our service. We\u2019d like you to take advantage of two-factor security for your PeeringDB account. We also want to ensure you adjust any automation aimed at https://peeringdb.com so that it connects to https://www.peeringdb.com instead. This will ensure continuity of service for API users. Your listing in PeeringDB is how you present your network, IXP, or facility to the world. If a miscreant gains access to your account they can misrepresent you. Reclaiming control of the objects you look after and undoing any changes the miscreant has made could be a lot of work. You can protect yourself against this risk by enabling two-factor authentication on your account. We have supported industry standard Time-based One-Time Passwords, as defined in RFC 6238 for a while now. This is the protocol used by popular smartphone authenticator apps. We added support for FIDO U2F hardware tokens in Q1 2022. You enable 2FA in the Account Security section of your account settings. Click on the green button to Manage Two-Factor Authentication and you\u2019ll be guided through the process. Just be aware that you\u2019ll need a secure place to store your backup codes, so you can gain access to your account if you ever lose access to your authenticator app or U2F hardware token. What are you waiting for? Improve the protection for your organization\u2019s listing in PeeringDB today by enabling 2FA. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Improve Your Account Security - And Check Our URL"},{"location":"blog/u2f_and_url/#improve-your-account-security-and-check-our-url","text":"We completed our support for FIDO U2F hardware tokens this month and have made www.peeringdb.com the canonical URL for our service. We\u2019d like you to take advantage of two-factor security for your PeeringDB account. We also want to ensure you adjust any automation aimed at https://peeringdb.com so that it connects to https://www.peeringdb.com instead. This will ensure continuity of service for API users. Your listing in PeeringDB is how you present your network, IXP, or facility to the world. If a miscreant gains access to your account they can misrepresent you. Reclaiming control of the objects you look after and undoing any changes the miscreant has made could be a lot of work. You can protect yourself against this risk by enabling two-factor authentication on your account. We have supported industry standard Time-based One-Time Passwords, as defined in RFC 6238 for a while now. This is the protocol used by popular smartphone authenticator apps. We added support for FIDO U2F hardware tokens in Q1 2022. You enable 2FA in the Account Security section of your account settings. Click on the green button to Manage Two-Factor Authentication and you\u2019ll be guided through the process. Just be aware that you\u2019ll need a secure place to store your backup codes, so you can gain access to your account if you ever lose access to your authenticator app or U2F hardware token. What are you waiting for? Improve the protection for your organization\u2019s listing in PeeringDB today by enabling 2FA. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Improve Your Account Security - And Check Our URL"},{"location":"blog/updates_from_an_internal_source_of_truth/","text":"Your Internal Source of Truth Can Now Push Updates to PeeringDB We have an API . You can use our API to update PeeringDB as well as make queries. But most people don't want to hand craft API updates. Very few organizations have the scale that demands automating updates. Until now, that left a gap. If your network connects at many facilities and IXPs, there might be a gap between a change happening and appearing in PeeringDB. Our users value the quality of configuration data in PeeringDB, so we wanted to fill that gap. We used the NANOG 87 Hackathon as an opportunity to test a proof of concept. It went well, so we've put it into production. Your internal source of truth can now suggest updates to PeeringDB. You then log in to our web interface and approve or reject those changes. FullCtl, who participated in the Hackathon challenge , has already implemented support for this new feature. This new feature means you can have automation monitor the gap between your internal source of truth and PeeringDB. And you don't need to give that tool credentials to push updates to PeeringDB. Benefits include: Simplified user interface for changes Human oversight Third party tools do not need to be given credentials with write permission \" It's great when you see a project that's become as important and successful as PeeringDB continue to innovate and improve. We're super stoked to be the first of what I'm sure will be many apps to support this new feature - which is sure to increase the already amazing amount of high quality interconnection data available in PeeringDB, supporting global interconnection. \" Chris Grundemann, Co-Founder & CEO, FullCtl We\u2019d love to see more updates coming in from more sources of truth! If you have suggestions, contact the Product Committee , share them on our low traffic mailing lists , or have a chat when you meet us at an event. Or create an issue describing your need on GitHub. If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Your Internal Source of Truth Can Now Push Updates to PeeringDB"},{"location":"blog/updates_from_an_internal_source_of_truth/#your-internal-source-of-truth-can-now-push-updates-to-peeringdb","text":"We have an API . You can use our API to update PeeringDB as well as make queries. But most people don't want to hand craft API updates. Very few organizations have the scale that demands automating updates. Until now, that left a gap. If your network connects at many facilities and IXPs, there might be a gap between a change happening and appearing in PeeringDB. Our users value the quality of configuration data in PeeringDB, so we wanted to fill that gap. We used the NANOG 87 Hackathon as an opportunity to test a proof of concept. It went well, so we've put it into production. Your internal source of truth can now suggest updates to PeeringDB. You then log in to our web interface and approve or reject those changes. FullCtl, who participated in the Hackathon challenge , has already implemented support for this new feature. This new feature means you can have automation monitor the gap between your internal source of truth and PeeringDB. And you don't need to give that tool credentials to push updates to PeeringDB. Benefits include: Simplified user interface for changes Human oversight Third party tools do not need to be given credentials with write permission \" It's great when you see a project that's become as important and successful as PeeringDB continue to innovate and improve. We're super stoked to be the first of what I'm sure will be many apps to support this new feature - which is sure to increase the already amazing amount of high quality interconnection data available in PeeringDB, supporting global interconnection. \" Chris Grundemann, Co-Founder & CEO, FullCtl We\u2019d love to see more updates coming in from more sources of truth! If you have suggestions, contact the Product Committee , share them on our low traffic mailing lists , or have a chat when you meet us at an event. Or create an issue describing your need on GitHub. If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Your Internal Source of Truth Can Now Push Updates to PeeringDB"},{"location":"blog/updating_our_webUI/","text":"We're Updating our Web UI PeeringDB users have told us that they both love the simplicity of our web UI but want it improved. We have started on a project to update it. We must update it to fully integrate the new carrier and campus objects. Carrier objects describe providers of high capacity L1 and L2 links into facilities. A campus is a group of interconnected facilities under common ownership. Our priorities are: Improve tabular data available for Campus and Carrier pages Mobile UI optimization Personalization features for logged in users Visualization of metro areas in a dynamic map Wizard framework for supporting creation and editing of objects Lazy loading of object data We'll start with ways to make it easier for users to get the data they want and need. Then we'll look at making it easier for users to update their own data in PeeringDB. We'll share some of the design options to check they meet users\u2019 needs. Watch out for future announcements, so you can give us feedback. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"We're Updating our Web UI"},{"location":"blog/updating_our_webUI/#were-updating-our-web-ui","text":"PeeringDB users have told us that they both love the simplicity of our web UI but want it improved. We have started on a project to update it. We must update it to fully integrate the new carrier and campus objects. Carrier objects describe providers of high capacity L1 and L2 links into facilities. A campus is a group of interconnected facilities under common ownership. Our priorities are: Improve tabular data available for Campus and Carrier pages Mobile UI optimization Personalization features for logged in users Visualization of metro areas in a dynamic map Wizard framework for supporting creation and editing of objects Lazy loading of object data We'll start with ways to make it easier for users to get the data they want and need. Then we'll look at making it easier for users to update their own data in PeeringDB. We'll share some of the design options to check they meet users\u2019 needs. Watch out for future announcements, so you can give us feedback. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"We're Updating our Web UI"},{"location":"blog/user_developed_tools/","text":"Getting the Most from PeeringDB with User Developed Tools We develop PeeringDB based on user demand. Users tell us what they want through a survey and by opening issues describing the problems they face on GitHub. But sometimes, users\u2019 needs go beyond what we can do and that\u2019s when user developed tools come in. We have recently refreshed and updated our listing of user developed and maintained tools . It now has its own page and features eight tools that help you: Sync PeeringDB data to a local repository Find common peering points Find and manage peers, and Use PeeringDB from the search bar on your browser \u201c I'm glad to see Peering Manager listed on PeeringDB's new tools page. PeeringDB's API and data are a huge asset to Peering Manager, helping users to autofill and keep up-to-date a lot of details. Accessing the API is both simple and reliable, keeping development simple. \u201d Guillaume Mazoyer, developer of Peering Manager If you develop a tool that uses PeeringDB and would like to share it with others, please let us know and we\u2019ll link to it from our tools page, so other people can thank you for sharing. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Getting the Most from PeeringDB with User Developed Tools"},{"location":"blog/user_developed_tools/#getting-the-most-from-peeringdb-with-user-developed-tools","text":"We develop PeeringDB based on user demand. Users tell us what they want through a survey and by opening issues describing the problems they face on GitHub. But sometimes, users\u2019 needs go beyond what we can do and that\u2019s when user developed tools come in. We have recently refreshed and updated our listing of user developed and maintained tools . It now has its own page and features eight tools that help you: Sync PeeringDB data to a local repository Find common peering points Find and manage peers, and Use PeeringDB from the search bar on your browser \u201c I'm glad to see Peering Manager listed on PeeringDB's new tools page. PeeringDB's API and data are a huge asset to Peering Manager, helping users to autofill and keep up-to-date a lot of details. Accessing the API is both simple and reliable, keeping development simple. \u201d Guillaume Mazoyer, developer of Peering Manager If you develop a tool that uses PeeringDB and would like to share it with others, please let us know and we\u2019ll link to it from our tools page, so other people can thank you for sharing. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Getting the Most from PeeringDB with User Developed Tools"},{"location":"blog/user_suggestions_improve_PeeringDB_usability/","text":"User Suggestions Improve PeeringDB Usability Some people are heavy PeeringDB users. They research and compare options, with many PeeringDB tabs open at once. But finding the PeeringDB tab you want meant looking at each one. But no more. Marco d'Itri wrote to the Product Committee and suggested an improvement: I believe that it would be great to have the HTML <title> tag of the pages show more that just \"PeeringDB\", e.g. \"PeeringDB: AS65454\". This simple change would allow to find previously visited pages in the browser history and search box. We deployed this feature in our March release . Each page now has its key feature set as a search term. That's the AS Number for networks, or the name elsewhere. We set the whole search string as the page title for advanced searches. We hope this improves your PeeringDB web experience. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"User Suggestions Improve PeeringDB Usability"},{"location":"blog/user_suggestions_improve_PeeringDB_usability/#user-suggestions-improve-peeringdb-usability","text":"Some people are heavy PeeringDB users. They research and compare options, with many PeeringDB tabs open at once. But finding the PeeringDB tab you want meant looking at each one. But no more. Marco d'Itri wrote to the Product Committee and suggested an improvement: I believe that it would be great to have the HTML <title> tag of the pages show more that just \"PeeringDB\", e.g. \"PeeringDB: AS65454\". This simple change would allow to find previously visited pages in the browser history and search box. We deployed this feature in our March release . Each page now has its key feature set as a search term. That's the AS Number for networks, or the name elsewhere. We set the whole search string as the page title for advanced searches. We hope this improves your PeeringDB web experience. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"User Suggestions Improve PeeringDB Usability"},{"location":"blog/what_happened_to_our_web_ui/","text":"What happened to our web UI? We released 2.54.0 to production on 24 January 2024. PeeringDB users quickly made us aware of issues with the release. The problems centered on the impact of web UI changes on search: Users needed to click on the magnifying glass icon to open the search bar Some in page searches resulted in a CSRF error Other search attempts did not work We focused on four issues describing problems and developed fixes that addressed them in development and then beta environments. Ultimately, we decided that it was better to rollback the UI changes, so that\u2019s what we did. 2.54.2 is now in production. It has all the features from 2.54.0 except the web UI changes. Why did it happen? Our own internal testing missed the impact of these changes. We thought they were relatively small and planned to make an incremental improvement before introducing our updated design on preview.peeringdb.com . That was a mistake. Also, we\u2019ve had a remarkably good run of stable releases. We think this has contributed to a drop in testing on beta.peeringdb.com . Only about 0.25 percent of users visited beta.peeringdb.com in January 2024. How will we improve? We will be changing our process for introducing big changes. The first part is to improve our internal testing process. But we are also considering changes to the beta testing process. Instead of relying on users to speak up if they find a problem on beta.peeringdb.com we could do the reverse. We would only release major changes to production after we have had positive comments from users who have tested on beta.peeringdb.com . In some cases, we might need to delay a release \u2013 or part of it \u2013 until we had that positive input from users. What do you think? Would you prefer us to require more active involvement from users in beta testing? Let us know on our user-discuss mailing list , through our social media channels, or speak with our volunteers to share your thoughts. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"What happened to our web UI?"},{"location":"blog/what_happened_to_our_web_ui/#what-happened-to-our-web-ui","text":"We released 2.54.0 to production on 24 January 2024. PeeringDB users quickly made us aware of issues with the release. The problems centered on the impact of web UI changes on search: Users needed to click on the magnifying glass icon to open the search bar Some in page searches resulted in a CSRF error Other search attempts did not work We focused on four issues describing problems and developed fixes that addressed them in development and then beta environments. Ultimately, we decided that it was better to rollback the UI changes, so that\u2019s what we did. 2.54.2 is now in production. It has all the features from 2.54.0 except the web UI changes.","title":"What happened to our web UI?"},{"location":"blog/what_happened_to_our_web_ui/#why-did-it-happen","text":"Our own internal testing missed the impact of these changes. We thought they were relatively small and planned to make an incremental improvement before introducing our updated design on preview.peeringdb.com . That was a mistake. Also, we\u2019ve had a remarkably good run of stable releases. We think this has contributed to a drop in testing on beta.peeringdb.com . Only about 0.25 percent of users visited beta.peeringdb.com in January 2024.","title":"Why did it happen?"},{"location":"blog/what_happened_to_our_web_ui/#how-will-we-improve","text":"We will be changing our process for introducing big changes. The first part is to improve our internal testing process. But we are also considering changes to the beta testing process. Instead of relying on users to speak up if they find a problem on beta.peeringdb.com we could do the reverse. We would only release major changes to production after we have had positive comments from users who have tested on beta.peeringdb.com . In some cases, we might need to delay a release \u2013 or part of it \u2013 until we had that positive input from users. What do you think? Would you prefer us to require more active involvement from users in beta testing? Let us know on our user-discuss mailing list , through our social media channels, or speak with our volunteers to share your thoughts. If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"How will we improve?"},{"location":"blog/whois_to_close/","text":"PeeringDB Whois Service to Close We will close down the whois.peeringdb.com service at the end of January 2024. The PeeringDB whois service is a relic of PeeringDB v1, where there was no API to query the database. PeeringDB v2 can be queried and updated through our API as well as the web. The whois service is just another way to get data from our API that is less supported and infrequently used. Keeping the service incurs a maintenance cost. We believe that closing the service is the best use of PeeringDB resources. User comments are welcome on the user-discuss list , or direct to the Product Committee . If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB Whois Service to Close"},{"location":"blog/whois_to_close/#peeringdb-whois-service-to-close","text":"We will close down the whois.peeringdb.com service at the end of January 2024. The PeeringDB whois service is a relic of PeeringDB v1, where there was no API to query the database. PeeringDB v2 can be queried and updated through our API as well as the web. The whois service is just another way to get data from our API that is less supported and infrequently used. Keeping the service incurs a maintenance cost. We believe that closing the service is the best use of PeeringDB resources. User comments are welcome on the user-discuss list , or direct to the Product Committee . If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"PeeringDB Whois Service to Close"},{"location":"blog/your_logo_goes_here/","text":"Your Logo Goes Here! We\u2019ve just deployed 2.31.0-beta and it\u2019s an opportunity to test out how your logo will look alongside your organization\u2019s name. Make sure you have your logo ready. Logos can have a height of up to 75 pixels and a width of up to 150. They must be uploaded in JPG, JPEG, or PNG. Log in to beta.peeringdb.com , upload your logo and check that it shows up well. This release didn\u2019t just add one feature. We have also made improvements for search, ix\u2019s, and facilities. Facilities can now specify a continental region, so searchers don\u2019t need to specify countries one at a time on the advanced search page. We added dynamic summaries and facilities. ASNs are now displayed at the top of search results for numeric queries. Sales contacts can now be added to IX objects If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Your Logo Goes Here!"},{"location":"blog/your_logo_goes_here/#your-logo-goes-here","text":"We\u2019ve just deployed 2.31.0-beta and it\u2019s an opportunity to test out how your logo will look alongside your organization\u2019s name. Make sure you have your logo ready. Logos can have a height of up to 75 pixels and a width of up to 150. They must be uploaded in JPG, JPEG, or PNG. Log in to beta.peeringdb.com , upload your logo and check that it shows up well. This release didn\u2019t just add one feature. We have also made improvements for search, ix\u2019s, and facilities. Facilities can now specify a continental region, so searchers don\u2019t need to specify countries one at a time on the advanced search page. We added dynamic summaries and facilities. ASNs are now displayed at the top of search results for numeric queries. Sales contacts can now be added to IX objects If you have an idea to improve PeeringDB you can share it on our low traffic mailing lists or create an issue directly on GitHub . If you find a data quality issue, please let us know at support@peeringdb.com . PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions.","title":"Your Logo Goes Here!"},{"location":"committee/common/","text":"PeeringDB Common Committee Charter Provisions: Dispute resolution If the committee handles an issue in a manner in which a user believes that their view has not been adequately considered, their first action should be to raise the concern with the Committee Chair for further consideration. If the dispute is between the user and the Committee Chair then the issue may alternatively be raised with the Committee Vice Chair. If the dispute cannot be resolved the matter may be brought forward to the PeeringDB Board. The decision by the PeeringDB Board shall be final. Committee Chair and Vice Chair The committee elects their Chair and Vice Chair from among their members, subject to PeeringDB Board approval. The Chair and Vice Chair work as a team and distribute the workload between themselves as they deem appropriate. Decisions should be unanimous, however the final decision on any matter is with the Chair. In case the Chair becomes unavailable, the Vice Chair may assume the position of Acting Chair. If the Chair or Vice Chair become permanently unavailable, replacement(s) are elected from the remaining committee members, subject to PeeringDB Board approval.","title":"Common"},{"location":"committee/common/#dispute-resolution","text":"If the committee handles an issue in a manner in which a user believes that their view has not been adequately considered, their first action should be to raise the concern with the Committee Chair for further consideration. If the dispute is between the user and the Committee Chair then the issue may alternatively be raised with the Committee Vice Chair. If the dispute cannot be resolved the matter may be brought forward to the PeeringDB Board. The decision by the PeeringDB Board shall be final.","title":"Dispute resolution"},{"location":"committee/common/#committee-chair-and-vice-chair","text":"The committee elects their Chair and Vice Chair from among their members, subject to PeeringDB Board approval. The Chair and Vice Chair work as a team and distribute the workload between themselves as they deem appropriate. Decisions should be unanimous, however the final decision on any matter is with the Chair. In case the Chair becomes unavailable, the Vice Chair may assume the position of Acting Chair. If the Chair or Vice Chair become permanently unavailable, replacement(s) are elected from the remaining committee members, subject to PeeringDB Board approval.","title":"Committee Chair and Vice Chair"},{"location":"committee/admin/","text":"PeeringDB Admin Committee Purpose is to oversee the administrator mission and volunteers. Interested in volunteering? Contact admincom@lists.peeringdb.com . Documentation Admin Committee Guidelines and Criteria for Approving Networks, IXPs, and Facilities PeeringDB Admin Committee Charter Approved by Board July 9th, 2020 Scope The PeeringDB Admin Committee (AC) is responsible for the day to day end-user support of PeeringDB. The Admin Committee functions as the first point of contact for any inquiries to PeeringDB. The Admin Committee produces definitions for enhancements to the workflow and Admin GUI and works with the Product Committee to plan a coherent roadmap for the PeeringDB software. Out of scope Work covered in the charter of the Operations, Outreach, Product, and further to be established Committees Deliverables Take care of support tickets, the Admin Committee strives to answer tickets within 24 hours Gather input from end-users regarding the improvement of PeeringDB in terms of bugs and product features and channel them towards the Product Committee via GitHub Improve PeeringDB Admin GUI to help expedient resolution of support tickets Collaboration The Admin Committee works with other PeeringDB committees to ensure an equitable division of development resources in recognition of the volunteer efforts that are ensuring the daily operations. Participation The PeeringDB Admin Committee members serve a one-year renewable term. Volunteers can submit their candidacy to the Admin Committee Chair. The Chair and Vice Chair will choose a new Admin Committee member at any time they see the necessity to ensure the continuity of the Admin Committee. There is a trial period of one month. New members are onboarded by a more experienced committee member (WebEx / Google Hangouts / 3 example tickets). After the trial period appointment is confirmed by the Chair and Vice Chair for one year. Expectations Individual committee members should do their fair share of tickets measured over a month If a committee member is away for an extended period of time, inform the Chair, Vice Chair, and a notification sent to the Admin Committee mailing list One month probation where they get taught/mentored by an experienced admin, and where if they do not do the work, they get booted Chairs perform a quarterly review. If you don't meet a fair portion of the work you'll be nudged. Also, three months of inactivity is an automatic ejection Communication Questions and suggestions for the Admin Committee can be sent to the Admincom Mailing List On- and de-boarding is handled via the Admincom GitHub All other issues, also for Admin GUI bugs and features must go to the regular GitHub Any support questions should be directed to the Support Address Admin Committee uses slack and emails for internal communication Regular (4-6 week interval) conference calls are used to stay synced and discuss issues Decision policy Admin Committee members will decide on their own when handling support tickets according to the Admin Committee BCP laid out in the Admin Committee How-To Folder. Otherwise, they will decide by simple majority vote on contested issues called by the Admin Committee Chair. If there is a tie the Chair's vote is counted double. Workflow Admincom uses DeskPRO and GitHub as well as direct communication with the main service contractor 20C to achieve its deliverables. In communicating with 3rd parties the Admin Committee should be kept in the loop if the issue is of general interest. PeeringDB Common Committee Charter Provisions: Dispute resolution If the committee handles an issue in a manner in which a user believes that their view has not been adequately considered, their first action should be to raise the concern with the Committee Chair for further consideration. If the dispute is between the user and the Committee Chair then the issue may alternatively be raised with the Committee Vice Chair. If the dispute cannot be resolved the matter may be brought forward to the PeeringDB Board. The decision by the PeeringDB Board shall be final. Committee Chair and Vice Chair The committee elects their Chair and Vice Chair from among their members, subject to PeeringDB Board approval. The Chair and Vice Chair work as a team and distribute the workload between themselves as they deem appropriate. Decisions should be unanimous, however the final decision on any matter is with the Chair. In case the Chair becomes unavailable, the Vice Chair may assume the position of Acting Chair. If the Chair or Vice Chair become permanently unavailable, replacement(s) are elected from the remaining committee members, subject to PeeringDB Board approval. Meeting notes June 23rd, 2020: Meeting Notes May 12th, 2020: Meeting Notes November 21st, 2019: Meeting Notes July 18th, 2019: Meeting Notes May 2nd, 2019: Meeting Notes Members Ankesh Anand Austin Brower John Brown Budiwijaya Shaun Coffey Ron Grant Chriztoffer Hansen - Chair Peter Helmenstine - Vice Chair Ga\u00ebl Hernandez Adam Korab Christopher Malayter - Board Liaison Aquinas Masakha Cris\u00f3stomo Mbundu Julimar Lunguinho Mendes Laura Yepes","title":"Admin Committee"},{"location":"committee/admin/#peeringdb-admin-committee","text":"Purpose is to oversee the administrator mission and volunteers. Interested in volunteering? Contact admincom@lists.peeringdb.com .","title":"PeeringDB Admin Committee"},{"location":"committee/admin/#documentation","text":"Admin Committee Guidelines and Criteria for Approving Networks, IXPs, and Facilities","title":"Documentation"},{"location":"committee/admin/#peeringdb-admin-committee-charter","text":"Approved by Board July 9th, 2020","title":"PeeringDB Admin Committee Charter"},{"location":"committee/admin/#scope","text":"The PeeringDB Admin Committee (AC) is responsible for the day to day end-user support of PeeringDB. The Admin Committee functions as the first point of contact for any inquiries to PeeringDB. The Admin Committee produces definitions for enhancements to the workflow and Admin GUI and works with the Product Committee to plan a coherent roadmap for the PeeringDB software.","title":"Scope"},{"location":"committee/admin/#out-of-scope","text":"Work covered in the charter of the Operations, Outreach, Product, and further to be established Committees","title":"Out of scope"},{"location":"committee/admin/#deliverables","text":"Take care of support tickets, the Admin Committee strives to answer tickets within 24 hours Gather input from end-users regarding the improvement of PeeringDB in terms of bugs and product features and channel them towards the Product Committee via GitHub Improve PeeringDB Admin GUI to help expedient resolution of support tickets","title":"Deliverables"},{"location":"committee/admin/#collaboration","text":"The Admin Committee works with other PeeringDB committees to ensure an equitable division of development resources in recognition of the volunteer efforts that are ensuring the daily operations.","title":"Collaboration"},{"location":"committee/admin/#participation","text":"The PeeringDB Admin Committee members serve a one-year renewable term. Volunteers can submit their candidacy to the Admin Committee Chair. The Chair and Vice Chair will choose a new Admin Committee member at any time they see the necessity to ensure the continuity of the Admin Committee. There is a trial period of one month. New members are onboarded by a more experienced committee member (WebEx / Google Hangouts / 3 example tickets). After the trial period appointment is confirmed by the Chair and Vice Chair for one year.","title":"Participation"},{"location":"committee/admin/#expectations","text":"Individual committee members should do their fair share of tickets measured over a month If a committee member is away for an extended period of time, inform the Chair, Vice Chair, and a notification sent to the Admin Committee mailing list One month probation where they get taught/mentored by an experienced admin, and where if they do not do the work, they get booted Chairs perform a quarterly review. If you don't meet a fair portion of the work you'll be nudged. Also, three months of inactivity is an automatic ejection","title":"Expectations"},{"location":"committee/admin/#communication","text":"Questions and suggestions for the Admin Committee can be sent to the Admincom Mailing List On- and de-boarding is handled via the Admincom GitHub All other issues, also for Admin GUI bugs and features must go to the regular GitHub Any support questions should be directed to the Support Address Admin Committee uses slack and emails for internal communication Regular (4-6 week interval) conference calls are used to stay synced and discuss issues","title":"Communication"},{"location":"committee/admin/#decision-policy","text":"Admin Committee members will decide on their own when handling support tickets according to the Admin Committee BCP laid out in the Admin Committee How-To Folder. Otherwise, they will decide by simple majority vote on contested issues called by the Admin Committee Chair. If there is a tie the Chair's vote is counted double.","title":"Decision policy"},{"location":"committee/admin/#workflow","text":"Admincom uses DeskPRO and GitHub as well as direct communication with the main service contractor 20C to achieve its deliverables. In communicating with 3rd parties the Admin Committee should be kept in the loop if the issue is of general interest. PeeringDB Common Committee Charter Provisions:","title":"Workflow"},{"location":"committee/admin/#dispute-resolution","text":"If the committee handles an issue in a manner in which a user believes that their view has not been adequately considered, their first action should be to raise the concern with the Committee Chair for further consideration. If the dispute is between the user and the Committee Chair then the issue may alternatively be raised with the Committee Vice Chair. If the dispute cannot be resolved the matter may be brought forward to the PeeringDB Board. The decision by the PeeringDB Board shall be final.","title":"Dispute resolution"},{"location":"committee/admin/#committee-chair-and-vice-chair","text":"The committee elects their Chair and Vice Chair from among their members, subject to PeeringDB Board approval. The Chair and Vice Chair work as a team and distribute the workload between themselves as they deem appropriate. Decisions should be unanimous, however the final decision on any matter is with the Chair. In case the Chair becomes unavailable, the Vice Chair may assume the position of Acting Chair. If the Chair or Vice Chair become permanently unavailable, replacement(s) are elected from the remaining committee members, subject to PeeringDB Board approval.","title":"Committee Chair and Vice Chair"},{"location":"committee/admin/#meeting-notes","text":"June 23rd, 2020: Meeting Notes May 12th, 2020: Meeting Notes November 21st, 2019: Meeting Notes July 18th, 2019: Meeting Notes May 2nd, 2019: Meeting Notes","title":"Meeting notes"},{"location":"committee/admin/#members","text":"Ankesh Anand Austin Brower John Brown Budiwijaya Shaun Coffey Ron Grant Chriztoffer Hansen - Chair Peter Helmenstine - Vice Chair Ga\u00ebl Hernandez Adam Korab Christopher Malayter - Board Liaison Aquinas Masakha Cris\u00f3stomo Mbundu Julimar Lunguinho Mendes Laura Yepes","title":"Members"},{"location":"committee/admin/approval-guidelines/","text":"Admin Committee Guidelines and Criteria for Approving Networks, IXPs, and Facilities Authors Chris Malayter Arnold Nipper Job Snijders Document history v1. Initial document. v2. Added multiple mechanisms to validate IXP and Network. v3. Added mechanism to validate facility. v4. Added draft flowcharts and placed explanatory text in an appendix. Minor readability revisions. Guideline goals This guide does not seek to define what an Internet Exchange, or Network operator, or Facility is. PeeringDB is a registry of information. What people do with the information is up to them. In these guidelines, we attempt to merely document PeeringDB\u2019s approval process. Key goals include: The Admin Committee can use multiple to validate and facilitate the creation of objects. Workflows are shown and always include the option to fall back to an exception process. This process brings more eyes and helps PeeringDB identify areas for improvement. Provide a few tangible examples of how to apply the guidelines. Definitions User - a person submitting a new object to the PeeringDB database RIR - A Regional Internet Registry (AFRINIC, APNIC, ARIN, LACNIC or the RIPE NCC) NIR - A National Internet Registry recognized by one of the RIRs Additional terminology is described in Section 4 of the PeeringDB Data Ownership Policy Document . Approving Network ( net ) objects The key to approving Network objects is to confirm the User has a relationship to the specified Autonomous System Number (ASN) and is authorized to represent that ASN in some form. PeeringDB follows industry best practices and has the following requirements for the Autonomous System numbers, regardless of who the User is: ASNs must be registered through an RIR or NIR The ASN must not already be registered in PeeringDB This means that \u201cPrivate\u201d ASNs, as listed in the IANA Autonomous System (AS) Numbers Registry or \u201cBogon\u201d ASNs, those which have not yet been assigned by an RIR or NIR, cannot be registered in PeeringDB. Flowchart There are various mechanisms to verify the relationship between the User and a given Autonomous System number: The registration details listed in WHOIS match the registration details in the sign-up request (same email domain) The registration details listed in RDAP match the registration details in the sign-up request (same email domain) The user can confirm the relationship to the ASN through a RPKI based challenge/response (work in progress: draft-ietf-sidrops-rpki-rsc) The user can confirm the relationship to the ASN by entering a PeeringDB suggested random string in their WHOIS record in a comments/remarks field (not yet implemented, a similar strategy to how Amazon AWS does BYOIP) Exception approval follows the standard process PeeringDB encourages but does not require its users to follow industry best practices. This means we recommend: Making a BGP looking glass publicly available, or A website listing the Network services, and a publicly documented Routing Policy Approving IXP ( ix ) objects The key to approving IXP objects is to confirm the User has a relationship to the specified Peering LAN Prefix, and is authorized to represent this IP block in some form. Flowchart Globally unique IP prefix requirements IP prefix must be registered through an RIR or NIR. The prefix must not overlap with any existing IXP object in PeeringDB IPv4 prefixes must not be longer than a /27 or shorter than /19 IPv6 prefixes must not be shorter than /64 but may be longer i.e. a /120 is allowed but a /63 is not Users can verify their relationship to an IP prefix in several ways: The registration details listed in WHOIS match the registration details in the sign-up request (same email domain). The registration details listed in RDAP match the registration details in the sign-up request (same email domain). The user can confirm the relationship to the IP prefix through a RPKI based challenge/response (work in progress - draft-ietf-sidrops-rpki-rsc). The user can confirm the relationship to the IP prefix by entering a PeeringDB suggested random string in their inetnum record in the authoritative RIR or NIR database in a comments/remarks field (note: IRR route/route6 objects cannot be used for this purpose). RDAP should be used to discover which RIR or NIR is authoritative For Legacy IPv4 space, a PeeringDB suggested random string can be placed in a TXT record for the reverse DNS label representing the first IPv4 address in the prefix. (This is a variant of the Amazon AWS BYOIP process). The assumption is that if someone controls Reverse DNS for a given prefix, they have full control over the prefix. Exception approval follows the standard process PeeringDB encourages but does not require its users to follow industry best practices. This means we recommend: A website detailing the IXP service A public overview of connected members and locations, service level, and terms of membership. Approving Facility ( fac ) objects A \u201cfacility\u201d is a physical location where two or more IP Networks or IXPs interconnect with each other. The key to approving Facility objects is to confirm with multiple existing PeeringDB users that a facility exists. Note: We will need to extend PeeringDB's software to support the workflow described here. Note: The IP addresses used in the attestation process will be logged. Validation mechanisms The owner of the facility is an existing PeeringDB user, and adds the facility to their record themselves. In this approval flow the facility is \u2018claimed\u2019. For this workflow the facility owner should already have one facility previously validated via one of the following mechanisms: The owner of the facility is not a PeeringDB user, but interested parties (who are PeeringDB users) wish the Facility object to be registered. The result is an unclaimed Facility object. The building has a website that has an interconnection or colocation section or One user will suggest the facility (peeringdb.com/suggest/fac), after filling in the details the form will generate a unique URL where the attestations can be collected. The user then distributes the URL (which can only be accessed by logged-in users) to the other interested parties, who can then attest or disprove the facility. When 3 PeeringDB users positively attest the facility exists, the facility is approved. The owner of the facility is a new peeringdb user and does not have any objects associated with their account. There are two mechanisms to claim a Facility object. The building has a website that has an interconnection or colocation section or An attestation process similar to how new facilities are suggested by existing users is followed, where the attempting-to-claim PeeringDB user must collect 3 positive attestations from three existing PeeringDB users. Exception approval follows the standard process Flowchart - Facility Flowchart - Attestation Flagging as \"junk\" PeeringDB users can flag a facility as \u201cjunk\u201d. This puts the Facility object in a review queue. The Admin Committee can resolve in the following ways: The facility owner becomes a PeeringDB user and claims the facility. The 3 people who attested that the facility exists can point at two existing PeeringDB IXP or Network object owners who are willing to attest they are present in the facility. The Admin Committee contacts the IXP or Network object owners and asks them to confirm their presence in the facility. At this point the facility record will list at least two network and/or IXP objects. A facility without networks or IXPs is considered potential \u201cjunk\u201d. Empty facilities will be deleted after 90 days. This happens when neither the owner of the facility, nor any other PeeringDB users were willing to indicate a relationship to the facility. The \u201cjunk\u201d button only appears in the UI for objects which are both unclaimed, and where no networks or IXPs indicate a presence. Checklist to help find entities present at the facility and or understand who the facility owner is Website operated by the facility owner: recommended and SHOULD list colocation or interconnection as a service Government or Industry Association website listing facilities. (Example: CLLI locators in the United States) Website of IXPs or Networks publishing they operate in the building Example facility object approval scenarios Facility approval example 1 Facility located at 100 W Main Street, Nowhere, WV, USA. Facility has four ISPs that interconnect in the basement of the building. Three out of the four ISPs have staff with PeeringDB accounts. Building owner has provided a closet for this to occur. Building has no website, the building owner does not know anything about interconnection, and has no plans to market the building as an interconnection location. Start ISP operator A files a request to suggest a Facility object to be entered into PeeringDB. Validation Process The facility owner is not a PeeringDB user, so the mechanism of the facility owner themselves suggesting the facility cannot be applied. The act of suggesting the facility in the PeeringDB user interface generates a unique URL which ISP Operator A can share with the fellow ISPs. If at least 2 other PeeringDB users attest the facility exists, the Facility object is created and marked as \u201cunclaimed\u201d. Facility approval example 2 A PeeringDB user noticed the Facility object created (as a result of Example 1), and reports it as \u201cjunk\u201d. The object continues to exist, but is added to a review queue for the PeeringDB Admin Committee to help resolve the situation. The Admin Committee\u2019s task is to find positive proof the facility exists and interconnection happens. Validation Process The AC committee first contacts the original PeeringDB users that provided attestations the facility exists. (Note: these PeeringDB users themselves might not be present in the facility). The AC can request the original attesters to provide a list of ISPs or IXPs they think are present in the facility. The AC can then contact the ISPs and/or IXPs who were suggested to have a presence in the facility and ask them to either attest the facility exists, or to add themselves as \u2018present\u2019 in the facility. It is possible these ISPs and/or IXPs are not yet PeeringDB users. If the AC can\u2019t collect the attestations the facility will be deleted in 90 days. Facility approval example 3 A Facility owner is a PeeringDB user and wishes to add its facility to PeeringDB using the \u201cSuggest a Facility\u201d function. The building owner is leasing suites to carriers in the basement of his facility, but primarily focuses on leasing office space. The building has a webpage, but data center/interconnection services are not listed on the webpage. The building owner has provided a list of four carriers who have leased space in the building. Validation Process The building owner can add webpage showing that they provide interconnection services. The attestation process can be used to demonstrate the building is used for interconnection. Facility approval example 4 An existing facility operator with other facilities listed in PeeringDB submits a new facility that does not yet have any customers. Validation Process None - The facility should be immediately added. After the Facility object has been added, networks and IXPs can indicate their presence. Exception process We know that these guidelines will need to be improved and updated as we learn, so we have built in an \u201cexception\u201d process to help with that. Whenever an easy path is not possible, the requester can ask for more review of their registration request. The first step in this process is to get input from all the volunteers on the Admin Committee. If more eyes are needed, the request can be shared with all of PeeringDB\u2019s Stewards, a group made from the committee chairs and board members. Where a formal decision is needed, the board can vote on a request and make a final decision. Flowchart Appendix Why must peering LANs be between /27 and /19 (IPv4) and not shorter than /64 (IPv6)? This limit is intended to reduce the likelihood of a typo that goes undetected and causes operational issues. Where a peering LAN uses a /28 or a /18 (IPv4) the Admin Committee can manually process the prefix after verifying its prefix length is correct. The technical standards do not allow LANs to have prefixes shorter than a /64, so a /63 would be rejected to avoid causing operational issues to operator equipment that is standards compliant.","title":"Admin Committee Guidelines and Criteria for Approving Networks, IXPs, and Facilities"},{"location":"committee/admin/approval-guidelines/#admin-committee-guidelines-and-criteria-for-approving-networks-ixps-and-facilities","text":"","title":"Admin Committee Guidelines and Criteria for Approving Networks, IXPs, and Facilities"},{"location":"committee/admin/approval-guidelines/#authors","text":"Chris Malayter Arnold Nipper Job Snijders","title":"Authors"},{"location":"committee/admin/approval-guidelines/#document-history","text":"v1. Initial document. v2. Added multiple mechanisms to validate IXP and Network. v3. Added mechanism to validate facility. v4. Added draft flowcharts and placed explanatory text in an appendix. Minor readability revisions.","title":"Document history"},{"location":"committee/admin/approval-guidelines/#guideline-goals","text":"This guide does not seek to define what an Internet Exchange, or Network operator, or Facility is. PeeringDB is a registry of information. What people do with the information is up to them. In these guidelines, we attempt to merely document PeeringDB\u2019s approval process. Key goals include: The Admin Committee can use multiple to validate and facilitate the creation of objects. Workflows are shown and always include the option to fall back to an exception process. This process brings more eyes and helps PeeringDB identify areas for improvement. Provide a few tangible examples of how to apply the guidelines.","title":"Guideline goals"},{"location":"committee/admin/approval-guidelines/#definitions","text":"User - a person submitting a new object to the PeeringDB database RIR - A Regional Internet Registry (AFRINIC, APNIC, ARIN, LACNIC or the RIPE NCC) NIR - A National Internet Registry recognized by one of the RIRs Additional terminology is described in Section 4 of the PeeringDB Data Ownership Policy Document .","title":"Definitions"},{"location":"committee/admin/approval-guidelines/#approving-network-net-objects","text":"The key to approving Network objects is to confirm the User has a relationship to the specified Autonomous System Number (ASN) and is authorized to represent that ASN in some form. PeeringDB follows industry best practices and has the following requirements for the Autonomous System numbers, regardless of who the User is: ASNs must be registered through an RIR or NIR The ASN must not already be registered in PeeringDB This means that \u201cPrivate\u201d ASNs, as listed in the IANA Autonomous System (AS) Numbers Registry or \u201cBogon\u201d ASNs, those which have not yet been assigned by an RIR or NIR, cannot be registered in PeeringDB.","title":"Approving Network (net) objects"},{"location":"committee/admin/approval-guidelines/#flowchart","text":"There are various mechanisms to verify the relationship between the User and a given Autonomous System number: The registration details listed in WHOIS match the registration details in the sign-up request (same email domain) The registration details listed in RDAP match the registration details in the sign-up request (same email domain) The user can confirm the relationship to the ASN through a RPKI based challenge/response (work in progress: draft-ietf-sidrops-rpki-rsc) The user can confirm the relationship to the ASN by entering a PeeringDB suggested random string in their WHOIS record in a comments/remarks field (not yet implemented, a similar strategy to how Amazon AWS does BYOIP) Exception approval follows the standard process PeeringDB encourages but does not require its users to follow industry best practices. This means we recommend: Making a BGP looking glass publicly available, or A website listing the Network services, and a publicly documented Routing Policy","title":"Flowchart"},{"location":"committee/admin/approval-guidelines/#approving-ixp-ix-objects","text":"The key to approving IXP objects is to confirm the User has a relationship to the specified Peering LAN Prefix, and is authorized to represent this IP block in some form.","title":"Approving IXP (ix) objects"},{"location":"committee/admin/approval-guidelines/#flowchart_1","text":"","title":"Flowchart"},{"location":"committee/admin/approval-guidelines/#globally-unique-ip-prefix-requirements","text":"IP prefix must be registered through an RIR or NIR. The prefix must not overlap with any existing IXP object in PeeringDB IPv4 prefixes must not be longer than a /27 or shorter than /19 IPv6 prefixes must not be shorter than /64 but may be longer i.e. a /120 is allowed but a /63 is not Users can verify their relationship to an IP prefix in several ways: The registration details listed in WHOIS match the registration details in the sign-up request (same email domain). The registration details listed in RDAP match the registration details in the sign-up request (same email domain). The user can confirm the relationship to the IP prefix through a RPKI based challenge/response (work in progress - draft-ietf-sidrops-rpki-rsc). The user can confirm the relationship to the IP prefix by entering a PeeringDB suggested random string in their inetnum record in the authoritative RIR or NIR database in a comments/remarks field (note: IRR route/route6 objects cannot be used for this purpose). RDAP should be used to discover which RIR or NIR is authoritative For Legacy IPv4 space, a PeeringDB suggested random string can be placed in a TXT record for the reverse DNS label representing the first IPv4 address in the prefix. (This is a variant of the Amazon AWS BYOIP process). The assumption is that if someone controls Reverse DNS for a given prefix, they have full control over the prefix. Exception approval follows the standard process PeeringDB encourages but does not require its users to follow industry best practices. This means we recommend: A website detailing the IXP service A public overview of connected members and locations, service level, and terms of membership.","title":"Globally unique IP prefix requirements"},{"location":"committee/admin/approval-guidelines/#approving-facility-fac-objects","text":"A \u201cfacility\u201d is a physical location where two or more IP Networks or IXPs interconnect with each other. The key to approving Facility objects is to confirm with multiple existing PeeringDB users that a facility exists. Note: We will need to extend PeeringDB's software to support the workflow described here. Note: The IP addresses used in the attestation process will be logged.","title":"Approving Facility (fac) objects"},{"location":"committee/admin/approval-guidelines/#validation-mechanisms","text":"The owner of the facility is an existing PeeringDB user, and adds the facility to their record themselves. In this approval flow the facility is \u2018claimed\u2019. For this workflow the facility owner should already have one facility previously validated via one of the following mechanisms: The owner of the facility is not a PeeringDB user, but interested parties (who are PeeringDB users) wish the Facility object to be registered. The result is an unclaimed Facility object. The building has a website that has an interconnection or colocation section or One user will suggest the facility (peeringdb.com/suggest/fac), after filling in the details the form will generate a unique URL where the attestations can be collected. The user then distributes the URL (which can only be accessed by logged-in users) to the other interested parties, who can then attest or disprove the facility. When 3 PeeringDB users positively attest the facility exists, the facility is approved. The owner of the facility is a new peeringdb user and does not have any objects associated with their account. There are two mechanisms to claim a Facility object. The building has a website that has an interconnection or colocation section or An attestation process similar to how new facilities are suggested by existing users is followed, where the attempting-to-claim PeeringDB user must collect 3 positive attestations from three existing PeeringDB users. Exception approval follows the standard process","title":"Validation mechanisms"},{"location":"committee/admin/approval-guidelines/#flowchart-facility","text":"","title":"Flowchart - Facility"},{"location":"committee/admin/approval-guidelines/#flowchart-attestation","text":"","title":"Flowchart - Attestation"},{"location":"committee/admin/approval-guidelines/#flagging-as-junk","text":"PeeringDB users can flag a facility as \u201cjunk\u201d. This puts the Facility object in a review queue. The Admin Committee can resolve in the following ways: The facility owner becomes a PeeringDB user and claims the facility. The 3 people who attested that the facility exists can point at two existing PeeringDB IXP or Network object owners who are willing to attest they are present in the facility. The Admin Committee contacts the IXP or Network object owners and asks them to confirm their presence in the facility. At this point the facility record will list at least two network and/or IXP objects. A facility without networks or IXPs is considered potential \u201cjunk\u201d. Empty facilities will be deleted after 90 days. This happens when neither the owner of the facility, nor any other PeeringDB users were willing to indicate a relationship to the facility. The \u201cjunk\u201d button only appears in the UI for objects which are both unclaimed, and where no networks or IXPs indicate a presence.","title":"Flagging as \"junk\""},{"location":"committee/admin/approval-guidelines/#checklist-to-help-find-entities-present-at-the-facility-and-or-understand-who-the-facility-owner-is","text":"Website operated by the facility owner: recommended and SHOULD list colocation or interconnection as a service Government or Industry Association website listing facilities. (Example: CLLI locators in the United States) Website of IXPs or Networks publishing they operate in the building","title":"Checklist to help find entities present at the facility and or understand who the facility owner is"},{"location":"committee/admin/approval-guidelines/#example-facility-object-approval-scenarios","text":"","title":"Example facility object approval scenarios"},{"location":"committee/admin/approval-guidelines/#facility-approval-example-1","text":"Facility located at 100 W Main Street, Nowhere, WV, USA. Facility has four ISPs that interconnect in the basement of the building. Three out of the four ISPs have staff with PeeringDB accounts. Building owner has provided a closet for this to occur. Building has no website, the building owner does not know anything about interconnection, and has no plans to market the building as an interconnection location. Start ISP operator A files a request to suggest a Facility object to be entered into PeeringDB. Validation Process The facility owner is not a PeeringDB user, so the mechanism of the facility owner themselves suggesting the facility cannot be applied. The act of suggesting the facility in the PeeringDB user interface generates a unique URL which ISP Operator A can share with the fellow ISPs. If at least 2 other PeeringDB users attest the facility exists, the Facility object is created and marked as \u201cunclaimed\u201d.","title":"Facility approval example 1"},{"location":"committee/admin/approval-guidelines/#facility-approval-example-2","text":"A PeeringDB user noticed the Facility object created (as a result of Example 1), and reports it as \u201cjunk\u201d. The object continues to exist, but is added to a review queue for the PeeringDB Admin Committee to help resolve the situation. The Admin Committee\u2019s task is to find positive proof the facility exists and interconnection happens. Validation Process The AC committee first contacts the original PeeringDB users that provided attestations the facility exists. (Note: these PeeringDB users themselves might not be present in the facility). The AC can request the original attesters to provide a list of ISPs or IXPs they think are present in the facility. The AC can then contact the ISPs and/or IXPs who were suggested to have a presence in the facility and ask them to either attest the facility exists, or to add themselves as \u2018present\u2019 in the facility. It is possible these ISPs and/or IXPs are not yet PeeringDB users. If the AC can\u2019t collect the attestations the facility will be deleted in 90 days.","title":"Facility approval example 2"},{"location":"committee/admin/approval-guidelines/#facility-approval-example-3","text":"A Facility owner is a PeeringDB user and wishes to add its facility to PeeringDB using the \u201cSuggest a Facility\u201d function. The building owner is leasing suites to carriers in the basement of his facility, but primarily focuses on leasing office space. The building has a webpage, but data center/interconnection services are not listed on the webpage. The building owner has provided a list of four carriers who have leased space in the building. Validation Process The building owner can add webpage showing that they provide interconnection services. The attestation process can be used to demonstrate the building is used for interconnection.","title":"Facility approval example 3"},{"location":"committee/admin/approval-guidelines/#facility-approval-example-4","text":"An existing facility operator with other facilities listed in PeeringDB submits a new facility that does not yet have any customers. Validation Process None - The facility should be immediately added. After the Facility object has been added, networks and IXPs can indicate their presence.","title":"Facility approval example 4"},{"location":"committee/admin/approval-guidelines/#exception-process","text":"We know that these guidelines will need to be improved and updated as we learn, so we have built in an \u201cexception\u201d process to help with that. Whenever an easy path is not possible, the requester can ask for more review of their registration request. The first step in this process is to get input from all the volunteers on the Admin Committee. If more eyes are needed, the request can be shared with all of PeeringDB\u2019s Stewards, a group made from the committee chairs and board members. Where a formal decision is needed, the board can vote on a request and make a final decision.","title":"Exception process"},{"location":"committee/admin/approval-guidelines/#flowchart_2","text":"","title":"Flowchart"},{"location":"committee/admin/approval-guidelines/#appendix","text":"","title":"Appendix"},{"location":"committee/admin/approval-guidelines/#why-must-peering-lans-be-between-27-and-19-ipv4-and-not-shorter-than-64-ipv6","text":"This limit is intended to reduce the likelihood of a typo that goes undetected and causes operational issues. Where a peering LAN uses a /28 or a /18 (IPv4) the Admin Committee can manually process the prefix after verifying its prefix length is correct. The technical standards do not allow LANs to have prefixes shorter than a /64, so a /63 would be rejected to avoid causing operational issues to operator equipment that is standards compliant.","title":"Why must peering LANs be between /27 and /19 (IPv4) and not shorter than /64 (IPv6)?"},{"location":"committee/admin/charter/","text":"PeeringDB Admin Committee Charter Approved by Board July 9th, 2020 Scope The PeeringDB Admin Committee (AC) is responsible for the day to day end-user support of PeeringDB. The Admin Committee functions as the first point of contact for any inquiries to PeeringDB. The Admin Committee produces definitions for enhancements to the workflow and Admin GUI and works with the Product Committee to plan a coherent roadmap for the PeeringDB software. Out of scope Work covered in the charter of the Operations, Outreach, Product, and further to be established Committees Deliverables Take care of support tickets, the Admin Committee strives to answer tickets within 24 hours Gather input from end-users regarding the improvement of PeeringDB in terms of bugs and product features and channel them towards the Product Committee via GitHub Improve PeeringDB Admin GUI to help expedient resolution of support tickets Collaboration The Admin Committee works with other PeeringDB committees to ensure an equitable division of development resources in recognition of the volunteer efforts that are ensuring the daily operations. Participation The PeeringDB Admin Committee members serve a one-year renewable term. Volunteers can submit their candidacy to the Admin Committee Chair. The Chair and Vice Chair will choose a new Admin Committee member at any time they see the necessity to ensure the continuity of the Admin Committee. There is a trial period of one month. New members are onboarded by a more experienced committee member (WebEx / Google Hangouts / 3 example tickets). After the trial period appointment is confirmed by the Chair and Vice Chair for one year. Expectations Individual committee members should do their fair share of tickets measured over a month If a committee member is away for an extended period of time, inform the Chair, Vice Chair, and a notification sent to the Admin Committee mailing list One month probation where they get taught/mentored by an experienced admin, and where if they do not do the work, they get booted Chairs perform a quarterly review. If you don't meet a fair portion of the work you'll be nudged. Also, three months of inactivity is an automatic ejection Communication Questions and suggestions for the Admin Committee can be sent to the Admincom Mailing List On- and de-boarding is handled via the Admincom GitHub All other issues, also for Admin GUI bugs and features must go to the regular GitHub Any support questions should be directed to the Support Address Admin Committee uses slack and emails for internal communication Regular (4-6 week interval) conference calls are used to stay synced and discuss issues Decision policy Admin Committee members will decide on their own when handling support tickets according to the Admin Committee BCP laid out in the Admin Committee How-To Folder. Otherwise, they will decide by simple majority vote on contested issues called by the Admin Committee Chair. If there is a tie the Chair's vote is counted double. Workflow Admincom uses DeskPRO and GitHub as well as direct communication with the main service contractor 20C to achieve its deliverables. In communicating with 3rd parties the Admin Committee should be kept in the loop if the issue is of general interest. PeeringDB Common Committee Charter Provisions: Dispute resolution If the committee handles an issue in a manner in which a user believes that their view has not been adequately considered, their first action should be to raise the concern with the Committee Chair for further consideration. If the dispute is between the user and the Committee Chair then the issue may alternatively be raised with the Committee Vice Chair. If the dispute cannot be resolved the matter may be brought forward to the PeeringDB Board. The decision by the PeeringDB Board shall be final. Committee Chair and Vice Chair The committee elects their Chair and Vice Chair from among their members, subject to PeeringDB Board approval. The Chair and Vice Chair work as a team and distribute the workload between themselves as they deem appropriate. Decisions should be unanimous, however the final decision on any matter is with the Chair. In case the Chair becomes unavailable, the Vice Chair may assume the position of Acting Chair. If the Chair or Vice Chair become permanently unavailable, replacement(s) are elected from the remaining committee members, subject to PeeringDB Board approval.","title":"Charter"},{"location":"committee/admin/charter/#peeringdb-admin-committee-charter","text":"Approved by Board July 9th, 2020","title":"PeeringDB Admin Committee Charter"},{"location":"committee/admin/charter/#scope","text":"The PeeringDB Admin Committee (AC) is responsible for the day to day end-user support of PeeringDB. The Admin Committee functions as the first point of contact for any inquiries to PeeringDB. The Admin Committee produces definitions for enhancements to the workflow and Admin GUI and works with the Product Committee to plan a coherent roadmap for the PeeringDB software.","title":"Scope"},{"location":"committee/admin/charter/#out-of-scope","text":"Work covered in the charter of the Operations, Outreach, Product, and further to be established Committees","title":"Out of scope"},{"location":"committee/admin/charter/#deliverables","text":"Take care of support tickets, the Admin Committee strives to answer tickets within 24 hours Gather input from end-users regarding the improvement of PeeringDB in terms of bugs and product features and channel them towards the Product Committee via GitHub Improve PeeringDB Admin GUI to help expedient resolution of support tickets","title":"Deliverables"},{"location":"committee/admin/charter/#collaboration","text":"The Admin Committee works with other PeeringDB committees to ensure an equitable division of development resources in recognition of the volunteer efforts that are ensuring the daily operations.","title":"Collaboration"},{"location":"committee/admin/charter/#participation","text":"The PeeringDB Admin Committee members serve a one-year renewable term. Volunteers can submit their candidacy to the Admin Committee Chair. The Chair and Vice Chair will choose a new Admin Committee member at any time they see the necessity to ensure the continuity of the Admin Committee. There is a trial period of one month. New members are onboarded by a more experienced committee member (WebEx / Google Hangouts / 3 example tickets). After the trial period appointment is confirmed by the Chair and Vice Chair for one year.","title":"Participation"},{"location":"committee/admin/charter/#expectations","text":"Individual committee members should do their fair share of tickets measured over a month If a committee member is away for an extended period of time, inform the Chair, Vice Chair, and a notification sent to the Admin Committee mailing list One month probation where they get taught/mentored by an experienced admin, and where if they do not do the work, they get booted Chairs perform a quarterly review. If you don't meet a fair portion of the work you'll be nudged. Also, three months of inactivity is an automatic ejection","title":"Expectations"},{"location":"committee/admin/charter/#communication","text":"Questions and suggestions for the Admin Committee can be sent to the Admincom Mailing List On- and de-boarding is handled via the Admincom GitHub All other issues, also for Admin GUI bugs and features must go to the regular GitHub Any support questions should be directed to the Support Address Admin Committee uses slack and emails for internal communication Regular (4-6 week interval) conference calls are used to stay synced and discuss issues","title":"Communication"},{"location":"committee/admin/charter/#decision-policy","text":"Admin Committee members will decide on their own when handling support tickets according to the Admin Committee BCP laid out in the Admin Committee How-To Folder. Otherwise, they will decide by simple majority vote on contested issues called by the Admin Committee Chair. If there is a tie the Chair's vote is counted double.","title":"Decision policy"},{"location":"committee/admin/charter/#workflow","text":"Admincom uses DeskPRO and GitHub as well as direct communication with the main service contractor 20C to achieve its deliverables. In communicating with 3rd parties the Admin Committee should be kept in the loop if the issue is of general interest. PeeringDB Common Committee Charter Provisions:","title":"Workflow"},{"location":"committee/admin/charter/#dispute-resolution","text":"If the committee handles an issue in a manner in which a user believes that their view has not been adequately considered, their first action should be to raise the concern with the Committee Chair for further consideration. If the dispute is between the user and the Committee Chair then the issue may alternatively be raised with the Committee Vice Chair. If the dispute cannot be resolved the matter may be brought forward to the PeeringDB Board. The decision by the PeeringDB Board shall be final.","title":"Dispute resolution"},{"location":"committee/admin/charter/#committee-chair-and-vice-chair","text":"The committee elects their Chair and Vice Chair from among their members, subject to PeeringDB Board approval. The Chair and Vice Chair work as a team and distribute the workload between themselves as they deem appropriate. Decisions should be unanimous, however the final decision on any matter is with the Chair. In case the Chair becomes unavailable, the Vice Chair may assume the position of Acting Chair. If the Chair or Vice Chair become permanently unavailable, replacement(s) are elected from the remaining committee members, subject to PeeringDB Board approval.","title":"Committee Chair and Vice Chair"},{"location":"committee/outreach/","text":"PeeringDB Outreach Committee Purpose is to coordinate outreach and evangelism in the community. Interested in volunteering? Contact outreachcom@lists.peeringdb.com . PeeringDB Outreach Committee Charter Approved by Board July 9th, 2020 Scope The PeeringDB Outreach Committee (OC) is charged with the marketing efforts and running the organization's external engagement to continuously improve the value that PeeringDB delivers to the organizations registered with PeeringDB, and the broader community. Out of scope The OC Committee does not work on other areas, such as product development, as these are managed by the other respective committees and defined in their respective charters. Deliverables Gather inputs from the other respective PeeringDB committees on developments and significant updates and ensure these are communicated the community Coordinate with partner committees and prepare presentations with relevant PeeringDB updates Identify and attend relevant community events to publicize PeeringDB developments and engage the community to drive additional records to be created Identify marketing opportunities for relevant PeeringDB activities Share key milestones and engage with the community through social media channels Participation The PeeringDB Outreach Committee members serve a one-year renewable term. Volunteers can submit their candidacy to the Outreach Committee Chair. The Chair and Vice Chair will choose a new Outreach Committee member at any time they see the necessity to ensure the continuity of the Outreach Committee. Communication Questions and suggestions for the Outreach Committee can be sent to outreachcom@lists.peeringdb.com Decision policy Outreach Committee members will decide by simple majority vote on contested issues called by the Outreach Committee Chair. PeeringDB Common Committee Charter Provisions: Dispute resolution If the committee handles an issue in a manner in which a user believes that their view has not been adequately considered, their first action should be to raise the concern with the Committee Chair for further consideration. If the dispute is between the user and the Committee Chair then the issue may alternatively be raised with the Committee Vice Chair. If the dispute cannot be resolved the matter may be brought forward to the PeeringDB Board. The decision by the PeeringDB Board shall be final. Committee Chair and Vice Chair The committee elects their Chair and Vice Chair from among their members, subject to PeeringDB Board approval. The Chair and Vice Chair work as a team and distribute the workload between themselves as they deem appropriate. Decisions should be unanimous, however the final decision on any matter is with the Chair. In case the Chair becomes unavailable, the Vice Chair may assume the position of Acting Chair. If the Chair or Vice Chair become permanently unavailable, replacement(s) are elected from the remaining committee members, subject to PeeringDB Board approval. Meeting notes 2024 October 9th, 2024: Meeting Notes September 19th, 2024: Meeting Notes August 13th, 2024: Meeting Notes July 9th, 2024: Meeting Notes June 17th, 2024: Meeting Notes May 14th, 2024: Meeting Notes April 9th, 2024: Meeting Notes 2021 No formal meeting in December 2021 November 2nd, 2021: Meeting Notes October 5th, 2021: Meeting Notes September 7th, 2021: Meeting Notes No formal meeting in August 2021 July 6th, 2021: Meeting Notes June 1st, 2021: Meeting Notes May 5th, 2021: Meeting Notes April 6th, 2021: Meeting Notes March 1st, 2021: Meeting Notes February 8th, 2021: Meeting Notes January 12th, 2021: Meeting Notes 2020 No formal meeting in December 2020 November 12th, 2020: Meeting Notes No formal meeting in October 2020 No formal meeting in September 2020 August 4th, 2020: Meeting Notes July 7th, 2020: Meeting Notes June 2nd, 2020: Meeting Notes May 7th, 2020: Meeting Notes April 7th, 2020: Meeting Notes March 17th, 2020: Meeting Notes February 4th, 2020: Meeting Notes January 7th, 2020: Meeting Notes 2019 December 3rd, 2019: Meeting Notes Members Obinna Adumike Lynsey Buckingham Yana Glaub Greg Hankins Aaron Hughes - Board Liaison Tarryn Kidd Livio Morina Arnold Nipper Ester Paal Ben Ryall - Chair Leo Vegoda - Product Manager","title":"Outreach Committee"},{"location":"committee/outreach/#peeringdb-outreach-committee","text":"Purpose is to coordinate outreach and evangelism in the community. Interested in volunteering? Contact outreachcom@lists.peeringdb.com .","title":"PeeringDB Outreach Committee"},{"location":"committee/outreach/#peeringdb-outreach-committee-charter","text":"Approved by Board July 9th, 2020","title":"PeeringDB Outreach Committee Charter"},{"location":"committee/outreach/#scope","text":"The PeeringDB Outreach Committee (OC) is charged with the marketing efforts and running the organization's external engagement to continuously improve the value that PeeringDB delivers to the organizations registered with PeeringDB, and the broader community.","title":"Scope"},{"location":"committee/outreach/#out-of-scope","text":"The OC Committee does not work on other areas, such as product development, as these are managed by the other respective committees and defined in their respective charters.","title":"Out of scope"},{"location":"committee/outreach/#deliverables","text":"Gather inputs from the other respective PeeringDB committees on developments and significant updates and ensure these are communicated the community Coordinate with partner committees and prepare presentations with relevant PeeringDB updates Identify and attend relevant community events to publicize PeeringDB developments and engage the community to drive additional records to be created Identify marketing opportunities for relevant PeeringDB activities Share key milestones and engage with the community through social media channels","title":"Deliverables"},{"location":"committee/outreach/#participation","text":"The PeeringDB Outreach Committee members serve a one-year renewable term. Volunteers can submit their candidacy to the Outreach Committee Chair. The Chair and Vice Chair will choose a new Outreach Committee member at any time they see the necessity to ensure the continuity of the Outreach Committee.","title":"Participation"},{"location":"committee/outreach/#communication","text":"Questions and suggestions for the Outreach Committee can be sent to outreachcom@lists.peeringdb.com","title":"Communication"},{"location":"committee/outreach/#decision-policy","text":"Outreach Committee members will decide by simple majority vote on contested issues called by the Outreach Committee Chair. PeeringDB Common Committee Charter Provisions:","title":"Decision policy"},{"location":"committee/outreach/#dispute-resolution","text":"If the committee handles an issue in a manner in which a user believes that their view has not been adequately considered, their first action should be to raise the concern with the Committee Chair for further consideration. If the dispute is between the user and the Committee Chair then the issue may alternatively be raised with the Committee Vice Chair. If the dispute cannot be resolved the matter may be brought forward to the PeeringDB Board. The decision by the PeeringDB Board shall be final.","title":"Dispute resolution"},{"location":"committee/outreach/#committee-chair-and-vice-chair","text":"The committee elects their Chair and Vice Chair from among their members, subject to PeeringDB Board approval. The Chair and Vice Chair work as a team and distribute the workload between themselves as they deem appropriate. Decisions should be unanimous, however the final decision on any matter is with the Chair. In case the Chair becomes unavailable, the Vice Chair may assume the position of Acting Chair. If the Chair or Vice Chair become permanently unavailable, replacement(s) are elected from the remaining committee members, subject to PeeringDB Board approval.","title":"Committee Chair and Vice Chair"},{"location":"committee/outreach/#meeting-notes","text":"","title":"Meeting notes"},{"location":"committee/outreach/#2024","text":"October 9th, 2024: Meeting Notes September 19th, 2024: Meeting Notes August 13th, 2024: Meeting Notes July 9th, 2024: Meeting Notes June 17th, 2024: Meeting Notes May 14th, 2024: Meeting Notes April 9th, 2024: Meeting Notes","title":"2024"},{"location":"committee/outreach/#2021","text":"No formal meeting in December 2021 November 2nd, 2021: Meeting Notes October 5th, 2021: Meeting Notes September 7th, 2021: Meeting Notes No formal meeting in August 2021 July 6th, 2021: Meeting Notes June 1st, 2021: Meeting Notes May 5th, 2021: Meeting Notes April 6th, 2021: Meeting Notes March 1st, 2021: Meeting Notes February 8th, 2021: Meeting Notes January 12th, 2021: Meeting Notes","title":"2021"},{"location":"committee/outreach/#2020","text":"No formal meeting in December 2020 November 12th, 2020: Meeting Notes No formal meeting in October 2020 No formal meeting in September 2020 August 4th, 2020: Meeting Notes July 7th, 2020: Meeting Notes June 2nd, 2020: Meeting Notes May 7th, 2020: Meeting Notes April 7th, 2020: Meeting Notes March 17th, 2020: Meeting Notes February 4th, 2020: Meeting Notes January 7th, 2020: Meeting Notes","title":"2020"},{"location":"committee/outreach/#2019","text":"December 3rd, 2019: Meeting Notes","title":"2019"},{"location":"committee/outreach/#members","text":"Obinna Adumike Lynsey Buckingham Yana Glaub Greg Hankins Aaron Hughes - Board Liaison Tarryn Kidd Livio Morina Arnold Nipper Ester Paal Ben Ryall - Chair Leo Vegoda - Product Manager","title":"Members"},{"location":"committee/outreach/charter/","text":"PeeringDB Outreach Committee Charter Approved by Board July 9th, 2020 Scope The PeeringDB Outreach Committee (OC) is charged with the marketing efforts and running the organization's external engagement to continuously improve the value that PeeringDB delivers to the organizations registered with PeeringDB, and the broader community. Out of scope The OC Committee does not work on other areas, such as product development, as these are managed by the other respective committees and defined in their respective charters. Deliverables Gather inputs from the other respective PeeringDB committees on developments and significant updates and ensure these are communicated the community Coordinate with partner committees and prepare presentations with relevant PeeringDB updates Identify and attend relevant community events to publicize PeeringDB developments and engage the community to drive additional records to be created Identify marketing opportunities for relevant PeeringDB activities Share key milestones and engage with the community through social media channels Participation The PeeringDB Outreach Committee members serve a one-year renewable term. Volunteers can submit their candidacy to the Outreach Committee Chair. The Chair and Vice Chair will choose a new Outreach Committee member at any time they see the necessity to ensure the continuity of the Outreach Committee. Communication Questions and suggestions for the Outreach Committee can be sent to outreachcom@lists.peeringdb.com Decision policy Outreach Committee members will decide by simple majority vote on contested issues called by the Outreach Committee Chair. PeeringDB Common Committee Charter Provisions: Dispute resolution If the committee handles an issue in a manner in which a user believes that their view has not been adequately considered, their first action should be to raise the concern with the Committee Chair for further consideration. If the dispute is between the user and the Committee Chair then the issue may alternatively be raised with the Committee Vice Chair. If the dispute cannot be resolved the matter may be brought forward to the PeeringDB Board. The decision by the PeeringDB Board shall be final. Committee Chair and Vice Chair The committee elects their Chair and Vice Chair from among their members, subject to PeeringDB Board approval. The Chair and Vice Chair work as a team and distribute the workload between themselves as they deem appropriate. Decisions should be unanimous, however the final decision on any matter is with the Chair. In case the Chair becomes unavailable, the Vice Chair may assume the position of Acting Chair. If the Chair or Vice Chair become permanently unavailable, replacement(s) are elected from the remaining committee members, subject to PeeringDB Board approval.","title":"Charter"},{"location":"committee/outreach/charter/#peeringdb-outreach-committee-charter","text":"Approved by Board July 9th, 2020","title":"PeeringDB Outreach Committee Charter"},{"location":"committee/outreach/charter/#scope","text":"The PeeringDB Outreach Committee (OC) is charged with the marketing efforts and running the organization's external engagement to continuously improve the value that PeeringDB delivers to the organizations registered with PeeringDB, and the broader community.","title":"Scope"},{"location":"committee/outreach/charter/#out-of-scope","text":"The OC Committee does not work on other areas, such as product development, as these are managed by the other respective committees and defined in their respective charters.","title":"Out of scope"},{"location":"committee/outreach/charter/#deliverables","text":"Gather inputs from the other respective PeeringDB committees on developments and significant updates and ensure these are communicated the community Coordinate with partner committees and prepare presentations with relevant PeeringDB updates Identify and attend relevant community events to publicize PeeringDB developments and engage the community to drive additional records to be created Identify marketing opportunities for relevant PeeringDB activities Share key milestones and engage with the community through social media channels","title":"Deliverables"},{"location":"committee/outreach/charter/#participation","text":"The PeeringDB Outreach Committee members serve a one-year renewable term. Volunteers can submit their candidacy to the Outreach Committee Chair. The Chair and Vice Chair will choose a new Outreach Committee member at any time they see the necessity to ensure the continuity of the Outreach Committee.","title":"Participation"},{"location":"committee/outreach/charter/#communication","text":"Questions and suggestions for the Outreach Committee can be sent to outreachcom@lists.peeringdb.com","title":"Communication"},{"location":"committee/outreach/charter/#decision-policy","text":"Outreach Committee members will decide by simple majority vote on contested issues called by the Outreach Committee Chair. PeeringDB Common Committee Charter Provisions:","title":"Decision policy"},{"location":"committee/outreach/charter/#dispute-resolution","text":"If the committee handles an issue in a manner in which a user believes that their view has not been adequately considered, their first action should be to raise the concern with the Committee Chair for further consideration. If the dispute is between the user and the Committee Chair then the issue may alternatively be raised with the Committee Vice Chair. If the dispute cannot be resolved the matter may be brought forward to the PeeringDB Board. The decision by the PeeringDB Board shall be final.","title":"Dispute resolution"},{"location":"committee/outreach/charter/#committee-chair-and-vice-chair","text":"The committee elects their Chair and Vice Chair from among their members, subject to PeeringDB Board approval. The Chair and Vice Chair work as a team and distribute the workload between themselves as they deem appropriate. Decisions should be unanimous, however the final decision on any matter is with the Chair. In case the Chair becomes unavailable, the Vice Chair may assume the position of Acting Chair. If the Chair or Vice Chair become permanently unavailable, replacement(s) are elected from the remaining committee members, subject to PeeringDB Board approval.","title":"Committee Chair and Vice Chair"},{"location":"committee/product/","text":"PeeringDB Product Committee Purpose is to study and recommend feature needs. Interested in volunteering? Contact productcom@lists.peeringdb.com . PeeringDB Product Committee Charter Approved by Board July 7th, 2017 Scope The PeeringDB Product Committee (PC) is charged with steering the future product development and running the market outreach efforts to continuously improve the value that PeeringDB delivers to the networks registered with PeeringDB, and the broader community. Out of scope The PC does not drive PeeringDB improvements related to the administrative interfaces & functions used by the PeeringDB Admin Committee. The PC does not consider PeeringDB improvements related to the server, storage, hosting or network infrastructure. Deliverables Gather inputs from stakeholders regarding the evolution of PeeringDB in terms of product features and overall long term objectives. Formulate the long term objectives and validate them with the PeeringDB Board and the members of the PeeringDB Governance mailing list. Document and maintain workflow process to handle requests and issues. Maintain the product roadmap and feature request backlog and makes them publicly accessible. Create and maintain PeeringDB product documentation and presentation materials. Develop market outreach and evangelization to increase the uptake of PeeringDB use and improve data quality. Propose new features or enhancements based on the long term objectives and validates significant product evolutions with key stakeholders. Collaboration The PC shall work with other PeeringDB committees to ensure an equitable division of development resources in recognition of the volunteer efforts that are ensuring the daily operations. Participation The PeeringDB Product Committee members serve a 2 years renewable term, potential volunteers may submit their candidacy to the PeeringDB Board. The product committee will select their own Chair and Vice Chair by simple majority vote. The Board may add or remove members at any time it deems necessary. Communication Questions and suggestions for the Product Committee can be sent to productcom@lists.peeringdb.com The committee will use a range of mechanisms for communication and community input gathering efforts, including the PeeringDB Governance Mailinglist pdb-gov@lists.peeringdb.com Decisions, including their rationale, will be documented in GitHub issues All issues and the product roadmap and feature backlog can be found at in GitHub issues Decision policy Product Committee members will decide by simple majority vote on contested issues called by the Product Committee Chair. PeeringDB Common Committee Charter Provisions: Dispute resolution If the committee handles an issue in a manner in which a user believes that their view has not been adequately considered, their first action should be to raise the concern with the Committee Chair for further consideration. If the dispute is between the user and the Committee Chair then the issue may alternatively be raised with the Committee Vice Chair. If the dispute cannot be resolved the matter may be brought forward to the PeeringDB Board. The decision by the PeeringDB Board shall be final. Committee Chair and Vice Chair The committee elects their Chair and Vice Chair from among their members, subject to PeeringDB Board approval. The Chair and Vice Chair work as a team and distribute the workload between themselves as they deem appropriate. Decisions should be unanimous, however the final decision on any matter is with the Chair. In case the Chair becomes unavailable, the Vice Chair may assume the position of Acting Chair. If the Chair or Vice Chair become permanently unavailable, replacement(s) are elected from the remaining committee members, subject to PeeringDB Board approval. Decision making process and workflow Product Committee members are responsible for driving the development of PeeringDB. To do this, GitHub issues are used to track proposed and in progress work. Product Committee members play two roles in driving forward work: 1) As a shepherd - responsible for driving consensus for a given issue 2) As a stakeholder - voting on a consensus that has been reached Each Product Committee member will choose issues to shepherd to a decision. They will indicate responsibility for this task by assigning the issue to themselves and placing it in the Decide queue. To decide whether we act on a given issue that has been reported, a stakeholder group will be formed. This group will consist of Product Committee members, who are responsible for representing the users of PeeringDB. A stakeholder group on a given issue must consist of at least three Product Committee members, including the shepherding member. Any Product Committee member can be a stakeholder in the decision on an issue. They become a stakeholder on a given issue by either commenting on the issue on GitHub or participating in discussion of the issue on the Product Committee Mailing list. It is up to the shepherding member to help reach a unanimous consensus within the stakeholder group on what should be done with the issue - including not acting on it. If and only if there are opposing views on how to proceed, and unanimous consensus cannot be reached by the stakeholder committee members, decisions fall to the entire Product Committee (see below). The final proposal of how to resolve each issue, along with votes from stakeholders must be documented in the GitHub issue to be considered to have reached consensus. Product Committee members must document any offline discussion in the GitHub issue to ensure transparency of the discussion process. Issues in the Decide queue are regularly reviewed by the Product Committee to make sure the most impactful issues are being moved along to resolution. All issues in the Decide queue will be reviewed in the monthly Product Committee call to ensure stakeholders have reached consensus and to give members who have not participated in the issue an opportunity to participate. After an issue with consensus has been reviewed, Product Committee members who disagree with the proposal have five days after the monthly Product Committee call to vote against the proposed solution, otherwise the issue will move to the backlog. For any issues where consensus cannot be reached, an issue may move forward only if a quorum of 50% or more of the Product Committee has no more than 25% of the quorum in opposition to the issue. Meeting notes 2024 November 7th, 2024: Meeting Notes October 3rd, 2024: Meeting Notes September 5th, 2024: Meeting Notes August 1st, 2024: Meeting Notes July 11th, 2024: Meeting Notes June 6th, 2024: Meeting Notes May 2nd, 2024: Meeting Notes April 4th, 2024: Meeting Notes March 14th, 2024: Meeting Notes February 1st, 2024: Meeting Notes January 4th, 2024: Meeting Notes 2023 December 7th, 2023: Meeting Notes November 2nd, 2023: Meeting Notes October 5th, 2023: Meeting Notes September 7th, 2023: Meeting Notes August 3rd, 2023: Meeting Notes July 6th, 2023: Meeting Notes June 1st, 2023: Meeting Notes May 4th, 2023: Meeting Notes April 6th, 2023: Meeting Notes March 2nd, 2023: Meeting Notes February 14th, 2023: Meeting Notes February 2nd, 2023: Meeting Notes January 5th, 2023: Meeting Notes 2022 No formal meeting in December 2022 November 3rd, 2022: Meeting Notes October 17th, 2022: Meeting Notes October 6th, 2022: Meeting Notes September 8th, 2022: Meeting Notes August 4th, 2022: Meeting Notes July 7th, 2022: Meeting Notes June 2nd, 2022: Meeting Notes May 5th, 2022: Meeting Notes April 7th, 2022: Meeting Notes March 3rd, 2022: Meeting Notes February 3rd, 2022: Meeting Notes January 6th, 2022: Meeting Notes 2021 December 2nd, 2021: Meeting Notes No formal meeting in November 2021 October 7th, 2021: Meeting Notes No formal meeting in September 2021 No formal meeting in August 2021 No formal meeting in July 2021 No formal meeting in June 2021 May 6th, 2021: Meeting Notes April 1st, 2021: Meeting Notes March 11th, 2021: Meeting Notes February 4th, 2021: Meeting Notes January 7th, 2021: Meeting Notes 2020 December 3rd, 2020: Meeting Notes November 5th, 2020: Meeting Notes October 1st, 2020: Meeting Notes September 3rd, 2020: Meeting Notes August 6th, 2020: Meeting Notes July 2nd, 2020: Meeting Notes June 4th, 2020: Meeting Notes May 7th, 2020: Meeting Notes April 2nd, 2020: Meeting Notes No formal meeting in March 2020 February 6th, 2020: Meeting Notes January 9th, 2020: Meeting Notes 2019 No formal meeting in December 2019 November 14th, 2019: Meeting Notes October 3rd, 2019: Meeting Notes September 5th, 2019: Meeting Notes August 8th, 2019: Meeting Notes July 11th, 2019: Meeting Notes June 7th, 2019: Meeting Notes May 2nd, 2019: Meeting Notes No formal meeting in April 2019 March 7th, 2019: Meeting Notes February 7th, 2019: Meeting Notes January 3rd, 2019: Meeting Notes 2018 December 6th, 2018: Meeting Notes November 1st, 2018: Meeting Notes October 4th, 2018: Meeting Notes September 6th, 2018: Meeting Notes No formal meeting in August 2018 July 5th, 2018: Meeting Notes June 7th, 2018: Meeting Notes No formal meeting in May 2018 April 5th, 2018: Meeting Notes March 14th, 2018: Meeting Notes No formal meeting in February 2018 January 4th, 2018: Meeting Notes 2017 December 7th, 2017: Meeting Notes No formal meeting in November 2017 October 12th, 2017: Meeting Notes No formal meeting in September 2017 August 3rd, 2017: Meeting Notes July 6th, 2017: Meeting Notes June 1st, 2017: Meeting Notes No formal meeting in May 2017 April 13th, 2017: Meeting Notes March 21st, 2017: Meeting Notes Members Jeff Bartig Yan Berthier Jack Carrozzo - Chair Yolandi Cloete Matt Griswold - Vice Chair Martin Hannigan Peter Helmenstine Paul Hoogsteder Aaron Hughes - Board Liaison Laurent Jarbinet Stephen McManus Arnold Nipper Terry Sweetser Leo Vegoda - Product Manager","title":"Product Committee"},{"location":"committee/product/#peeringdb-product-committee","text":"Purpose is to study and recommend feature needs. Interested in volunteering? Contact productcom@lists.peeringdb.com .","title":"PeeringDB Product Committee"},{"location":"committee/product/#peeringdb-product-committee-charter","text":"Approved by Board July 7th, 2017","title":"PeeringDB Product Committee Charter"},{"location":"committee/product/#scope","text":"The PeeringDB Product Committee (PC) is charged with steering the future product development and running the market outreach efforts to continuously improve the value that PeeringDB delivers to the networks registered with PeeringDB, and the broader community.","title":"Scope"},{"location":"committee/product/#out-of-scope","text":"The PC does not drive PeeringDB improvements related to the administrative interfaces & functions used by the PeeringDB Admin Committee. The PC does not consider PeeringDB improvements related to the server, storage, hosting or network infrastructure.","title":"Out of scope"},{"location":"committee/product/#deliverables","text":"Gather inputs from stakeholders regarding the evolution of PeeringDB in terms of product features and overall long term objectives. Formulate the long term objectives and validate them with the PeeringDB Board and the members of the PeeringDB Governance mailing list. Document and maintain workflow process to handle requests and issues. Maintain the product roadmap and feature request backlog and makes them publicly accessible. Create and maintain PeeringDB product documentation and presentation materials. Develop market outreach and evangelization to increase the uptake of PeeringDB use and improve data quality. Propose new features or enhancements based on the long term objectives and validates significant product evolutions with key stakeholders.","title":"Deliverables"},{"location":"committee/product/#collaboration","text":"The PC shall work with other PeeringDB committees to ensure an equitable division of development resources in recognition of the volunteer efforts that are ensuring the daily operations.","title":"Collaboration"},{"location":"committee/product/#participation","text":"The PeeringDB Product Committee members serve a 2 years renewable term, potential volunteers may submit their candidacy to the PeeringDB Board. The product committee will select their own Chair and Vice Chair by simple majority vote. The Board may add or remove members at any time it deems necessary.","title":"Participation"},{"location":"committee/product/#communication","text":"Questions and suggestions for the Product Committee can be sent to productcom@lists.peeringdb.com The committee will use a range of mechanisms for communication and community input gathering efforts, including the PeeringDB Governance Mailinglist pdb-gov@lists.peeringdb.com Decisions, including their rationale, will be documented in GitHub issues All issues and the product roadmap and feature backlog can be found at in GitHub issues","title":"Communication"},{"location":"committee/product/#decision-policy","text":"Product Committee members will decide by simple majority vote on contested issues called by the Product Committee Chair. PeeringDB Common Committee Charter Provisions:","title":"Decision policy"},{"location":"committee/product/#dispute-resolution","text":"If the committee handles an issue in a manner in which a user believes that their view has not been adequately considered, their first action should be to raise the concern with the Committee Chair for further consideration. If the dispute is between the user and the Committee Chair then the issue may alternatively be raised with the Committee Vice Chair. If the dispute cannot be resolved the matter may be brought forward to the PeeringDB Board. The decision by the PeeringDB Board shall be final.","title":"Dispute resolution"},{"location":"committee/product/#committee-chair-and-vice-chair","text":"The committee elects their Chair and Vice Chair from among their members, subject to PeeringDB Board approval. The Chair and Vice Chair work as a team and distribute the workload between themselves as they deem appropriate. Decisions should be unanimous, however the final decision on any matter is with the Chair. In case the Chair becomes unavailable, the Vice Chair may assume the position of Acting Chair. If the Chair or Vice Chair become permanently unavailable, replacement(s) are elected from the remaining committee members, subject to PeeringDB Board approval.","title":"Committee Chair and Vice Chair"},{"location":"committee/product/#decision-making-process-and-workflow","text":"Product Committee members are responsible for driving the development of PeeringDB. To do this, GitHub issues are used to track proposed and in progress work. Product Committee members play two roles in driving forward work: 1) As a shepherd - responsible for driving consensus for a given issue 2) As a stakeholder - voting on a consensus that has been reached Each Product Committee member will choose issues to shepherd to a decision. They will indicate responsibility for this task by assigning the issue to themselves and placing it in the Decide queue. To decide whether we act on a given issue that has been reported, a stakeholder group will be formed. This group will consist of Product Committee members, who are responsible for representing the users of PeeringDB. A stakeholder group on a given issue must consist of at least three Product Committee members, including the shepherding member. Any Product Committee member can be a stakeholder in the decision on an issue. They become a stakeholder on a given issue by either commenting on the issue on GitHub or participating in discussion of the issue on the Product Committee Mailing list. It is up to the shepherding member to help reach a unanimous consensus within the stakeholder group on what should be done with the issue - including not acting on it. If and only if there are opposing views on how to proceed, and unanimous consensus cannot be reached by the stakeholder committee members, decisions fall to the entire Product Committee (see below). The final proposal of how to resolve each issue, along with votes from stakeholders must be documented in the GitHub issue to be considered to have reached consensus. Product Committee members must document any offline discussion in the GitHub issue to ensure transparency of the discussion process. Issues in the Decide queue are regularly reviewed by the Product Committee to make sure the most impactful issues are being moved along to resolution. All issues in the Decide queue will be reviewed in the monthly Product Committee call to ensure stakeholders have reached consensus and to give members who have not participated in the issue an opportunity to participate. After an issue with consensus has been reviewed, Product Committee members who disagree with the proposal have five days after the monthly Product Committee call to vote against the proposed solution, otherwise the issue will move to the backlog. For any issues where consensus cannot be reached, an issue may move forward only if a quorum of 50% or more of the Product Committee has no more than 25% of the quorum in opposition to the issue.","title":"Decision making process and workflow"},{"location":"committee/product/#meeting-notes","text":"","title":"Meeting notes"},{"location":"committee/product/#2024","text":"November 7th, 2024: Meeting Notes October 3rd, 2024: Meeting Notes September 5th, 2024: Meeting Notes August 1st, 2024: Meeting Notes July 11th, 2024: Meeting Notes June 6th, 2024: Meeting Notes May 2nd, 2024: Meeting Notes April 4th, 2024: Meeting Notes March 14th, 2024: Meeting Notes February 1st, 2024: Meeting Notes January 4th, 2024: Meeting Notes","title":"2024"},{"location":"committee/product/#2023","text":"December 7th, 2023: Meeting Notes November 2nd, 2023: Meeting Notes October 5th, 2023: Meeting Notes September 7th, 2023: Meeting Notes August 3rd, 2023: Meeting Notes July 6th, 2023: Meeting Notes June 1st, 2023: Meeting Notes May 4th, 2023: Meeting Notes April 6th, 2023: Meeting Notes March 2nd, 2023: Meeting Notes February 14th, 2023: Meeting Notes February 2nd, 2023: Meeting Notes January 5th, 2023: Meeting Notes","title":"2023"},{"location":"committee/product/#2022","text":"No formal meeting in December 2022 November 3rd, 2022: Meeting Notes October 17th, 2022: Meeting Notes October 6th, 2022: Meeting Notes September 8th, 2022: Meeting Notes August 4th, 2022: Meeting Notes July 7th, 2022: Meeting Notes June 2nd, 2022: Meeting Notes May 5th, 2022: Meeting Notes April 7th, 2022: Meeting Notes March 3rd, 2022: Meeting Notes February 3rd, 2022: Meeting Notes January 6th, 2022: Meeting Notes","title":"2022"},{"location":"committee/product/#2021","text":"December 2nd, 2021: Meeting Notes No formal meeting in November 2021 October 7th, 2021: Meeting Notes No formal meeting in September 2021 No formal meeting in August 2021 No formal meeting in July 2021 No formal meeting in June 2021 May 6th, 2021: Meeting Notes April 1st, 2021: Meeting Notes March 11th, 2021: Meeting Notes February 4th, 2021: Meeting Notes January 7th, 2021: Meeting Notes","title":"2021"},{"location":"committee/product/#2020","text":"December 3rd, 2020: Meeting Notes November 5th, 2020: Meeting Notes October 1st, 2020: Meeting Notes September 3rd, 2020: Meeting Notes August 6th, 2020: Meeting Notes July 2nd, 2020: Meeting Notes June 4th, 2020: Meeting Notes May 7th, 2020: Meeting Notes April 2nd, 2020: Meeting Notes No formal meeting in March 2020 February 6th, 2020: Meeting Notes January 9th, 2020: Meeting Notes","title":"2020"},{"location":"committee/product/#2019","text":"No formal meeting in December 2019 November 14th, 2019: Meeting Notes October 3rd, 2019: Meeting Notes September 5th, 2019: Meeting Notes August 8th, 2019: Meeting Notes July 11th, 2019: Meeting Notes June 7th, 2019: Meeting Notes May 2nd, 2019: Meeting Notes No formal meeting in April 2019 March 7th, 2019: Meeting Notes February 7th, 2019: Meeting Notes January 3rd, 2019: Meeting Notes","title":"2019"},{"location":"committee/product/#2018","text":"December 6th, 2018: Meeting Notes November 1st, 2018: Meeting Notes October 4th, 2018: Meeting Notes September 6th, 2018: Meeting Notes No formal meeting in August 2018 July 5th, 2018: Meeting Notes June 7th, 2018: Meeting Notes No formal meeting in May 2018 April 5th, 2018: Meeting Notes March 14th, 2018: Meeting Notes No formal meeting in February 2018 January 4th, 2018: Meeting Notes","title":"2018"},{"location":"committee/product/#2017","text":"December 7th, 2017: Meeting Notes No formal meeting in November 2017 October 12th, 2017: Meeting Notes No formal meeting in September 2017 August 3rd, 2017: Meeting Notes July 6th, 2017: Meeting Notes June 1st, 2017: Meeting Notes No formal meeting in May 2017 April 13th, 2017: Meeting Notes March 21st, 2017: Meeting Notes","title":"2017"},{"location":"committee/product/#members","text":"Jeff Bartig Yan Berthier Jack Carrozzo - Chair Yolandi Cloete Matt Griswold - Vice Chair Martin Hannigan Peter Helmenstine Paul Hoogsteder Aaron Hughes - Board Liaison Laurent Jarbinet Stephen McManus Arnold Nipper Terry Sweetser Leo Vegoda - Product Manager","title":"Members"},{"location":"committee/product/charter/","text":"PeeringDB Product Committee Charter Approved by Board July 7th, 2017 Scope The PeeringDB Product Committee (PC) is charged with steering the future product development and running the market outreach efforts to continuously improve the value that PeeringDB delivers to the networks registered with PeeringDB, and the broader community. Out of scope The PC does not drive PeeringDB improvements related to the administrative interfaces & functions used by the PeeringDB Admin Committee. The PC does not consider PeeringDB improvements related to the server, storage, hosting or network infrastructure. Deliverables Gather inputs from stakeholders regarding the evolution of PeeringDB in terms of product features and overall long term objectives. Formulate the long term objectives and validate them with the PeeringDB Board and the members of the PeeringDB Governance mailing list. Document and maintain workflow process to handle requests and issues. Maintain the product roadmap and feature request backlog and makes them publicly accessible. Create and maintain PeeringDB product documentation and presentation materials. Develop market outreach and evangelization to increase the uptake of PeeringDB use and improve data quality. Propose new features or enhancements based on the long term objectives and validates significant product evolutions with key stakeholders. Collaboration The PC shall work with other PeeringDB committees to ensure an equitable division of development resources in recognition of the volunteer efforts that are ensuring the daily operations. Participation The PeeringDB Product Committee members serve a 2 years renewable term, potential volunteers may submit their candidacy to the PeeringDB Board. The product committee will select their own Chair and Vice Chair by simple majority vote. The Board may add or remove members at any time it deems necessary. Communication Questions and suggestions for the Product Committee can be sent to productcom@lists.peeringdb.com The committee will use a range of mechanisms for communication and community input gathering efforts, including the PeeringDB Governance Mailinglist pdb-gov@lists.peeringdb.com Decisions, including their rationale, will be documented in GitHub issues All issues and the product roadmap and feature backlog can be found at in GitHub issues Decision policy Product Committee members will decide by simple majority vote on contested issues called by the Product Committee Chair. PeeringDB Common Committee Charter Provisions: Dispute resolution If the committee handles an issue in a manner in which a user believes that their view has not been adequately considered, their first action should be to raise the concern with the Committee Chair for further consideration. If the dispute is between the user and the Committee Chair then the issue may alternatively be raised with the Committee Vice Chair. If the dispute cannot be resolved the matter may be brought forward to the PeeringDB Board. The decision by the PeeringDB Board shall be final. Committee Chair and Vice Chair The committee elects their Chair and Vice Chair from among their members, subject to PeeringDB Board approval. The Chair and Vice Chair work as a team and distribute the workload between themselves as they deem appropriate. Decisions should be unanimous, however the final decision on any matter is with the Chair. In case the Chair becomes unavailable, the Vice Chair may assume the position of Acting Chair. If the Chair or Vice Chair become permanently unavailable, replacement(s) are elected from the remaining committee members, subject to PeeringDB Board approval.","title":"Charter"},{"location":"committee/product/charter/#peeringdb-product-committee-charter","text":"Approved by Board July 7th, 2017","title":"PeeringDB Product Committee Charter"},{"location":"committee/product/charter/#scope","text":"The PeeringDB Product Committee (PC) is charged with steering the future product development and running the market outreach efforts to continuously improve the value that PeeringDB delivers to the networks registered with PeeringDB, and the broader community.","title":"Scope"},{"location":"committee/product/charter/#out-of-scope","text":"The PC does not drive PeeringDB improvements related to the administrative interfaces & functions used by the PeeringDB Admin Committee. The PC does not consider PeeringDB improvements related to the server, storage, hosting or network infrastructure.","title":"Out of scope"},{"location":"committee/product/charter/#deliverables","text":"Gather inputs from stakeholders regarding the evolution of PeeringDB in terms of product features and overall long term objectives. Formulate the long term objectives and validate them with the PeeringDB Board and the members of the PeeringDB Governance mailing list. Document and maintain workflow process to handle requests and issues. Maintain the product roadmap and feature request backlog and makes them publicly accessible. Create and maintain PeeringDB product documentation and presentation materials. Develop market outreach and evangelization to increase the uptake of PeeringDB use and improve data quality. Propose new features or enhancements based on the long term objectives and validates significant product evolutions with key stakeholders.","title":"Deliverables"},{"location":"committee/product/charter/#collaboration","text":"The PC shall work with other PeeringDB committees to ensure an equitable division of development resources in recognition of the volunteer efforts that are ensuring the daily operations.","title":"Collaboration"},{"location":"committee/product/charter/#participation","text":"The PeeringDB Product Committee members serve a 2 years renewable term, potential volunteers may submit their candidacy to the PeeringDB Board. The product committee will select their own Chair and Vice Chair by simple majority vote. The Board may add or remove members at any time it deems necessary.","title":"Participation"},{"location":"committee/product/charter/#communication","text":"Questions and suggestions for the Product Committee can be sent to productcom@lists.peeringdb.com The committee will use a range of mechanisms for communication and community input gathering efforts, including the PeeringDB Governance Mailinglist pdb-gov@lists.peeringdb.com Decisions, including their rationale, will be documented in GitHub issues All issues and the product roadmap and feature backlog can be found at in GitHub issues","title":"Communication"},{"location":"committee/product/charter/#decision-policy","text":"Product Committee members will decide by simple majority vote on contested issues called by the Product Committee Chair. PeeringDB Common Committee Charter Provisions:","title":"Decision policy"},{"location":"committee/product/charter/#dispute-resolution","text":"If the committee handles an issue in a manner in which a user believes that their view has not been adequately considered, their first action should be to raise the concern with the Committee Chair for further consideration. If the dispute is between the user and the Committee Chair then the issue may alternatively be raised with the Committee Vice Chair. If the dispute cannot be resolved the matter may be brought forward to the PeeringDB Board. The decision by the PeeringDB Board shall be final.","title":"Dispute resolution"},{"location":"committee/product/charter/#committee-chair-and-vice-chair","text":"The committee elects their Chair and Vice Chair from among their members, subject to PeeringDB Board approval. The Chair and Vice Chair work as a team and distribute the workload between themselves as they deem appropriate. Decisions should be unanimous, however the final decision on any matter is with the Chair. In case the Chair becomes unavailable, the Vice Chair may assume the position of Acting Chair. If the Chair or Vice Chair become permanently unavailable, replacement(s) are elected from the remaining committee members, subject to PeeringDB Board approval.","title":"Committee Chair and Vice Chair"},{"location":"committee/product/workflow/","text":"Decision making process and workflow Product Committee members are responsible for driving the development of PeeringDB. To do this, GitHub issues are used to track proposed and in progress work. Product Committee members play two roles in driving forward work: 1) As a shepherd - responsible for driving consensus for a given issue 2) As a stakeholder - voting on a consensus that has been reached Each Product Committee member will choose issues to shepherd to a decision. They will indicate responsibility for this task by assigning the issue to themselves and placing it in the Decide queue. To decide whether we act on a given issue that has been reported, a stakeholder group will be formed. This group will consist of Product Committee members, who are responsible for representing the users of PeeringDB. A stakeholder group on a given issue must consist of at least three Product Committee members, including the shepherding member. Any Product Committee member can be a stakeholder in the decision on an issue. They become a stakeholder on a given issue by either commenting on the issue on GitHub or participating in discussion of the issue on the Product Committee Mailing list. It is up to the shepherding member to help reach a unanimous consensus within the stakeholder group on what should be done with the issue - including not acting on it. If and only if there are opposing views on how to proceed, and unanimous consensus cannot be reached by the stakeholder committee members, decisions fall to the entire Product Committee (see below). The final proposal of how to resolve each issue, along with votes from stakeholders must be documented in the GitHub issue to be considered to have reached consensus. Product Committee members must document any offline discussion in the GitHub issue to ensure transparency of the discussion process. Issues in the Decide queue are regularly reviewed by the Product Committee to make sure the most impactful issues are being moved along to resolution. All issues in the Decide queue will be reviewed in the monthly Product Committee call to ensure stakeholders have reached consensus and to give members who have not participated in the issue an opportunity to participate. After an issue with consensus has been reviewed, Product Committee members who disagree with the proposal have five days after the monthly Product Committee call to vote against the proposed solution, otherwise the issue will move to the backlog. For any issues where consensus cannot be reached, an issue may move forward only if a quorum of 50% or more of the Product Committee has no more than 25% of the quorum in opposition to the issue.","title":"Workflow"},{"location":"committee/product/workflow/#decision-making-process-and-workflow","text":"Product Committee members are responsible for driving the development of PeeringDB. To do this, GitHub issues are used to track proposed and in progress work. Product Committee members play two roles in driving forward work: 1) As a shepherd - responsible for driving consensus for a given issue 2) As a stakeholder - voting on a consensus that has been reached Each Product Committee member will choose issues to shepherd to a decision. They will indicate responsibility for this task by assigning the issue to themselves and placing it in the Decide queue. To decide whether we act on a given issue that has been reported, a stakeholder group will be formed. This group will consist of Product Committee members, who are responsible for representing the users of PeeringDB. A stakeholder group on a given issue must consist of at least three Product Committee members, including the shepherding member. Any Product Committee member can be a stakeholder in the decision on an issue. They become a stakeholder on a given issue by either commenting on the issue on GitHub or participating in discussion of the issue on the Product Committee Mailing list. It is up to the shepherding member to help reach a unanimous consensus within the stakeholder group on what should be done with the issue - including not acting on it. If and only if there are opposing views on how to proceed, and unanimous consensus cannot be reached by the stakeholder committee members, decisions fall to the entire Product Committee (see below). The final proposal of how to resolve each issue, along with votes from stakeholders must be documented in the GitHub issue to be considered to have reached consensus. Product Committee members must document any offline discussion in the GitHub issue to ensure transparency of the discussion process. Issues in the Decide queue are regularly reviewed by the Product Committee to make sure the most impactful issues are being moved along to resolution. All issues in the Decide queue will be reviewed in the monthly Product Committee call to ensure stakeholders have reached consensus and to give members who have not participated in the issue an opportunity to participate. After an issue with consensus has been reviewed, Product Committee members who disagree with the proposal have five days after the monthly Product Committee call to vote against the proposed solution, otherwise the issue will move to the backlog. For any issues where consensus cannot be reached, an issue may move forward only if a quorum of 50% or more of the Product Committee has no more than 25% of the quorum in opposition to the issue.","title":"Decision making process and workflow"},{"location":"howto/api_keys/","text":"HOWTO: Get Started with API Keys 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. API What is our API? An Application Programming Interface (API) is a way for computer software to communicate with other computers software. Our API allows PeeringDB users to query and update PeeringDB programmatically. That means they can automate work instead of using the website. What Are API keys? An API key is a secret token for identifying and authenticating a user. That user can be an individual or an organization. That\u2019s why we support both user and organizational API keys. PeeringDB offers API keys for authenticating API requests. There are two main forms of API keys: User-level Organizational-level User-level API keys These API keys are tied to an individual user account and can be created from the user profile page. There are only two permission levels: a normal key will mirror the same permissions of the user, while a readonly key will have read only permissions to all the same namespaces as the user. Organization-level API keys These API keys are created and revoked from the organization admin panel. Each key gets its own custom permissions, which can be modified from the API Key Permissions panel. Each key must have an email attached to it. This is because keys may be allowed to create and modify data in PeeringDB, and we need a contact to reach out to in case of questions. You should use an organization-level API key for automation that should not be tied to individual users. Copy or write down keys immediately The full API key string is only ever exposed to the user or organization at its moment of creation . If this string is lost, then the user or organization should revoke that key and create and permission a new one. Command line example using Python and requests API keys allow developers to interact with their PeeringDB account programmatically, rather than through the website. Here is an example script in Python. It uses the module Requests to GET data about a particular Facility, and then sends a PUT request to modify that data. This example assumes we have an environment variable set with our API key. To do that from the command line, we can run: export API_KEY=\"[created api key string]\" Then the Python script would look like the following. First we get the API key from the environment: import os import requests API_KEY = os.environ.get(\"API_KEY\") We set the url for the Facility we want to interact with. Note the /api in the URL, which signals we are making calls to the REST API. URL = \"https://www.peeringdb.com/api/fac/1\" We set the headers to include our API key as authorization. Printing the headers variable should allow us to see the API key. headers = {\"Authorization\": \"Api-Key \" + API_KEY} print(headers) First we make a GET request, to simply get data about example Facility number 1 response = requests.get(URL, headers=headers) data = response.json()[\"data\"][0] print(data) Printing this data allows us to see what fields we would like to change. Let's say we decide to change the name of this facility. We overwrite the value for key \"name\" data[\"name\"] = \"Newly decided name\" Then we use a PUT request to send that modified data back to PeeringDB. Note that this time, we must provide data to the API, using the keyword argument \"data\" put_response = requests.put(URL, headers=headers, data=data) We can print the status code to see if our request was successful. print(put_response.status_code) This will return a code 200 to signal success. Additionally the content of the request should include data for the now modified Facility print(put_response.json()) Would return a dictionary of the values of the now modified Facility. Command line example using curl API keys provide a cleaner way to authenticate API requests. PeeringDB recommends the command line user creates a API_KEY variable like so export API_KEY=\"[created api key string]\" then requests can be made with Curl like in the following examples: GET The following request would return JSON data coresponding to the ChiX Internet Exchange. curl -H \"Authorization: Api-Key $API_KEY\" -H \"Content-Type: application/json\" -X GET https://www.peeringdb.com/api/ix/239 POST The following request would create a new Network under the organization United IX . curl -H \"Authorization: Api-Key $API_KEY\" -H \"Content-Type: application/json\" -X POST --data \"{\\\"\"org_id\"\\\":\\\"10843\\\", \\\"\"name\"\\\":\\\"Brand New Network\\\", \\\"\"asn\"\\\":\\\"63311\\\"}\" https://www.peeringdb.com/api/net PUT The following request would update the data about a particular Network, ChIX Route Servers , in particular changing the name to \"Edited Name\". curl -H \"Authorization: Api-Key $API_KEY\" -H \"Content-Type: application/json\" -X PUT --data \"{\\\"\"org_id\"\\\":\\\"10843\\\", \\\"\"name\"\\\":\\\"Edited Name\\\", \\\"\"asn\"\\\":\\\"33713\\\"}\" https://www.peeringdb.com/api/net/7889 DELETE The following request would delete the ChiX Internet Exchange. The API key holder would need delete privileges to that particular Exchange. curl -H \"Authorization: Api-Key $API_KEY\" -H \"Content-Type: application/json\" -X DELETE https://www.peeringdb.com/api/ix/239","title":"HOWTO: Get Started with API Keys"},{"location":"howto/api_keys/#howto-get-started-with-api-keys","text":"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.","title":"HOWTO: Get Started with API Keys"},{"location":"howto/api_keys/#api","text":"","title":"API"},{"location":"howto/api_keys/#what-is-our-api","text":"An Application Programming Interface (API) is a way for computer software to communicate with other computers software. Our API allows PeeringDB users to query and update PeeringDB programmatically. That means they can automate work instead of using the website.","title":"What is our API?"},{"location":"howto/api_keys/#what-are-api-keys","text":"An API key is a secret token for identifying and authenticating a user. That user can be an individual or an organization. That\u2019s why we support both user and organizational API keys. PeeringDB offers API keys for authenticating API requests. There are two main forms of API keys: User-level Organizational-level","title":"What Are API keys?"},{"location":"howto/api_keys/#user-level-api-keys","text":"These API keys are tied to an individual user account and can be created from the user profile page. There are only two permission levels: a normal key will mirror the same permissions of the user, while a readonly key will have read only permissions to all the same namespaces as the user.","title":"User-level API keys"},{"location":"howto/api_keys/#organization-level-api-keys","text":"These API keys are created and revoked from the organization admin panel. Each key gets its own custom permissions, which can be modified from the API Key Permissions panel. Each key must have an email attached to it. This is because keys may be allowed to create and modify data in PeeringDB, and we need a contact to reach out to in case of questions. You should use an organization-level API key for automation that should not be tied to individual users.","title":"Organization-level API keys"},{"location":"howto/api_keys/#copy-or-write-down-keys-immediately","text":"The full API key string is only ever exposed to the user or organization at its moment of creation . If this string is lost, then the user or organization should revoke that key and create and permission a new one.","title":"Copy or write down keys immediately"},{"location":"howto/api_keys/#command-line-example-using-python-and-requests","text":"API keys allow developers to interact with their PeeringDB account programmatically, rather than through the website. Here is an example script in Python. It uses the module Requests to GET data about a particular Facility, and then sends a PUT request to modify that data. This example assumes we have an environment variable set with our API key. To do that from the command line, we can run: export API_KEY=\"[created api key string]\" Then the Python script would look like the following. First we get the API key from the environment: import os import requests API_KEY = os.environ.get(\"API_KEY\") We set the url for the Facility we want to interact with. Note the /api in the URL, which signals we are making calls to the REST API. URL = \"https://www.peeringdb.com/api/fac/1\" We set the headers to include our API key as authorization. Printing the headers variable should allow us to see the API key. headers = {\"Authorization\": \"Api-Key \" + API_KEY} print(headers) First we make a GET request, to simply get data about example Facility number 1 response = requests.get(URL, headers=headers) data = response.json()[\"data\"][0] print(data) Printing this data allows us to see what fields we would like to change. Let's say we decide to change the name of this facility. We overwrite the value for key \"name\" data[\"name\"] = \"Newly decided name\" Then we use a PUT request to send that modified data back to PeeringDB. Note that this time, we must provide data to the API, using the keyword argument \"data\" put_response = requests.put(URL, headers=headers, data=data) We can print the status code to see if our request was successful. print(put_response.status_code) This will return a code 200 to signal success. Additionally the content of the request should include data for the now modified Facility print(put_response.json()) Would return a dictionary of the values of the now modified Facility.","title":"Command line example using Python and requests"},{"location":"howto/api_keys/#command-line-example-using-curl","text":"API keys provide a cleaner way to authenticate API requests. PeeringDB recommends the command line user creates a API_KEY variable like so export API_KEY=\"[created api key string]\" then requests can be made with Curl like in the following examples:","title":"Command line example using curl"},{"location":"howto/api_keys/#get","text":"The following request would return JSON data coresponding to the ChiX Internet Exchange. curl -H \"Authorization: Api-Key $API_KEY\" -H \"Content-Type: application/json\" -X GET https://www.peeringdb.com/api/ix/239","title":"GET"},{"location":"howto/api_keys/#post","text":"The following request would create a new Network under the organization United IX . curl -H \"Authorization: Api-Key $API_KEY\" -H \"Content-Type: application/json\" -X POST --data \"{\\\"\"org_id\"\\\":\\\"10843\\\", \\\"\"name\"\\\":\\\"Brand New Network\\\", \\\"\"asn\"\\\":\\\"63311\\\"}\" https://www.peeringdb.com/api/net","title":"POST"},{"location":"howto/api_keys/#put","text":"The following request would update the data about a particular Network, ChIX Route Servers , in particular changing the name to \"Edited Name\". curl -H \"Authorization: Api-Key $API_KEY\" -H \"Content-Type: application/json\" -X PUT --data \"{\\\"\"org_id\"\\\":\\\"10843\\\", \\\"\"name\"\\\":\\\"Edited Name\\\", \\\"\"asn\"\\\":\\\"33713\\\"}\" https://www.peeringdb.com/api/net/7889","title":"PUT"},{"location":"howto/api_keys/#delete","text":"The following request would delete the ChiX Internet Exchange. The API key holder would need delete privileges to that particular Exchange. curl -H \"Authorization: Api-Key $API_KEY\" -H \"Content-Type: application/json\" -X DELETE https://www.peeringdb.com/api/ix/239","title":"DELETE"},{"location":"howto/authenticate/","text":"HOWTO: Authenticate to PeeringDB This article explains the authentication mechanisms we offer. It also explains how organizations can apply policies for their affiliated users. Why authenticate? You don't need to login to make single queries to PeeringDB. But some features do require you to authenticate. Update the database If you want to make updates then you need to authenticate. You can update PeeringDB via the API if you want. So you can either login to the website to make changes, or automate them with tools if you prefer. Access contact data We encourage you to publish contact information for your facility, IXP, or network. You can choose to make contact information public but many organizations limit it to other PeeringDB users. So you\u2019ll need to authenticate if you want access to most contact information. Higher query limits Authenticated users are allowed more frequent API queries. They are also able to repeat an identical API query more frequently without being throttled. Help PeeringDB\u2019s operations team If you authenticate when you send queries, we can contact you if your PeeringDB use starts to cause an unexpected problem. If you don\u2019t authenticate then all we can do is restrict queries from your IP address. Password You can use password authentication. We recommend adding MFA to password authentication. Multi-factor authentication We support two MFA methods. You can either use a time-based one-time password, as defined in RFC 6238 or a FIDO U2F hardware token. You can configure these in your account profile. 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. We have a guide to implementing PeeringDB's OAuth service for your application. Automating PeeringDB access API keys We support both user and organizational API keys. You should use organizational API keys when you don't want to tie your application to an individual. We have a detailed guide on how to create, configure, and use API keys. Authentication HTTP header The HTTP authentication header must use the same character set the connection is using. This example shows a request and HTTP response: $ curl -v -sG https://www.peeringdb.com/api/net/416 -H 'Authorization: Api-Key example.valid_apikey' 2>&1 | grep \\<\\ HTTP < HTTP/2 200 This example shows what happens if the API key is not authorized: $ curl -v -sG https://www.peeringdb.com/api/net/416 -H 'Authorization: Api-Key example.invalid_apikey' 2>&1 | grep \\<\\ HTTP < HTTP/2 401 Canonical URL The canonical URL for PeeringDB is https://www.peeringdb.com . There is a redirect from https://peeringdb.com but we strongly encourage use of the canonical URL since industry practice in software packages is to drop the authentication header upon redirect, as a safety precaution. Password authentication Using an API key for command line access is simple and more secure. Our guide on API keys explains how to create and manage keys, including setting read-only permissions, with examples.","title":"HOWTO: Authenticate to PeeringDB"},{"location":"howto/authenticate/#howto-authenticate-to-peeringdb","text":"This article explains the authentication mechanisms we offer. It also explains how organizations can apply policies for their affiliated users.","title":"HOWTO: Authenticate to PeeringDB"},{"location":"howto/authenticate/#why-authenticate","text":"You don't need to login to make single queries to PeeringDB. But some features do require you to authenticate.","title":"Why authenticate?"},{"location":"howto/authenticate/#update-the-database","text":"If you want to make updates then you need to authenticate. You can update PeeringDB via the API if you want. So you can either login to the website to make changes, or automate them with tools if you prefer.","title":"Update the database"},{"location":"howto/authenticate/#access-contact-data","text":"We encourage you to publish contact information for your facility, IXP, or network. You can choose to make contact information public but many organizations limit it to other PeeringDB users. So you\u2019ll need to authenticate if you want access to most contact information.","title":"Access contact data"},{"location":"howto/authenticate/#higher-query-limits","text":"Authenticated users are allowed more frequent API queries. They are also able to repeat an identical API query more frequently without being throttled.","title":"Higher query limits"},{"location":"howto/authenticate/#help-peeringdbs-operations-team","text":"If you authenticate when you send queries, we can contact you if your PeeringDB use starts to cause an unexpected problem. If you don\u2019t authenticate then all we can do is restrict queries from your IP address.","title":"Help PeeringDB\u2019s operations team"},{"location":"howto/authenticate/#password","text":"You can use password authentication. We recommend adding MFA to password authentication.","title":"Password"},{"location":"howto/authenticate/#multi-factor-authentication","text":"We support two MFA methods. You can either use a time-based one-time password, as defined in RFC 6238 or a FIDO U2F hardware token. You can configure these in your account profile.","title":"Multi-factor authentication"},{"location":"howto/authenticate/#oauth","text":"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. We have a guide to implementing PeeringDB's OAuth service for your application.","title":"OAuth"},{"location":"howto/authenticate/#automating-peeringdb-access","text":"","title":"Automating PeeringDB access"},{"location":"howto/authenticate/#api-keys","text":"We support both user and organizational API keys. You should use organizational API keys when you don't want to tie your application to an individual. We have a detailed guide on how to create, configure, and use API keys.","title":"API keys"},{"location":"howto/authenticate/#authentication-http-header","text":"The HTTP authentication header must use the same character set the connection is using. This example shows a request and HTTP response: $ curl -v -sG https://www.peeringdb.com/api/net/416 -H 'Authorization: Api-Key example.valid_apikey' 2>&1 | grep \\<\\ HTTP < HTTP/2 200 This example shows what happens if the API key is not authorized: $ curl -v -sG https://www.peeringdb.com/api/net/416 -H 'Authorization: Api-Key example.invalid_apikey' 2>&1 | grep \\<\\ HTTP < HTTP/2 401","title":"Authentication HTTP header"},{"location":"howto/authenticate/#canonical-url","text":"The canonical URL for PeeringDB is https://www.peeringdb.com . There is a redirect from https://peeringdb.com but we strongly encourage use of the canonical URL since industry practice in software packages is to drop the authentication header upon redirect, as a safety precaution.","title":"Canonical URL"},{"location":"howto/authenticate/#password-authentication","text":"Using an API key for command line access is simple and more secure. Our guide on API keys explains how to create and manage keys, including setting read-only permissions, with examples.","title":"Password authentication"},{"location":"howto/enable_require_2fa/","text":"HOWTO: Turn on 2FA and Require Users to Enable It What is 2FA? 2FA is two-factor authentication. Enabling 2FA for PeeringDB means you must both have an account password and another factor. We support both TOTP and U2F tokens as additional factors. There are many popular software and hardware devices supporting these standards. How do users enable 2FA? Click on your account name. Then click on the green \"Manage Two-Factor Authentication\" box and follow the instructions. How do organizations require users to enable it? In the Manage panel at the bottom of the screen, select the Users tab and check the box \"Require users in your organization to enable 2FA.\"","title":"HOWTO: Turn on 2FA and Require Users to Enable It"},{"location":"howto/enable_require_2fa/#howto-turn-on-2fa-and-require-users-to-enable-it","text":"","title":"HOWTO: Turn on 2FA and Require Users to Enable It"},{"location":"howto/enable_require_2fa/#what-is-2fa","text":"2FA is two-factor authentication. Enabling 2FA for PeeringDB means you must both have an account password and another factor. We support both TOTP and U2F tokens as additional factors. There are many popular software and hardware devices supporting these standards.","title":"What is 2FA?"},{"location":"howto/enable_require_2fa/#how-do-users-enable-2fa","text":"Click on your account name. Then click on the green \"Manage Two-Factor Authentication\" box and follow the instructions.","title":"How do users enable 2FA?"},{"location":"howto/enable_require_2fa/#how-do-organizations-require-users-to-enable-it","text":"In the Manage panel at the bottom of the screen, select the Users tab and check the box \"Require users in your organization to enable 2FA.\"","title":"How do organizations require users to enable it?"},{"location":"howto/get-started-carrier/","text":"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. Why? PeeringDB is the interconnection database. Registering information about your carrier in PeeringDB makes it visible to IXPs and network operators who want to use your services to bring in peer or connect to other parts of their own network. Getting started Routine use of PeeringDB can be automated using our API but this document is intended to help new carrier administrators get started. Carriers 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 presence in PeeringDB and assumes you are using the web interface, which is available in 14 languages. If you need additional help getting started, please contact us at: support@peeringdb.com . What is a Carrier? The carrier object is used to describe providers offering L1 or L2 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. Information required You will need to create several database records, known as objects, to establish your presence in PeeringDB. Database objects organize relevant information. Most information is optional but sharing all the relevant information maximizes the benefit you get from listing in PeeringDB. You can create your entry with the minimum required data and add and update the information you share over time. To maximize the value of your entry in PeeringDB you\u2019ll probably want to include more than the minimum required information. Your company name is required. This information is not required but is useful: AKA - If your carrier has an alternative name you can show it here to improve visibility in searches Long name - If your carrier has a long name, you can show it here to improve visibility in searches Notes - this field, which supports Markdown , can be used to describe the characteristics of your carrier that would be most useful to PeeringDB users You can look at the information shared by other PeeringDB users to work out what your organization should be sharing. Database records to create User The org is the parent for the carrier but you will need to start the process by creating a user account. 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 The org object is your organization\u2019s 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 carrier object. Carrier Once you have created your organization you may add the carrier object. You do this by using the Add Carrier tab in the \u201cManage\u201d menu below your organization. You then click the edit button in the top right of the carrier screen and indicate which facilities your carrier has a presence in. The manager of the facility needs to approve the association. Next steps 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.","title":"HOWTO: Get Started with PeeringDB as a Carrier Operator"},{"location":"howto/get-started-carrier/#howto-get-started-with-peeringdb-as-a-carrier-operator","text":"","title":"HOWTO: Get Started with PeeringDB as a Carrier Operator"},{"location":"howto/get-started-carrier/#about-peeringdb","text":"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.","title":"About PeeringDB"},{"location":"howto/get-started-carrier/#why","text":"PeeringDB is the interconnection database. Registering information about your carrier in PeeringDB makes it visible to IXPs and network operators who want to use your services to bring in peer or connect to other parts of their own network.","title":"Why?"},{"location":"howto/get-started-carrier/#getting-started","text":"Routine use of PeeringDB can be automated using our API but this document is intended to help new carrier administrators get started. Carriers 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 presence in PeeringDB and assumes you are using the web interface, which is available in 14 languages. If you need additional help getting started, please contact us at: support@peeringdb.com .","title":"Getting started"},{"location":"howto/get-started-carrier/#what-is-a-carrier","text":"The carrier object is used to describe providers offering L1 or L2 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.","title":"What is a Carrier?"},{"location":"howto/get-started-carrier/#information-required","text":"You will need to create several database records, known as objects, to establish your presence in PeeringDB. Database objects organize relevant information. Most information is optional but sharing all the relevant information maximizes the benefit you get from listing in PeeringDB. You can create your entry with the minimum required data and add and update the information you share over time. To maximize the value of your entry in PeeringDB you\u2019ll probably want to include more than the minimum required information. Your company name is required. This information is not required but is useful: AKA - If your carrier has an alternative name you can show it here to improve visibility in searches Long name - If your carrier has a long name, you can show it here to improve visibility in searches Notes - this field, which supports Markdown , can be used to describe the characteristics of your carrier that would be most useful to PeeringDB users You can look at the information shared by other PeeringDB users to work out what your organization should be sharing.","title":"Information required"},{"location":"howto/get-started-carrier/#database-records-to-create","text":"","title":"Database records to create"},{"location":"howto/get-started-carrier/#user","text":"The org is the parent for the carrier but you will need to start the process by creating a user account. 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.","title":"User"},{"location":"howto/get-started-carrier/#org","text":"The org object is your organization\u2019s 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 carrier object.","title":"Org"},{"location":"howto/get-started-carrier/#carrier","text":"Once you have created your organization you may add the carrier object. You do this by using the Add Carrier tab in the \u201cManage\u201d menu below your organization. You then click the edit button in the top right of the carrier screen and indicate which facilities your carrier has a presence in. The manager of the facility needs to approve the association.","title":"Carrier"},{"location":"howto/get-started-carrier/#next-steps","text":"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.","title":"Next steps"},{"location":"howto/get-started-developing/","text":"HOWTO: Get Started with Developing for PeeringDB Technology We use Python with Django and MySQL. Django manages interaction with the database. We publish all our code on GitHub. We have documented how to set up our development environment. What to develop PeeringDB users can request features and report bugs by creating issues on GitHub . Review open issues to either find a project you\u2019d like to work on, or to see if there\u2019s an existing issue for the feature you want. If you want to develop a feature that has not been discussed on GitHub, you should either create an issue or contact us to discuss what you need. You can send a message to productcom@lists.peeringdb.com or contact any of the members of the Product Committee . If you want to develop code for an issue that has achieved consensus on GitHub, we suggest starting with issues labeled as \"Good first issue\". These are simple issues that will help you get a feel for PeeringDB. Style Before you start developing code look at how similar functions have been implemented. Use the same design as existing functions and develop unit tests for your code. We aim for 80% unit test coverage. You also need to run black on your code before submitting a pull request. We use black to ensure that all of our code has the same formatting. Reusing designs, developing unit tests, and using consistent formatting makes it easier for us to maintain the code over time. We keep the feature parity between the web interface and the API. A feature added to one needs to be added to the other. The implementation details documented in issues should be detailed enough to use as documentation for the web interface. Documentation is also needed for the API. The minimum we need for API documentation is an example of how to format the request and a pointer to the document section to update. Pull requests It's good to let us know which issues you are working on when you start work. It's also helpful if you include the issues being fixed in your pull request. Please include \"Fixes #issue\" for each issue addressed in your pull request. We can then close those issues when we deploy your code. What happens next? When you submit your pull request we will run continuous integration tests on the code. We'll also review it ourselves. We'll report on the output of the tests in comments on the pull request and let you know if you need to make any changes.","title":"HOWTO: Get Started with Developing for PeeringDB"},{"location":"howto/get-started-developing/#howto-get-started-with-developing-for-peeringdb","text":"","title":"HOWTO: Get Started with Developing for PeeringDB"},{"location":"howto/get-started-developing/#technology","text":"We use Python with Django and MySQL. Django manages interaction with the database. We publish all our code on GitHub. We have documented how to set up our development environment.","title":"Technology"},{"location":"howto/get-started-developing/#what-to-develop","text":"PeeringDB users can request features and report bugs by creating issues on GitHub . Review open issues to either find a project you\u2019d like to work on, or to see if there\u2019s an existing issue for the feature you want. If you want to develop a feature that has not been discussed on GitHub, you should either create an issue or contact us to discuss what you need. You can send a message to productcom@lists.peeringdb.com or contact any of the members of the Product Committee . If you want to develop code for an issue that has achieved consensus on GitHub, we suggest starting with issues labeled as \"Good first issue\". These are simple issues that will help you get a feel for PeeringDB.","title":"What to develop"},{"location":"howto/get-started-developing/#style","text":"Before you start developing code look at how similar functions have been implemented. Use the same design as existing functions and develop unit tests for your code. We aim for 80% unit test coverage. You also need to run black on your code before submitting a pull request. We use black to ensure that all of our code has the same formatting. Reusing designs, developing unit tests, and using consistent formatting makes it easier for us to maintain the code over time. We keep the feature parity between the web interface and the API. A feature added to one needs to be added to the other. The implementation details documented in issues should be detailed enough to use as documentation for the web interface. Documentation is also needed for the API. The minimum we need for API documentation is an example of how to format the request and a pointer to the document section to update.","title":"Style"},{"location":"howto/get-started-developing/#pull-requests","text":"It's good to let us know which issues you are working on when you start work. It's also helpful if you include the issues being fixed in your pull request. Please include \"Fixes #issue\" for each issue addressed in your pull request. We can then close those issues when we deploy your code.","title":"Pull requests"},{"location":"howto/get-started-developing/#what-happens-next","text":"When you submit your pull request we will run continuous integration tests on the code. We'll also review it ourselves. We'll report on the output of the tests in comments on the pull request and let you know if you need to make any changes.","title":"What happens next?"},{"location":"howto/get-started-exchange/","text":"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. 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. Getting started Routine use of PeeringDB can be automated using our API but this document is intended to help new exchange operators get started. Most exchange networks get set up using the web interface and then use the API to automate things that change regularly. This document focuses on the key steps for establishing your exchange\u2019s presence in PeeringDB and assumes you are using the web interface, which is available in 14 languages. If you need additional help getting started, please contact us at: support@peeringdb.com . Information required You will need to create several database records, known as objects, to establish your presence in PeeringDB. Database objects organize relevant information and document your exchange\u2019s current participants, making it attractive to new ones. Most information is optional but sharing all the relevant information maximises the benefit you get from listing in PeeringDB. You can create your entry with the minimum required data and add and update the information you share over time. To maximize the value of your entry in PeeringDB you\u2019ll probably want to include more than the minimum required information. This information is required: Company Name IPv4 and IPv6 Prefixes Contact information This information is not required but is useful: Facilities, where your service is available Link to traffic statistics Geographical information: city/country/continental region. That will help networks locate your exchange. 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. Database records to create User The org is the parent for the IX but you will need to start the process by creating a user account. 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 The org object is your organization\u2019s 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. Ix Once you have created your organization you may add the ix object. You do this by using the Add Exchange tab in the \u201cManage\u201d menu below your organization. You\u2019ll 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 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 if you would like to use another mask. The prefix information is used to verify connections from your participants. Next steps 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. Things to consider sharing: Encourage your exchange participants to add PeeringDB entries when they join, leave or upgrade the capacity they have with the exchange We recommend you automate the process of publishing details about networks that peer at your exchange using an IX-F JSON export . For that provide an URL at \u201cIX-F Member Export URL\u201d and enable the import. The visibility flag lets you set who is able to see your URL. And the \u201cPreview\u201d button pops a new window showing what actions the next import causes. Many networks are building automation that relies on PeeringDB. If networks peering at your exchange don't have an up to date PeeringDB record this might stop their automation configuring sessions. Use the \u201cMTU\u201d field to specify the MTU at your exchange. The field \u201cDOT1Q\u201d may go away, so it is not recommended to use it. More information The PeeringDB Data Ownership Policy describes all the objects in PeeringDB.","title":"HOWTO: Get Started with PeeringDB as an Exchange Operator"},{"location":"howto/get-started-exchange/#howto-get-started-with-peeringdb-as-an-exchange-operator","text":"","title":"HOWTO: Get Started with PeeringDB as an Exchange Operator"},{"location":"howto/get-started-exchange/#about-peeringdb","text":"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.","title":"About PeeringDB"},{"location":"howto/get-started-exchange/#why","text":"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.","title":"Why?"},{"location":"howto/get-started-exchange/#getting-started","text":"Routine use of PeeringDB can be automated using our API but this document is intended to help new exchange operators get started. Most exchange networks get set up using the web interface and then use the API to automate things that change regularly. This document focuses on the key steps for establishing your exchange\u2019s presence in PeeringDB and assumes you are using the web interface, which is available in 14 languages. If you need additional help getting started, please contact us at: support@peeringdb.com .","title":"Getting started"},{"location":"howto/get-started-exchange/#information-required","text":"You will need to create several database records, known as objects, to establish your presence in PeeringDB. Database objects organize relevant information and document your exchange\u2019s current participants, making it attractive to new ones. Most information is optional but sharing all the relevant information maximises the benefit you get from listing in PeeringDB. You can create your entry with the minimum required data and add and update the information you share over time. To maximize the value of your entry in PeeringDB you\u2019ll probably want to include more than the minimum required information. This information is required: Company Name IPv4 and IPv6 Prefixes Contact information This information is not required but is useful: Facilities, where your service is available Link to traffic statistics Geographical information: city/country/continental region. That will help networks locate your exchange. 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.","title":"Information required"},{"location":"howto/get-started-exchange/#database-records-to-create","text":"","title":"Database records to create"},{"location":"howto/get-started-exchange/#user","text":"The org is the parent for the IX but you will need to start the process by creating a user account. 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.","title":"User"},{"location":"howto/get-started-exchange/#org","text":"The org object is your organization\u2019s 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.","title":"Org"},{"location":"howto/get-started-exchange/#ix","text":"Once you have created your organization you may add the ix object. You do this by using the Add Exchange tab in the \u201cManage\u201d menu below your organization. You\u2019ll 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.","title":"Ix"},{"location":"howto/get-started-exchange/#prefixes","text":"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 if you would like to use another mask. The prefix information is used to verify connections from your participants.","title":"Prefixes"},{"location":"howto/get-started-exchange/#next-steps","text":"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. Things to consider sharing: Encourage your exchange participants to add PeeringDB entries when they join, leave or upgrade the capacity they have with the exchange We recommend you automate the process of publishing details about networks that peer at your exchange using an IX-F JSON export . For that provide an URL at \u201cIX-F Member Export URL\u201d and enable the import. The visibility flag lets you set who is able to see your URL. And the \u201cPreview\u201d button pops a new window showing what actions the next import causes. Many networks are building automation that relies on PeeringDB. If networks peering at your exchange don't have an up to date PeeringDB record this might stop their automation configuring sessions. Use the \u201cMTU\u201d field to specify the MTU at your exchange. The field \u201cDOT1Q\u201d may go away, so it is not recommended to use it.","title":"Next steps"},{"location":"howto/get-started-exchange/#more-information","text":"The PeeringDB Data Ownership Policy describes all the objects in PeeringDB.","title":"More information"},{"location":"howto/get-started-facility/","text":"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. 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. Getting started Routine use of PeeringDB can be automated using our API 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. If you need additional help getting started, please contact us at: support@peeringdb.com . Information required You will need to create several database records, known as objects, to establish your presence in PeeringDB. Database objects organize relevant information. Your facility\u2019s current participants can add their presence in your facility, making it attractive to others. Most information is optional but sharing all the relevant information maximizes the benefit you get from listing in PeeringDB. You can create your entry with the minimum required data and add and update the information you share over time. To maximize the value of your entry in PeeringDB you\u2019ll probably want to include more than the minimum required information. This information is required: Company Name Full street address This information is not required but is useful: AKA - If your facility has an alternative name you can show it here to improve visibility in searches Long name - If your facility has a long name, you can show it here to improve visibility in searches Floor - If your facility does not fill an entire building Suite - If your facility does not fill an entire building CLLI - this is a location code used in parts of the US telecommunications industry and is most useful to facilities located in the USA Notes - this field, which supports Markdown , can be used to describe the characteristics of your facility that would be most useful to PeeringDB users 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 The org is the parent for the facility but you will need to start the process by creating a user account. 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 The org object is your organization\u2019s 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. Facility Once you have created your organization you may add the facility object. You do this by using the Add Facility tab in the \u201cManage\u201d menu below your organization. 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 \u201cManage\u201d menu below your organization. PeeringDB relies on facility operators to decide whether their interconnected facilities should be listed as a campus. Facilities need to be within 50 kilometers of each other. The software enforces this limit to help users avoid configuration mistakes. Next steps 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. Things to consider sharing: 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. More information The PeeringDB Data Ownership Policy describes all the objects in PeeringDB.","title":"HOWTO: Get Started with PeeringDB as a Facility or Campus Operator"},{"location":"howto/get-started-facility/#howto-get-started-with-peeringdb-as-a-facility-or-campus-operator","text":"","title":"HOWTO: Get Started with PeeringDB as a Facility or Campus Operator"},{"location":"howto/get-started-facility/#about-peeringdb","text":"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.","title":"About PeeringDB"},{"location":"howto/get-started-facility/#why","text":"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.","title":"Why?"},{"location":"howto/get-started-facility/#getting-started","text":"Routine use of PeeringDB can be automated using our API 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. If you need additional help getting started, please contact us at: support@peeringdb.com .","title":"Getting started"},{"location":"howto/get-started-facility/#information-required","text":"You will need to create several database records, known as objects, to establish your presence in PeeringDB. Database objects organize relevant information. Your facility\u2019s current participants can add their presence in your facility, making it attractive to others. Most information is optional but sharing all the relevant information maximizes the benefit you get from listing in PeeringDB. You can create your entry with the minimum required data and add and update the information you share over time. To maximize the value of your entry in PeeringDB you\u2019ll probably want to include more than the minimum required information. This information is required: Company Name Full street address This information is not required but is useful: AKA - If your facility has an alternative name you can show it here to improve visibility in searches Long name - If your facility has a long name, you can show it here to improve visibility in searches Floor - If your facility does not fill an entire building Suite - If your facility does not fill an entire building CLLI - this is a location code used in parts of the US telecommunications industry and is most useful to facilities located in the USA Notes - this field, which supports Markdown , can be used to describe the characteristics of your facility that would be most useful to PeeringDB users You can look at the information shared by other facility managers to work out what your organization should be sharing.","title":"Information required"},{"location":"howto/get-started-facility/#database-records-to-create","text":"","title":"Database records to create"},{"location":"howto/get-started-facility/#user","text":"The org is the parent for the facility but you will need to start the process by creating a user account. 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.","title":"User"},{"location":"howto/get-started-facility/#org","text":"The org object is your organization\u2019s 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.","title":"Org"},{"location":"howto/get-started-facility/#facility","text":"Once you have created your organization you may add the facility object. You do this by using the Add Facility tab in the \u201cManage\u201d menu below your organization.","title":"Facility"},{"location":"howto/get-started-facility/#campus","text":"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 \u201cManage\u201d menu below your organization. PeeringDB relies on facility operators to decide whether their interconnected facilities should be listed as a campus. Facilities need to be within 50 kilometers of each other. The software enforces this limit to help users avoid configuration mistakes.","title":"Campus"},{"location":"howto/get-started-facility/#next-steps","text":"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. Things to consider sharing: 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.","title":"Next steps"},{"location":"howto/get-started-facility/#more-information","text":"The PeeringDB Data Ownership Policy describes all the objects in PeeringDB.","title":"More information"},{"location":"howto/get-started-operator/","text":"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. 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? Almost one-third 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\u2019ll be able to confidently find information about networks looking to interconnect, where and how to connect with them, and they\u2019ll 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. Many networks are building automation that relies on PeeringDB. If you don't have an up to date PeeringDB record this might stop their automation configuring sessions. Getting started Routine use of PeeringDB can be automated using our API but this document is intended to help new networks get started. Most networks get set up using the web interface and then use the API to automate things that change regularly. This document focuses on the key steps for establishing your network\u2019s presence in PeeringDB and assumes you are using the web interface, which is available in 14 languages. If you need additional help getting started, please contact us at: support@peeringdb.com . Information required You will need to create several database records, known as objects, to establish your presence in PeeringDB. Database objects organize relevant information and document the connections making your network attractive to potential peers. Most information is optional but the less you share the less likely your network will benefit from listing itself in PeeringDB. You can create your entry with the minimum required data and add and update the information you share over time. To maximize the value of your entry in PeeringDB you\u2019ll probably want to include more than the minimum required information. This information is required: Company name AS number Contact information (mandatory for networks with a connection to an Internet Exchange) This information is not required but is useful: IRR information Network type Network operational area (so-called geographic scope) 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 formatting for the notes to make them more readable. User 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\u2019s ASN so that we can automatically validate your affiliation with the network. 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 The org object is your organization\u2019s 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 Basic network information is automatically retrieved from the RIR or NIR\u2019s 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 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 Maintenance NOC Policy Public Relations Sales Technical The information for each type of contact is the same, with optional telephone numbers, e-mail addresses, and URLs. Visibility of the POC information can be different for each POC. Each of the POCs associated with your network can have different visibility permissions. The options are: Users (meaning that only other PeeringDB users can see the POC), and Public (meaning that the record is shown to anonymous users as well as authenticated users). Some organizations will want to make their Abuse, Public Relations, and/or Sales POCs Public but limit the visibility of other POCs to authenticated Users . If your network will be present at Public Peering Exchange Points you can grant them permission to add and modify entries for your network via their ixp_member data . You grant permission using the \u201cAllow IXP Update\u201d box, which will show when you add a Public Peering Exchange Point. Next steps This short document describes the first steps for getting set up in PeeringDB. Once you have established your presence you should consider sharing information with current and potential peers about your network(s). Things to consider sharing: We recommend you include the name of your AS-SET or ROUTE-SET if you have multiple net objects. Edit your network object to provide information about your routing policy, traffic ratios and more. What is the maximum number of IPv4 and/or IPv6 prefixes should peers expect to see advertised by your network? You can use the info_prefixes4 and info_prefixes6 with integer values to share this information. How much traffic crosses your network and in which direction? You can share this information using the info_traffic and info_ratio attributes in your net object. You can enter numbers or pre-defined ranges for both attributes. Do you have a peering policy? If you do you can use the various policy attributes on your net object to communicate it to potential peers. More information The PeeringDB Data Ownership Policy describes all the objects in PeeringDB.","title":"HOWTO: Get Started with PeeringDB as a Network Operator"},{"location":"howto/get-started-operator/#howto-get-started-with-peeringdb-as-a-network-operator","text":"","title":"HOWTO: Get Started with PeeringDB as a Network Operator"},{"location":"howto/get-started-operator/#about-peeringdb","text":"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.","title":"About PeeringDB"},{"location":"howto/get-started-operator/#why-should-i-add-my-network","text":"Almost one-third 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\u2019ll be able to confidently find information about networks looking to interconnect, where and how to connect with them, and they\u2019ll 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. Many networks are building automation that relies on PeeringDB. If you don't have an up to date PeeringDB record this might stop their automation configuring sessions.","title":"Why should I add my network?"},{"location":"howto/get-started-operator/#getting-started","text":"Routine use of PeeringDB can be automated using our API but this document is intended to help new networks get started. Most networks get set up using the web interface and then use the API to automate things that change regularly. This document focuses on the key steps for establishing your network\u2019s presence in PeeringDB and assumes you are using the web interface, which is available in 14 languages. If you need additional help getting started, please contact us at: support@peeringdb.com .","title":"Getting started"},{"location":"howto/get-started-operator/#information-required","text":"You will need to create several database records, known as objects, to establish your presence in PeeringDB. Database objects organize relevant information and document the connections making your network attractive to potential peers. Most information is optional but the less you share the less likely your network will benefit from listing itself in PeeringDB. You can create your entry with the minimum required data and add and update the information you share over time. To maximize the value of your entry in PeeringDB you\u2019ll probably want to include more than the minimum required information. This information is required: Company name AS number Contact information (mandatory for networks with a connection to an Internet Exchange) This information is not required but is useful: IRR information Network type Network operational area (so-called geographic scope) 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.","title":"Information required"},{"location":"howto/get-started-operator/#database-records-to-create","text":"Some objects have a notes field to share additional information. You can use Markdown formatting for the notes to make them more readable.","title":"Database records to create"},{"location":"howto/get-started-operator/#user","text":"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\u2019s ASN so that we can automatically validate your affiliation with the network. 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.","title":"User"},{"location":"howto/get-started-operator/#org","text":"The org object is your organization\u2019s 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.","title":"Org"},{"location":"howto/get-started-operator/#net","text":"Basic network information is automatically retrieved from the RIR or NIR\u2019s 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","title":"Net"},{"location":"howto/get-started-operator/#permissions-to-grant","text":"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 Maintenance NOC Policy Public Relations Sales Technical The information for each type of contact is the same, with optional telephone numbers, e-mail addresses, and URLs. Visibility of the POC information can be different for each POC. Each of the POCs associated with your network can have different visibility permissions. The options are: Users (meaning that only other PeeringDB users can see the POC), and Public (meaning that the record is shown to anonymous users as well as authenticated users). Some organizations will want to make their Abuse, Public Relations, and/or Sales POCs Public but limit the visibility of other POCs to authenticated Users . If your network will be present at Public Peering Exchange Points you can grant them permission to add and modify entries for your network via their ixp_member data . You grant permission using the \u201cAllow IXP Update\u201d box, which will show when you add a Public Peering Exchange Point.","title":"Permissions to grant"},{"location":"howto/get-started-operator/#next-steps","text":"This short document describes the first steps for getting set up in PeeringDB. Once you have established your presence you should consider sharing information with current and potential peers about your network(s). Things to consider sharing: We recommend you include the name of your AS-SET or ROUTE-SET if you have multiple net objects. Edit your network object to provide information about your routing policy, traffic ratios and more. What is the maximum number of IPv4 and/or IPv6 prefixes should peers expect to see advertised by your network? You can use the info_prefixes4 and info_prefixes6 with integer values to share this information. How much traffic crosses your network and in which direction? You can share this information using the info_traffic and info_ratio attributes in your net object. You can enter numbers or pre-defined ranges for both attributes. Do you have a peering policy? If you do you can use the various policy attributes on your net object to communicate it to potential peers.","title":"Next steps"},{"location":"howto/get-started-operator/#more-information","text":"The PeeringDB Data Ownership Policy describes all the objects in PeeringDB.","title":"More information"},{"location":"howto/make-a-security-report/","text":"HOWTO: Report a Security Issue to PeeringDB PeeringDB works hard to keep its systems and data as secure as possible. If you are a security researcher and have discovered a security vulnerability in one of our services, we appreciate your help in disclosing it to us in a responsible manner. Our responsible disclosure policy is not an invitation to actively hack and potentially disrupt our system and services. We reserve the right to sue researchers for penetrating or attempting to penetrate our systems. PeeringDB does not permit the following types of security research While we encourage you to discover and report to us any vulnerabilities you find in a responsible manner, the following conduct is prohibited: Performing actions that may negatively affect PeeringDB or its users (e.g. any form of Denial of Service attacks) Accessing, or attempting to access, data or information that does not belong to you Destroying or corrupting, or attempting to destroy or corrupt, data or information that does not belong to you Conducting any kind of physical or electronic attack on PeeringDB personnel, property or data centers Using social engineering to target any PeeringDB team member Violating any laws or breaching any agreements to discover vulnerabilities Scope of the network The following is in scope: The www.peeringdb.com website and any of its sub-domains, services, APIs and infrastructure. Any (internet-facing) infrastructure owned and operated by PeeringDB. Exclusions The following list of issues have already been reported to our Security team, reviewed, and deemed out of scope for the purposes of this program. Please do not report any of the following classes of issues. Unless there are exceptional circumstances or novel attacks, these issues will be rejected: Missing, or not 'properly' configured SPF, DKIM or DMARC records. The presence of public services such as robots.txt or FTP. The availability of DNS zone transfers. Reports of old software versions without a working Proof of Concept of an exploit. This is not an exclusive list. If you report a vulnerability that has already been reported by someone else, we will let you know. In that case you are not eligible for our Security Hall of Fame or swag. What we request from you Please do not share the issue with others until it has been resolved. Please do not publish anything about the resolved issue unless this has been discussed with us. Email your findings to security@peeringdb.com. You may submit a notification under a pseudonym. Please provide enough information for us to reproduce the issue so that we can resolve it as soon as possible. Please delete all confidential information obtained through the vulnerability as soon as possible after reporting it. Please do this after consulting us to make sure that we can reproduce the issue. What we promise We will act with urgency and necessary resources to resolve the issue. We will strive to respond to your report within three business days with our evaluation of the report and an expected resolution date. We will handle your report with strict confidentiality and not pass on your personal details to third parties without your permission. After a major security issue has been solved, we will publish a report on our website explaining the vulnerability discovered and how we fixed it. If you agree to have your name used in the report, we will credit you. Note that we will only credit the first person that reported a specific vulnerability to us. After your vulnerability report is verified, the security team will inform you if you are eligible. We will send you a unique token of our gratitude, such as a personalized cup, hat, or hoodie. We do not issue monetary rewards for reported vulnerabilities.","title":"HOWTO: Report a Security Issue to PeeringDB"},{"location":"howto/make-a-security-report/#howto-report-a-security-issue-to-peeringdb","text":"PeeringDB works hard to keep its systems and data as secure as possible. If you are a security researcher and have discovered a security vulnerability in one of our services, we appreciate your help in disclosing it to us in a responsible manner. Our responsible disclosure policy is not an invitation to actively hack and potentially disrupt our system and services. We reserve the right to sue researchers for penetrating or attempting to penetrate our systems.","title":"HOWTO: Report a Security Issue to PeeringDB"},{"location":"howto/make-a-security-report/#peeringdb-does-not-permit-the-following-types-of-security-research","text":"While we encourage you to discover and report to us any vulnerabilities you find in a responsible manner, the following conduct is prohibited: Performing actions that may negatively affect PeeringDB or its users (e.g. any form of Denial of Service attacks) Accessing, or attempting to access, data or information that does not belong to you Destroying or corrupting, or attempting to destroy or corrupt, data or information that does not belong to you Conducting any kind of physical or electronic attack on PeeringDB personnel, property or data centers Using social engineering to target any PeeringDB team member Violating any laws or breaching any agreements to discover vulnerabilities","title":"PeeringDB does not permit the following types of security research"},{"location":"howto/make-a-security-report/#scope-of-the-network","text":"The following is in scope: The www.peeringdb.com website and any of its sub-domains, services, APIs and infrastructure. Any (internet-facing) infrastructure owned and operated by PeeringDB.","title":"Scope of the network"},{"location":"howto/make-a-security-report/#exclusions","text":"The following list of issues have already been reported to our Security team, reviewed, and deemed out of scope for the purposes of this program. Please do not report any of the following classes of issues. Unless there are exceptional circumstances or novel attacks, these issues will be rejected: Missing, or not 'properly' configured SPF, DKIM or DMARC records. The presence of public services such as robots.txt or FTP. The availability of DNS zone transfers. Reports of old software versions without a working Proof of Concept of an exploit. This is not an exclusive list. If you report a vulnerability that has already been reported by someone else, we will let you know. In that case you are not eligible for our Security Hall of Fame or swag.","title":"Exclusions"},{"location":"howto/make-a-security-report/#what-we-request-from-you","text":"Please do not share the issue with others until it has been resolved. Please do not publish anything about the resolved issue unless this has been discussed with us. Email your findings to security@peeringdb.com. You may submit a notification under a pseudonym. Please provide enough information for us to reproduce the issue so that we can resolve it as soon as possible. Please delete all confidential information obtained through the vulnerability as soon as possible after reporting it. Please do this after consulting us to make sure that we can reproduce the issue.","title":"What we request from you"},{"location":"howto/make-a-security-report/#what-we-promise","text":"We will act with urgency and necessary resources to resolve the issue. We will strive to respond to your report within three business days with our evaluation of the report and an expected resolution date. We will handle your report with strict confidentiality and not pass on your personal details to third parties without your permission. After a major security issue has been solved, we will publish a report on our website explaining the vulnerability discovered and how we fixed it. If you agree to have your name used in the report, we will credit you. Note that we will only credit the first person that reported a specific vulnerability to us. After your vulnerability report is verified, the security team will inform you if you are eligible. We will send you a unique token of our gratitude, such as a personalized cup, hat, or hoodie. We do not issue monetary rewards for reported vulnerabilities.","title":"What we promise"},{"location":"howto/manage-permissions/","text":"HOWTO: Manage User Permissions Do I need a PeeringDB account? You only need a PeeringDB user account if you want to do one of three things: Access contact information Create, update, or delete entries in PeeringDB Use PeeringDB to login to external services, using the PeeringDB OAuth service . If you just want to look up information about networks, exchanges, or facilities in PeeringDB, you can do that without an account using the web interface or the API . How can I manage permissions for users affiliated with my organization? Unless you want your users to manage parts of the data your organization publishes, they don\u2019t need to be affiliated with your organization. When you allow a user account to affiliate with your organization, you can delegate some permissions to it. You can delegate them permissions related to exchanges, facilities, and networks. For each type of entry you can delegate permissions to create, update, or delete. The table below shows an example for an affiliated user who has only been delegated permission to update the organization\u2019s net object. Create Update Delete Campus No No No Carriers No No No Exchanges No No No Facilities No No No Networks No Yes No Admin users for an organization can do all these things and can delegate granular permissions to users based on the needs of their organization. How do I give permissions to a user who is already affiliated with other organizations? User accounts can be associated with multiple organizations. For instance, a consultant could be associated with each of their client\u2019s organizations. Similarly, a large organization composed of several operating companies could have a different organization for each operating company in PeeringDB and have some users affiliated with those instead of trying to centralize control. The user just needs to request, and be granted affiliation with each organization whose data they will be updating in PeeringDB. How do I authenticate at external services using my PeeringDB account? If your organization operates a network and has the Autonomous System registered with PeeringDB, your users can use their PeeringDB accounts to authenticate at external services that have enabled PeeringDB\u2019s OAuth service. In mid-2021 about 150 applications had enabled PeeringDB OAuth. It is used to facilitate peering requests, use network telemetry services, and more.","title":"HOWTO: Manage User Permissions"},{"location":"howto/manage-permissions/#howto-manage-user-permissions","text":"","title":"HOWTO: Manage User Permissions"},{"location":"howto/manage-permissions/#do-i-need-a-peeringdb-account","text":"You only need a PeeringDB user account if you want to do one of three things: Access contact information Create, update, or delete entries in PeeringDB Use PeeringDB to login to external services, using the PeeringDB OAuth service . If you just want to look up information about networks, exchanges, or facilities in PeeringDB, you can do that without an account using the web interface or the API .","title":"Do I need a PeeringDB account?"},{"location":"howto/manage-permissions/#how-can-i-manage-permissions-for-users-affiliated-with-my-organization","text":"Unless you want your users to manage parts of the data your organization publishes, they don\u2019t need to be affiliated with your organization. When you allow a user account to affiliate with your organization, you can delegate some permissions to it. You can delegate them permissions related to exchanges, facilities, and networks. For each type of entry you can delegate permissions to create, update, or delete. The table below shows an example for an affiliated user who has only been delegated permission to update the organization\u2019s net object. Create Update Delete Campus No No No Carriers No No No Exchanges No No No Facilities No No No Networks No Yes No Admin users for an organization can do all these things and can delegate granular permissions to users based on the needs of their organization.","title":"How can I manage permissions for users affiliated with my organization?"},{"location":"howto/manage-permissions/#how-do-i-give-permissions-to-a-user-who-is-already-affiliated-with-other-organizations","text":"User accounts can be associated with multiple organizations. For instance, a consultant could be associated with each of their client\u2019s organizations. Similarly, a large organization composed of several operating companies could have a different organization for each operating company in PeeringDB and have some users affiliated with those instead of trying to centralize control. The user just needs to request, and be granted affiliation with each organization whose data they will be updating in PeeringDB.","title":"How do I give permissions to a user who is already affiliated with other organizations?"},{"location":"howto/manage-permissions/#how-do-i-authenticate-at-external-services-using-my-peeringdb-account","text":"If your organization operates a network and has the Autonomous System registered with PeeringDB, your users can use their PeeringDB accounts to authenticate at external services that have enabled PeeringDB\u2019s OAuth service. In mid-2021 about 150 applications had enabled PeeringDB OAuth. It is used to facilitate peering requests, use network telemetry services, and more.","title":"How do I authenticate at external services using my PeeringDB account?"},{"location":"howto/member_vote/","text":"HOWTO: Become a PeeringDB Member and Vote PeeringDB is a membership organization. We do not charge for membership. You become a member when you have data in PeeringDB and subscribe to our governance mailing list. When you are a member, you may attend Members\u2019 Meetings and vote in elections. How is PeeringDB governed? PeeringDB members elect our board. The board elects officers (President, Vice President, Secretary/Treasurer) and appoints committees. The board, the officers, the chairs of the committees, and the Product Manager are the PeeringDB Stewards. Non-board Stewards are responsible for keeping the board informed. The board and officers hold fiduciary responsibility for PeeringDB as a legal entity. How do I become a member? Make sure you have data in PeeringDB (see other HOWTOs ). Join the pdb-gov mailing list . You are now a member. How can I vote? Each member is entitled to one vote. Members who are affiliated with each other share a single vote. For instance, if Big Company owns Small Company they may only have one vote between them, not one vote each. At the start of the election process, the Secretary/Treasurer will ask each member to nominate a single authorized voter. The Secretary will send each authorized voter an invitation to vote. Can I join a committee? Yes! Volunteers run our committees. They are: Admin \u2013 provides support to our users Operations \u2013 keeps PeeringDB services running smoothly Outreach \u2013 keeps the interconnection community aware of PeeringDB activity Product \u2013 reviews and refines PeeringDB\u2019s product design If you want to join a committee, send a message to stewards@peeringdb.com . Where can I learn more? We publish detailed governance documentation and records on our governance website .","title":"HOWTO: Become a PeeringDB Member and Vote"},{"location":"howto/member_vote/#howto-become-a-peeringdb-member-and-vote","text":"PeeringDB is a membership organization. We do not charge for membership. You become a member when you have data in PeeringDB and subscribe to our governance mailing list. When you are a member, you may attend Members\u2019 Meetings and vote in elections.","title":"HOWTO: Become a PeeringDB Member and Vote"},{"location":"howto/member_vote/#how-is-peeringdb-governed","text":"PeeringDB members elect our board. The board elects officers (President, Vice President, Secretary/Treasurer) and appoints committees. The board, the officers, the chairs of the committees, and the Product Manager are the PeeringDB Stewards. Non-board Stewards are responsible for keeping the board informed. The board and officers hold fiduciary responsibility for PeeringDB as a legal entity.","title":"How is PeeringDB governed?"},{"location":"howto/member_vote/#how-do-i-become-a-member","text":"Make sure you have data in PeeringDB (see other HOWTOs ). Join the pdb-gov mailing list . You are now a member.","title":"How do I become a member?"},{"location":"howto/member_vote/#how-can-i-vote","text":"Each member is entitled to one vote. Members who are affiliated with each other share a single vote. For instance, if Big Company owns Small Company they may only have one vote between them, not one vote each. At the start of the election process, the Secretary/Treasurer will ask each member to nominate a single authorized voter. The Secretary will send each authorized voter an invitation to vote.","title":"How can I vote?"},{"location":"howto/member_vote/#can-i-join-a-committee","text":"Yes! Volunteers run our committees. They are: Admin \u2013 provides support to our users Operations \u2013 keeps PeeringDB services running smoothly Outreach \u2013 keeps the interconnection community aware of PeeringDB activity Product \u2013 reviews and refines PeeringDB\u2019s product design If you want to join a committee, send a message to stewards@peeringdb.com .","title":"Can I join a committee?"},{"location":"howto/member_vote/#where-can-i-learn-more","text":"We publish detailed governance documentation and records on our governance website .","title":"Where can I learn more?"},{"location":"howto/organizational_policy/","text":"HOWTO: Manage Organizational Policy Your organization can apply policies for its users in the Manage section of the organization profile. Restrict email domains You can set a policy that only allows users to affiliate when their email address uses a specific domain. You can set a list of the domains your organization allows. If users do not meet the policy when it is configured they will not lose their affiliation. You will be notified so you can manage the change with your users. A user with multiple email addresses associated with their account only needs one address to match. For instance, if the policy requires users to have an example.com address and the user has both an example.com and an example.net address, the user can affiliate. Periodic validation of user\u2019s contact information You can require users to validate the contact information for their PeeringDB user account. You set the time after which the validation process will be run. The default is 1 year but you can set it as short as 1 week. This options is managed in the same control panel shown in the image above. When an unvalidated user tries to login a link will be sent to their email address. They will need to go to that web page to validate their contact information before they can login. Some users are affiliated with multiple organizations. When this is the case, the link will be sent to the most suitable address for that organization. When a user is affiliated with multiple organizations, those organizations can set different revalidation periods. The user\u2019s affiliation is suspended at the end of the validation counter only for that organization. For example, Alice is affiliated to Example Networks and Example Facilities. Example Networks requires users to validate after 90 days but Example Facilities requires users to revalidate after a year. If Alice validates to both organizations on 1 January, she will remain a valid user for Example Facilities until the end of the year but will need to validate for Example Networks on 1 April. Multiple email addresses per user Users may have multiple email addresses associated with their account. They must select one address as the primary address and this will be used for notifications. This is managed in each user's own profile, which is located in the hamburger menu by the user's username. Each email address can only be associated with one user. When a user with multiple email addresses associated with their account wants to remove the primary address, they will have to select another address as the primary address.","title":"HOWTO: Manage Organizational Policy"},{"location":"howto/organizational_policy/#howto-manage-organizational-policy","text":"Your organization can apply policies for its users in the Manage section of the organization profile.","title":"HOWTO: Manage Organizational Policy"},{"location":"howto/organizational_policy/#restrict-email-domains","text":"You can set a policy that only allows users to affiliate when their email address uses a specific domain. You can set a list of the domains your organization allows. If users do not meet the policy when it is configured they will not lose their affiliation. You will be notified so you can manage the change with your users. A user with multiple email addresses associated with their account only needs one address to match. For instance, if the policy requires users to have an example.com address and the user has both an example.com and an example.net address, the user can affiliate.","title":"Restrict email domains"},{"location":"howto/organizational_policy/#periodic-validation-of-users-contact-information","text":"You can require users to validate the contact information for their PeeringDB user account. You set the time after which the validation process will be run. The default is 1 year but you can set it as short as 1 week. This options is managed in the same control panel shown in the image above. When an unvalidated user tries to login a link will be sent to their email address. They will need to go to that web page to validate their contact information before they can login. Some users are affiliated with multiple organizations. When this is the case, the link will be sent to the most suitable address for that organization. When a user is affiliated with multiple organizations, those organizations can set different revalidation periods. The user\u2019s affiliation is suspended at the end of the validation counter only for that organization. For example, Alice is affiliated to Example Networks and Example Facilities. Example Networks requires users to validate after 90 days but Example Facilities requires users to revalidate after a year. If Alice validates to both organizations on 1 January, she will remain a valid user for Example Facilities until the end of the year but will need to validate for Example Networks on 1 April.","title":"Periodic validation of user\u2019s contact information"},{"location":"howto/organizational_policy/#multiple-email-addresses-per-user","text":"Users may have multiple email addresses associated with their account. They must select one address as the primary address and this will be used for notifications. This is managed in each user's own profile, which is located in the hamburger menu by the user's username. Each email address can only be associated with one user. When a user with multiple email addresses associated with their account wants to remove the primary address, they will have to select another address as the primary address.","title":"Multiple email addresses per user"},{"location":"howto/peeringdb-py/","text":"HOWTO: Install peeringdb-py You can install peeringdb-py on a wide selection of operating systems. Users have installed it on several Linux distributions, macOS, and Windows Subsystem for Linux. It will give you a local version of PeeringDB\u2019s SQL database. Unlike the PeeringDB API, the SQL data structure might change without notice. Please do not build tools that make SQL queries. We suggest using our library to make API calls on your local cache. We maintain the library and commit to maintaining the API functionality, even if the underlying database structure changes. Please let us know if you find a query that is only possible with SQL and not via the API. Either create an issue in GitHub , or send a mail describing the problems to support@peeringdb.com . PeeringDB credentials You only need a PeeringDB account if you want to synchronize the contact information to your peeringdb-py cache. If you want to synchronize the whole database, including the contact data, you will need an API Key. If you are installing peeringdb-py for organizational use you should use an organizational API Key. You can use an API Key tied to a user account for personal use. We have a HOWTO guide for API Keys . Software requirements You must ensure these these packages are installed to install and use peeringdb-py : - git - pip - python - virtualenv You will also need to have a database installed. The configuration defaults to using SQLite. Database peeringdb-py \u2019s defaults to an SQLite3 database. You can choose to use a different database. If you want to do this you must adjust the database engine statement in the config.yaml , which is placed in your .peeringdb/config.yaml , which sits in your home directory. Whichever database you choose, it must use UTF-8 as the character set. Installation instructions for peeringdb-py Create a directory for peeringdb-py and go there mkdir ~/peeringdb-py && cd ~/peeringdb-py Create a virtual environment virtualenv --python=python3 pdbvenv Activate the virtual environment source pdbvenv/bin/activate Install peeringdb-py Run pip to install the local cache and Django. sh pip install --upgrade pip setuptools pip install peeringdb django-peeringdb # check for which version of django suits you # when in doubt use the LTS version from https://www.djangoproject.com/download/ pip install \"django>=3.2,<3.3\" Create a peeringdb-py configuration file peeringdb config set -n Edit your configuration edit [HOME]/.peeringdb/config.yaml . Make sure you adjust the directory name. Replace [HOME] with the relevant file path. Replace [CENSORED] with your own API Key, if you are authenticating. Remove [CENSORED] if you choose to remain anonymous. Anonymous users cannot see some contact information. orm: backend: django_peeringdb database: engine: sqlite3 host: '' name: [HOME]/peeringdb-py/peeringdb.sqlite3 password: '' port: 0 user: '' migrate: true secret_key: '' sync: api_key: [CENSORED] only: [] password: '' strip_tz: 1 timeout: 0 url: https://www.peeringdb.com/api user: '' Check that the software is installed This will confirm that peeringdb-py is running by showing you the software version: peeringdb --version You will see something like: peeringdb 1.2.1.1 This will confirm that Django is running by showing you the software version: django-admin --version You will see something like: 2.2.28 This will show that you have django-peeringdb installed and what version it is. pip freeze | grep django-peeringdb You will see something like this: django-peeringdb==2.14.1 Synchronize your new local cache This will synchronize your local cache with the server and tell you how long it took. time peeringdb sync You will see something like this: real 14m47.515s user 14m27.077s sys 0m1.939s If you wait and then synchronize again you'll get the changes since your initial sync. The process does not pull the full database, making it a very efficient update process. You will see a faster synchronization for updates than the initial pull. time peeringdb sync The times you see will look something like this: real 0m3.110s user 0m1.074s sys 0m0.088s Fetch private data The initial sync will happen from the public cache, which does not contain data that isn't available to unauthenticated requests, such as network contacts that are set to Users visibility. In order to fetch this data you can pass the --fetch-private argument. Note that you will need to have valid authentication set up for this (preferably with an API key), for example: peeringdb sync --fetch-private Automatically refreshing data You can schedule automatic database updates by creating an entry in your crontab. We recommend synchronizing every hour. You should not synchronize on the hour but offset at a random minute in the hour. This distributes users across the hour and reduces the burden on the server. This will open your default editor and allow you to create a scheduled task. crontab -e Place this entry in your crontab and save the file, changing [HOME] to the relevant file path. 00 * * * * sleep $[RANDOM\\%300] ; cd [HOME]/peeringdb-py ; touch peeringdb.sync.log ; date >> peeringdb.sync.log ; ./pdbvenv/bin/peeringdb sync >> peeringdb.sync.log 2>&1 Confirm what is scheduled: crontab -l Upgrade peeringdb-py to the latest version sh pip install --upgrade peeringdb django-peeringdb Example usage The SQL data structure might change without notice. Please do not build tools that make SQL queries. We suggest using our library to make API calls on your local cache. We maintain the library and commit to maintaining the API functionality, even if the underlying database structure changes.","title":"HOWTO: Install peeringdb-py"},{"location":"howto/peeringdb-py/#howto-install-peeringdb-py","text":"You can install peeringdb-py on a wide selection of operating systems. Users have installed it on several Linux distributions, macOS, and Windows Subsystem for Linux. It will give you a local version of PeeringDB\u2019s SQL database. Unlike the PeeringDB API, the SQL data structure might change without notice. Please do not build tools that make SQL queries. We suggest using our library to make API calls on your local cache. We maintain the library and commit to maintaining the API functionality, even if the underlying database structure changes. Please let us know if you find a query that is only possible with SQL and not via the API. Either create an issue in GitHub , or send a mail describing the problems to support@peeringdb.com .","title":"HOWTO: Install peeringdb-py"},{"location":"howto/peeringdb-py/#peeringdb-credentials","text":"You only need a PeeringDB account if you want to synchronize the contact information to your peeringdb-py cache. If you want to synchronize the whole database, including the contact data, you will need an API Key. If you are installing peeringdb-py for organizational use you should use an organizational API Key. You can use an API Key tied to a user account for personal use. We have a HOWTO guide for API Keys .","title":"PeeringDB credentials"},{"location":"howto/peeringdb-py/#software-requirements","text":"You must ensure these these packages are installed to install and use peeringdb-py : - git - pip - python - virtualenv You will also need to have a database installed. The configuration defaults to using SQLite.","title":"Software requirements"},{"location":"howto/peeringdb-py/#database","text":"peeringdb-py \u2019s defaults to an SQLite3 database. You can choose to use a different database. If you want to do this you must adjust the database engine statement in the config.yaml , which is placed in your .peeringdb/config.yaml , which sits in your home directory. Whichever database you choose, it must use UTF-8 as the character set.","title":"Database"},{"location":"howto/peeringdb-py/#installation-instructions-for-peeringdb-py","text":"","title":"Installation instructions for peeringdb-py"},{"location":"howto/peeringdb-py/#create-a-directory-for-peeringdb-py-and-go-there","text":"mkdir ~/peeringdb-py && cd ~/peeringdb-py","title":"Create a directory for peeringdb-py and go there"},{"location":"howto/peeringdb-py/#create-a-virtual-environment","text":"virtualenv --python=python3 pdbvenv","title":"Create a virtual environment"},{"location":"howto/peeringdb-py/#activate-the-virtual-environment","text":"source pdbvenv/bin/activate","title":"Activate the virtual environment"},{"location":"howto/peeringdb-py/#install-peeringdb-py","text":"Run pip to install the local cache and Django. sh pip install --upgrade pip setuptools pip install peeringdb django-peeringdb # check for which version of django suits you # when in doubt use the LTS version from https://www.djangoproject.com/download/ pip install \"django>=3.2,<3.3\"","title":"Install peeringdb-py"},{"location":"howto/peeringdb-py/#create-a-peeringdb-py-configuration-file","text":"peeringdb config set -n","title":"Create a peeringdb-py configuration file"},{"location":"howto/peeringdb-py/#edit-your-configuration","text":"edit [HOME]/.peeringdb/config.yaml . Make sure you adjust the directory name. Replace [HOME] with the relevant file path. Replace [CENSORED] with your own API Key, if you are authenticating. Remove [CENSORED] if you choose to remain anonymous. Anonymous users cannot see some contact information. orm: backend: django_peeringdb database: engine: sqlite3 host: '' name: [HOME]/peeringdb-py/peeringdb.sqlite3 password: '' port: 0 user: '' migrate: true secret_key: '' sync: api_key: [CENSORED] only: [] password: '' strip_tz: 1 timeout: 0 url: https://www.peeringdb.com/api user: ''","title":"Edit your configuration"},{"location":"howto/peeringdb-py/#check-that-the-software-is-installed","text":"This will confirm that peeringdb-py is running by showing you the software version: peeringdb --version You will see something like: peeringdb 1.2.1.1 This will confirm that Django is running by showing you the software version: django-admin --version You will see something like: 2.2.28 This will show that you have django-peeringdb installed and what version it is. pip freeze | grep django-peeringdb You will see something like this: django-peeringdb==2.14.1","title":"Check that the software is installed"},{"location":"howto/peeringdb-py/#synchronize-your-new-local-cache","text":"This will synchronize your local cache with the server and tell you how long it took. time peeringdb sync You will see something like this: real 14m47.515s user 14m27.077s sys 0m1.939s If you wait and then synchronize again you'll get the changes since your initial sync. The process does not pull the full database, making it a very efficient update process. You will see a faster synchronization for updates than the initial pull. time peeringdb sync The times you see will look something like this: real 0m3.110s user 0m1.074s sys 0m0.088s","title":"Synchronize your new local cache"},{"location":"howto/peeringdb-py/#fetch-private-data","text":"The initial sync will happen from the public cache, which does not contain data that isn't available to unauthenticated requests, such as network contacts that are set to Users visibility. In order to fetch this data you can pass the --fetch-private argument. Note that you will need to have valid authentication set up for this (preferably with an API key), for example: peeringdb sync --fetch-private","title":"Fetch private data"},{"location":"howto/peeringdb-py/#automatically-refreshing-data","text":"You can schedule automatic database updates by creating an entry in your crontab. We recommend synchronizing every hour. You should not synchronize on the hour but offset at a random minute in the hour. This distributes users across the hour and reduces the burden on the server. This will open your default editor and allow you to create a scheduled task. crontab -e Place this entry in your crontab and save the file, changing [HOME] to the relevant file path. 00 * * * * sleep $[RANDOM\\%300] ; cd [HOME]/peeringdb-py ; touch peeringdb.sync.log ; date >> peeringdb.sync.log ; ./pdbvenv/bin/peeringdb sync >> peeringdb.sync.log 2>&1 Confirm what is scheduled: crontab -l","title":"Automatically refreshing data"},{"location":"howto/peeringdb-py/#upgrade-peeringdb-py-to-the-latest-version","text":"sh pip install --upgrade peeringdb django-peeringdb","title":"Upgrade peeringdb-py to the latest version"},{"location":"howto/peeringdb-py/#example-usage","text":"The SQL data structure might change without notice. Please do not build tools that make SQL queries. We suggest using our library to make API calls on your local cache. We maintain the library and commit to maintaining the API functionality, even if the underlying database structure changes.","title":"Example usage"},{"location":"howto/run_development_container/","text":"HOWTO: Setup a PeeringDB Development Environment Install and run Docker PeeringDB runs inside a Docker container. Docker Compose is used to build both the PeeringDB container and a MySQL server container for testing. Make sure the docker and docker-compose commands are installed on your system, and that the Docker Engine is running. Docker Desktop for Mac/Windows (>=2.5.0.1) includes these tools and they are also available for various POSIX systems. Ensure that docker-compose version indicates at least version 1.25.4, and that docker version indicates Engine version at least 19.03.5 and does not report any connection errors to Docker Engine. Connection errors may indicate a need to start the engine. Fork the PeeringDB repository, clone it, set upstream Your development and experimentation with the PeeringDB code base should take place in a fork of the project . When you have improvements or fixes to share, you will be able to point other developers to your code, or submit a pull request. Navigate to https://github.com/peeringdb/peeringdb . In the top-right corner of the page, click Fork . On GitHub, navigate to your fork of the PeeringDB repository. Above the list of files, click Code . Copy the HTTPS URL. It will be something like: https://github.com/YOUR-USERNAME/peeringdb.git Perform the following: PDBHOME=~/src/peeringdb # Adjust as appropriate to your environment. mkdir -p $PDBHOME && cd $PDBHOME git clone https://github.com/YOUR-USERNAME/peeringdb.git cd $PDBHOME/peeringdb # Henceforth commands on this page assume you are in this working directory. git remote add upstream https://github.com/peeringdb/peeringdb.git git remote -v > origin https://github.com/YOUR-USERNAME/peeringdb.git (fetch) > origin https://github.com/YOUR-USERNAME/peeringdb.git (push) > upstream https://github.com/peeringdb/peeringdb.git (fetch) > upstream https://github.com/peeringdb/peeringdb.git (push) Keep your fork up-to-date with the upstream repository: https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/syncing-a-fork git fetch upstream git checkout master # or other branch you are working on git merge upstream/master Create environment variable override file Environment variables for the server config can be added in Ctl/dev/.env . This file can be empty which will make the django SECRET_KEY ephemeral, but the file does need to exist. Empty file: touch Ctl/dev/.env Alternatively, create a SECRET_KEY using uuidgen or replace with something similar on your system: echo SECRET_KEY=\\\"$(uuidgen)\\\" > Ctl/dev/.env If you are serving from anywhere but localhost you will also need to specify the SESSION_COOKIE_DOMAIN echo \"SESSION_COOKIE_DOMAIN=example.com\" >> Ctl/dev/.env If you want to enable OIDC's JWT RS256 token signing, you need to specify the file with the RSA secret key found inside the container with the OIDC_RSA_PRIVATE_KEY_ACTIVE_PATH variable. You can create the key with open ssl and place it in Ctl/dev/jwks/filename.key or let the build system auto generated from the path specified with the variable. echo \"OIDC_RSA_PRIVATE_KEY_ACTIVE_PATH=/srv/www.peeringdb.com/var/jwks/oidc.key\" >> Ctl/dev/.env Build the container and set up your developement instance ./Ctl/dev/compose.sh build peeringdb ./Ctl/dev/compose.sh up -d database ./Ctl/dev/run.sh migrate # Re-run if there are errors. The database may not yet have started. ./Ctl/dev/run.sh loaddata fixtures/initial_data.json ./Ctl/dev/run.sh createsuperuser ./Ctl/dev/run.sh createcachetable ./Ctl/dev/compose.sh up -d peeringdb On some docker versions build can fail with a ERROR: Service 'peeringdb' failed to build: failed to export image: failed to create image: failed to get layer error. Simply running it again should fix the issue. If you want a copy of the current public production data, run this command which often takes more than 15 minutes: ./Ctl/dev/run.sh pdb_load_data --commit After it is done you should have a PeeringDB instance exposed on port :8000 : http://localhost:8000/ (should you want to change this port you can do so by setting the environment variable DJANGO_PORT ) Migration notes Organization management of OAuth applications Once migration 0085 has been applied you should override the OAUTH2_PROVIDER_APPLICATION_MODEL environment variable to \"peeringdb_server.OAuthApplication\" in order to enable organization management of oauth applications. Warning: Overriding before migration 0085 has been applied will result in the following migration error and a broken migration state. Related model 'peeringdb_server.oauthapplication` cannot be resolved Stop and start the containers ./Ctl/dev/compose.sh down ./Ctl/dev/compose.sh up -d Environment variables Edit Ctl/dev/.env and then stop and start the containers. PDB_NO_MIGRATE : If set to anything, will skip migrations when running the uwsgi command, otherwise, migrations will always be applied first thing while running uwsgi . DATABASE_ENGINE default \"mysql\" DATABASE_HOST default \"127.0.0.1\" DATABASE_PORT default \"\" DATABASE_NAME default \"peeringdb\" DATABASE_USER default \"peeringdb\" DATABASE_PASSWORD default \"\" EMAIL_HOST default \"localhost\" EMAIL_PORT default \"25\" EMAIL_HOST_USERHOST default \"\" EMAIL_HOST_PASSWORD default \"\" Mount points /srv/www.peeringdb.com/api-cache : api cache /srv/www.peeringdb.com/locale : translations /srv/www.peeringdb.com/mainsite : site settings /srv/www.peeringdb.com/media : media files /srv/www.peeringdb.com/peeringdb_server : server code /srv/www.peeringdb.com/static : static files /srv/www.peeringdb.com/var/log : log files Entry point With the exception of some specific commands (see below) the entry point will pass directly to django's manage script. ./Ctl/dev/run.sh help Other options: migrate apply database migrations run_tests run unit tests uwsgi start the uwsgi process /bin/sh to drop to shell inetd run the inetd whois server Contributing your code After testing and carefully code-reviewing your changes, commit and push them to your repository. You can then share the changes with other developers, such as those on the pdb-tech@lists.peeringdb.com mailing list: https://lists.peeringdb.com/cgi-bin/mailman/listinfo/pdb-tech . When ready to contribute the change to the project, create a pull request to the main repository along with a description of your goals for the change and/or what you are fixing.","title":"HOWTO: Setup a PeeringDB Development Environment"},{"location":"howto/run_development_container/#howto-setup-a-peeringdb-development-environment","text":"","title":"HOWTO: Setup a PeeringDB Development Environment"},{"location":"howto/run_development_container/#install-and-run-docker","text":"PeeringDB runs inside a Docker container. Docker Compose is used to build both the PeeringDB container and a MySQL server container for testing. Make sure the docker and docker-compose commands are installed on your system, and that the Docker Engine is running. Docker Desktop for Mac/Windows (>=2.5.0.1) includes these tools and they are also available for various POSIX systems. Ensure that docker-compose version indicates at least version 1.25.4, and that docker version indicates Engine version at least 19.03.5 and does not report any connection errors to Docker Engine. Connection errors may indicate a need to start the engine.","title":"Install and run Docker"},{"location":"howto/run_development_container/#fork-the-peeringdb-repository-clone-it-set-upstream","text":"Your development and experimentation with the PeeringDB code base should take place in a fork of the project . When you have improvements or fixes to share, you will be able to point other developers to your code, or submit a pull request. Navigate to https://github.com/peeringdb/peeringdb . In the top-right corner of the page, click Fork . On GitHub, navigate to your fork of the PeeringDB repository. Above the list of files, click Code . Copy the HTTPS URL. It will be something like: https://github.com/YOUR-USERNAME/peeringdb.git Perform the following: PDBHOME=~/src/peeringdb # Adjust as appropriate to your environment. mkdir -p $PDBHOME && cd $PDBHOME git clone https://github.com/YOUR-USERNAME/peeringdb.git cd $PDBHOME/peeringdb # Henceforth commands on this page assume you are in this working directory. git remote add upstream https://github.com/peeringdb/peeringdb.git git remote -v > origin https://github.com/YOUR-USERNAME/peeringdb.git (fetch) > origin https://github.com/YOUR-USERNAME/peeringdb.git (push) > upstream https://github.com/peeringdb/peeringdb.git (fetch) > upstream https://github.com/peeringdb/peeringdb.git (push) Keep your fork up-to-date with the upstream repository: https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/syncing-a-fork git fetch upstream git checkout master # or other branch you are working on git merge upstream/master","title":"Fork the PeeringDB repository, clone it, set upstream"},{"location":"howto/run_development_container/#create-environment-variable-override-file","text":"Environment variables for the server config can be added in Ctl/dev/.env . This file can be empty which will make the django SECRET_KEY ephemeral, but the file does need to exist. Empty file: touch Ctl/dev/.env Alternatively, create a SECRET_KEY using uuidgen or replace with something similar on your system: echo SECRET_KEY=\\\"$(uuidgen)\\\" > Ctl/dev/.env If you are serving from anywhere but localhost you will also need to specify the SESSION_COOKIE_DOMAIN echo \"SESSION_COOKIE_DOMAIN=example.com\" >> Ctl/dev/.env If you want to enable OIDC's JWT RS256 token signing, you need to specify the file with the RSA secret key found inside the container with the OIDC_RSA_PRIVATE_KEY_ACTIVE_PATH variable. You can create the key with open ssl and place it in Ctl/dev/jwks/filename.key or let the build system auto generated from the path specified with the variable. echo \"OIDC_RSA_PRIVATE_KEY_ACTIVE_PATH=/srv/www.peeringdb.com/var/jwks/oidc.key\" >> Ctl/dev/.env","title":"Create environment variable override file"},{"location":"howto/run_development_container/#build-the-container-and-set-up-your-developement-instance","text":"./Ctl/dev/compose.sh build peeringdb ./Ctl/dev/compose.sh up -d database ./Ctl/dev/run.sh migrate # Re-run if there are errors. The database may not yet have started. ./Ctl/dev/run.sh loaddata fixtures/initial_data.json ./Ctl/dev/run.sh createsuperuser ./Ctl/dev/run.sh createcachetable ./Ctl/dev/compose.sh up -d peeringdb On some docker versions build can fail with a ERROR: Service 'peeringdb' failed to build: failed to export image: failed to create image: failed to get layer error. Simply running it again should fix the issue. If you want a copy of the current public production data, run this command which often takes more than 15 minutes: ./Ctl/dev/run.sh pdb_load_data --commit After it is done you should have a PeeringDB instance exposed on port :8000 : http://localhost:8000/ (should you want to change this port you can do so by setting the environment variable DJANGO_PORT )","title":"Build the container and set up your developement instance"},{"location":"howto/run_development_container/#migration-notes","text":"","title":"Migration notes"},{"location":"howto/run_development_container/#organization-management-of-oauth-applications","text":"Once migration 0085 has been applied you should override the OAUTH2_PROVIDER_APPLICATION_MODEL environment variable to \"peeringdb_server.OAuthApplication\" in order to enable organization management of oauth applications. Warning: Overriding before migration 0085 has been applied will result in the following migration error and a broken migration state. Related model 'peeringdb_server.oauthapplication` cannot be resolved","title":"Organization management of OAuth applications"},{"location":"howto/run_development_container/#stop-and-start-the-containers","text":"./Ctl/dev/compose.sh down ./Ctl/dev/compose.sh up -d","title":"Stop and start the containers"},{"location":"howto/run_development_container/#environment-variables","text":"Edit Ctl/dev/.env and then stop and start the containers. PDB_NO_MIGRATE : If set to anything, will skip migrations when running the uwsgi command, otherwise, migrations will always be applied first thing while running uwsgi . DATABASE_ENGINE default \"mysql\" DATABASE_HOST default \"127.0.0.1\" DATABASE_PORT default \"\" DATABASE_NAME default \"peeringdb\" DATABASE_USER default \"peeringdb\" DATABASE_PASSWORD default \"\" EMAIL_HOST default \"localhost\" EMAIL_PORT default \"25\" EMAIL_HOST_USERHOST default \"\" EMAIL_HOST_PASSWORD default \"\"","title":"Environment variables"},{"location":"howto/run_development_container/#mount-points","text":"/srv/www.peeringdb.com/api-cache : api cache /srv/www.peeringdb.com/locale : translations /srv/www.peeringdb.com/mainsite : site settings /srv/www.peeringdb.com/media : media files /srv/www.peeringdb.com/peeringdb_server : server code /srv/www.peeringdb.com/static : static files /srv/www.peeringdb.com/var/log : log files","title":"Mount points"},{"location":"howto/run_development_container/#entry-point","text":"With the exception of some specific commands (see below) the entry point will pass directly to django's manage script. ./Ctl/dev/run.sh help Other options: migrate apply database migrations run_tests run unit tests uwsgi start the uwsgi process /bin/sh to drop to shell inetd run the inetd whois server","title":"Entry point"},{"location":"howto/run_development_container/#contributing-your-code","text":"After testing and carefully code-reviewing your changes, commit and push them to your repository. You can then share the changes with other developers, such as those on the pdb-tech@lists.peeringdb.com mailing list: https://lists.peeringdb.com/cgi-bin/mailman/listinfo/pdb-tech . When ready to contribute the change to the project, create a pull request to the main repository along with a description of your goals for the change and/or what you are fixing.","title":"Contributing your code"},{"location":"howto/search/","text":"HOWTO: Get Started with Search in PeeringDB Introduction to PeeringDB PeeringDB is a publicly available network database that is the go-to location for interconnection data. The database facilitates global network connections at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and it serves as a starting point for interconnection decisions. This online database is a non-profit, community-driven effort that encourages the exchange of Peering-related information and is totally managed and maintained by volunteers. It's a tool for the Internet's growth and enhancement. Why use PeeringDB to search for networks, exchange and data centers? About a third of networks (Autonomous Systems) use PeeringDB to share information about how they interconnect. You can use PeeringDB to find information about other networks, exchanges, and more. You make your services easier to find when you contribute your data to PeeringDB. You don't need an account to use the basic search functionality. But if you want to access private contact information and use advanced search features, like radius search, you'll need to sign up for an account. How to search for campuses, carriers, exchanges, facilities and networks in PeeringDB There is a s simple search box on the front page of PeeringDB. You can use it to search for campuses, carriers, exchanges, facilities and networks listed in PeeringDB by simply entering the name you want. Let\u2019s demonstrate with some examples to see how this works. Place name normalization PeeringDB normalizes place names at the presentation layer. For example, M\u00fcnchen will always be normalized to Munich in search output. This ensures that users can get all the results for Munich in a single search. Users can search using multiple names. As long as the name selected is well known, the search will be centered on the correct place. Networks For this example, we have this network KENET which is a non-profit operator for education and research and we want to search for it on PeeringDB. There are two ways to search for networks in PeeringDB: Name search You can search for networks by using the name of the networks by: - Entering the name of the network as seen below - From the search result, under the Networks section, locate the network you have searched - It would be visible if it is in the PeeringDB database ASN search You can search for networks using their ASN by: - Entering the name of the network as seen below, for the example below the ASN is (36914) - From the search result, under the Networks section, locate the network you have searched Note : Either of the two methods will get the same search results. Exchanges For this example, let\u2019s consider this exchange UNY-IX which is an open Internet exchange located in Universitas Negeri Yogyakarta. To search for an exchange: - Enter the name of the exchange as shown below - From the search result, under the exchanges section, locate the exchange you have searched Facilities Data centers are also referred to as facilities. For this example, let\u2019s consider this university University of Oslo which is an institution in Oslo. To search for a facility: - Enter the name of the data center or facility as shown below - From the search result, under the facilities section, locate the facility or data center you have searched How to search for your own organization If your organization already uses PeeringDB, when you are logged in to the website you can always find your own information using the self search. If you are not logged in, these links will take you to some PeeringDB examples objects. Organization Campus Carrier Facility Internet Exchange Point Network The self identifier also works for queries made using our API. We encourage the use of multi-factor authentication . This means using an API Key instead of basic authentication for API queries. How to use the search in PeeringDB extension The PeeringDB search extension is a free to use Google Chrome extension with which you can use to search for ASNs, networks, and exchanges in PeeringDB. To get started, go to the Chrome Web Store and download the extension, then enable it and add it to your extension bar. There are two ways to use the extension once it has been enabled: Using the Extension Bar Icon : Click the icon and type your search term into the box. The search will open in a new tab with the search result. Below is the result: Using the Context Menu : Right-click on any text on a page and select \"Search in PeeringDB\". The search will open in a new tab with the search result. Below is the result: If the query or highlighted text contains a number, the extension will attempt to find an ASN. How to search based on a partial name You can search based on a partial name. When an organization, network, facility or exchange name has two parts, you can search for just the first or second part and then select from all the organizations that share that name. This makes it easier to find the organization you want. This can also be helpful in a situation where you can not remember the name of the organization in full. In the example below, we want to search for \u201cinternet archive\u201d. We will search for it with a single part and not with the full name. In the search box, input \u201carchive''. This brings out a search result that have similar parts in their names. You can now search through the results to find the what you want. What is an advanced search? Advanced search in PeeringDB lets you explicitly filter a search location, network presence, service level and a wide range of other features. You get the results you\u2019re looking for and can export them in structured data formats (JSON or CSV), so you can import the data into tools that will help you make decisions. Note : You need to be logged in to PeeringDB in order to use some of the advanced search features, including the radius search. Let\u2019s take a look at this example below to demonstrate how advanced search works. We are going to search for an exchange within a particular region. On the front page of PeeringDB you will see the Advanced Search box which you can use to search for campuses, exchanges, facilities and networks that are in PeeringDB. Click on the Advanced Search link. This takes you to the advanced search landing page. The search page shows the campus, exchanges, facilities, networks, and organizations tabs. Go to the Exchanges tab, in the country field select a country of your choice by scrolling through the different options. On the right hand side, in the Network Presence field, enter the name of the network. You can follow the example shown below and add KENET. Click on the drop down list that appears as you input the network name. Click on Search. Scroll down to view information regarding the exchange that you searched for. Click on JSON or CSV to download the information in a structured format. Geographic search As new facilities are created in our database they will be linked to geographic coordinates. PeeringDB has improved search by changing the way it records data for location in its database. You can now search for facilities with a distance radius of a chosen coordinate. How to search for a campus You can search for a campus of facilities using the Advanced Search interface. Users can search from a country and city, and select a radius in kilometers or miles. Of course, you can achieve the same results using the API or the web interface, which means you can integrate this feature into your own tools. Note : You need to be logged in to PeeringDB in order to search for a campus of facilities. How to search for facilities within a given radius You can search for facilities within a given radius, using the Advanced Search interface. Users can search from a country and city, and select a radius in kilometers or miles. Of course, you can achieve the same results using the API or the web interface, which means you can integrate this feature into your own tools. Note : You need to be logged in to PeeringDB in order to search for facilities within a given radius. Login in or register an account on PeeringDB. On the front page of PeeringDB, click on the Advanced Search link. Go to the Facilities Tab and in the city/postal field add a city or postal of your choice. In the country field select a country of your choice. In the Within Distance field add a specified distance of your choice. On the right hand side of the page, click on search. Scroll down to view the information you searched for. The search result will bring up facilities which are in that country, city and state. You can download your information in a JSON or CSV format. 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\u2019s 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 . 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 done through basic HTTP authorization. People who are accessing the API as a guest do not need any authentication. For example: curl -sG https://username:password@www.peeringdb.com/api/net/961 curl -u username:password 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 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\u2019s 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\u2019s look at an example: - HTTP: GET /api/OBJ/38 where 38 is the ID - curl: curl -H \"Accept: application/json\" -X GET https://<username>:<password>@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 <object_type>_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\u2019s look at an example: - HTTP: GET /api/OBJ/ which is the endpoint - curl: curl -X GET https://<username>:<password>@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\u2019ll have to first install Python if you don\u2019t have it installed. Then, install pip and requests . 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 . 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 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 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[]' .","title":"HOWTO: Get Started with Search in PeeringDB"},{"location":"howto/search/#howto-get-started-with-search-in-peeringdb","text":"","title":"HOWTO: Get Started with Search in PeeringDB"},{"location":"howto/search/#introduction-to-peeringdb","text":"PeeringDB is a publicly available network database that is the go-to location for interconnection data. The database facilitates global network connections at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and it serves as a starting point for interconnection decisions. This online database is a non-profit, community-driven effort that encourages the exchange of Peering-related information and is totally managed and maintained by volunteers. It's a tool for the Internet's growth and enhancement.","title":"Introduction to PeeringDB"},{"location":"howto/search/#why-use-peeringdb-to-search-for-networks-exchange-and-data-centers","text":"About a third of networks (Autonomous Systems) use PeeringDB to share information about how they interconnect. You can use PeeringDB to find information about other networks, exchanges, and more. You make your services easier to find when you contribute your data to PeeringDB. You don't need an account to use the basic search functionality. But if you want to access private contact information and use advanced search features, like radius search, you'll need to sign up for an account.","title":"Why use PeeringDB to search for networks, exchange and data centers?"},{"location":"howto/search/#how-to-search-for-campuses-carriers-exchanges-facilities-and-networks-in-peeringdb","text":"There is a s simple search box on the front page of PeeringDB. You can use it to search for campuses, carriers, exchanges, facilities and networks listed in PeeringDB by simply entering the name you want. Let\u2019s demonstrate with some examples to see how this works.","title":"How to search for campuses, carriers, exchanges, facilities and networks in PeeringDB"},{"location":"howto/search/#place-name-normalization","text":"PeeringDB normalizes place names at the presentation layer. For example, M\u00fcnchen will always be normalized to Munich in search output. This ensures that users can get all the results for Munich in a single search. Users can search using multiple names. As long as the name selected is well known, the search will be centered on the correct place.","title":"Place name normalization"},{"location":"howto/search/#networks","text":"For this example, we have this network KENET which is a non-profit operator for education and research and we want to search for it on PeeringDB. There are two ways to search for networks in PeeringDB:","title":"Networks"},{"location":"howto/search/#name-search","text":"You can search for networks by using the name of the networks by: - Entering the name of the network as seen below - From the search result, under the Networks section, locate the network you have searched - It would be visible if it is in the PeeringDB database","title":"Name search"},{"location":"howto/search/#asn-search","text":"You can search for networks using their ASN by: - Entering the name of the network as seen below, for the example below the ASN is (36914) - From the search result, under the Networks section, locate the network you have searched Note : Either of the two methods will get the same search results.","title":"ASN search"},{"location":"howto/search/#exchanges","text":"For this example, let\u2019s consider this exchange UNY-IX which is an open Internet exchange located in Universitas Negeri Yogyakarta. To search for an exchange: - Enter the name of the exchange as shown below - From the search result, under the exchanges section, locate the exchange you have searched","title":"Exchanges"},{"location":"howto/search/#facilities","text":"Data centers are also referred to as facilities. For this example, let\u2019s consider this university University of Oslo which is an institution in Oslo. To search for a facility: - Enter the name of the data center or facility as shown below - From the search result, under the facilities section, locate the facility or data center you have searched","title":"Facilities"},{"location":"howto/search/#how-to-search-for-your-own-organization","text":"If your organization already uses PeeringDB, when you are logged in to the website you can always find your own information using the self search. If you are not logged in, these links will take you to some PeeringDB examples objects. Organization Campus Carrier Facility Internet Exchange Point Network The self identifier also works for queries made using our API. We encourage the use of multi-factor authentication . This means using an API Key instead of basic authentication for API queries.","title":"How to search for your own organization"},{"location":"howto/search/#how-to-use-the-search-in-peeringdb-extension","text":"The PeeringDB search extension is a free to use Google Chrome extension with which you can use to search for ASNs, networks, and exchanges in PeeringDB. To get started, go to the Chrome Web Store and download the extension, then enable it and add it to your extension bar. There are two ways to use the extension once it has been enabled: Using the Extension Bar Icon : Click the icon and type your search term into the box. The search will open in a new tab with the search result. Below is the result: Using the Context Menu : Right-click on any text on a page and select \"Search in PeeringDB\". The search will open in a new tab with the search result. Below is the result: If the query or highlighted text contains a number, the extension will attempt to find an ASN.","title":"How to use the search in PeeringDB extension"},{"location":"howto/search/#how-to-search-based-on-a-partial-name","text":"You can search based on a partial name. When an organization, network, facility or exchange name has two parts, you can search for just the first or second part and then select from all the organizations that share that name. This makes it easier to find the organization you want. This can also be helpful in a situation where you can not remember the name of the organization in full. In the example below, we want to search for \u201cinternet archive\u201d. We will search for it with a single part and not with the full name. In the search box, input \u201carchive''. This brings out a search result that have similar parts in their names. You can now search through the results to find the what you want.","title":"How to search based on a partial name"},{"location":"howto/search/#what-is-an-advanced-search","text":"Advanced search in PeeringDB lets you explicitly filter a search location, network presence, service level and a wide range of other features. You get the results you\u2019re looking for and can export them in structured data formats (JSON or CSV), so you can import the data into tools that will help you make decisions. Note : You need to be logged in to PeeringDB in order to use some of the advanced search features, including the radius search. Let\u2019s take a look at this example below to demonstrate how advanced search works. We are going to search for an exchange within a particular region. On the front page of PeeringDB you will see the Advanced Search box which you can use to search for campuses, exchanges, facilities and networks that are in PeeringDB. Click on the Advanced Search link. This takes you to the advanced search landing page. The search page shows the campus, exchanges, facilities, networks, and organizations tabs. Go to the Exchanges tab, in the country field select a country of your choice by scrolling through the different options. On the right hand side, in the Network Presence field, enter the name of the network. You can follow the example shown below and add KENET. Click on the drop down list that appears as you input the network name. Click on Search. Scroll down to view information regarding the exchange that you searched for. Click on JSON or CSV to download the information in a structured format.","title":"What is an advanced search?"},{"location":"howto/search/#geographic-search","text":"As new facilities are created in our database they will be linked to geographic coordinates. PeeringDB has improved search by changing the way it records data for location in its database. You can now search for facilities with a distance radius of a chosen coordinate.","title":"Geographic search"},{"location":"howto/search/#how-to-search-for-a-campus","text":"You can search for a campus of facilities using the Advanced Search interface. Users can search from a country and city, and select a radius in kilometers or miles. Of course, you can achieve the same results using the API or the web interface, which means you can integrate this feature into your own tools. Note : You need to be logged in to PeeringDB in order to search for a campus of facilities.","title":"How to search for a campus"},{"location":"howto/search/#how-to-search-for-facilities-within-a-given-radius","text":"You can search for facilities within a given radius, using the Advanced Search interface. Users can search from a country and city, and select a radius in kilometers or miles. Of course, you can achieve the same results using the API or the web interface, which means you can integrate this feature into your own tools. Note : You need to be logged in to PeeringDB in order to search for facilities within a given radius. Login in or register an account on PeeringDB. On the front page of PeeringDB, click on the Advanced Search link. Go to the Facilities Tab and in the city/postal field add a city or postal of your choice. In the country field select a country of your choice. In the Within Distance field add a specified distance of your choice. On the right hand side of the page, click on search. Scroll down to view the information you searched for. The search result will bring up facilities which are in that country, city and state. You can download your information in a JSON or CSV format.","title":"How to search for facilities within a given radius"},{"location":"howto/search/#querying-with-the-peeringdb-api","text":"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\u2019s 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.","title":"Querying with the PeeringDB API"},{"location":"howto/search/#object-types","text":"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 . 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","title":"Object types"},{"location":"howto/search/#basic-objects","text":"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.","title":"Basic objects"},{"location":"howto/search/#derived-objects","text":"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.","title":"Derived objects"},{"location":"howto/search/#authentication","text":"Authentication is done through basic HTTP authorization. People who are accessing the API as a guest do not need any authentication. For example: curl -sG https://username:password@www.peeringdb.com/api/net/961 curl -u username:password 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 and these are set at a lower threshold for unauthenticated users.","title":"Authentication"},{"location":"howto/search/#making-a-request","text":"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","title":"Making a request"},{"location":"howto/search/#operations","text":"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\u2019s look at each of them individually.","title":"Operations"},{"location":"howto/search/#single-object","text":"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\u2019s look at an example: - HTTP: GET /api/OBJ/38 where 38 is the ID - curl: curl -H \"Accept: application/json\" -X GET https://<username>:<password>@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","title":"Single object"},{"location":"howto/search/#nested-sets-and-objects","text":"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 <object_type>_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","title":"Nested sets and objects"},{"location":"howto/search/#multiple-objects","text":"To retrieve a single object you need to use this URL: https://www.peeringdb.com/api/OBJ/ with this endpoint GET: /api/OBJ/ . Let\u2019s look at an example: - HTTP: GET /api/OBJ/ which is the endpoint - curl: curl -X GET https://<username>:<password>@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","title":"Multiple objects"},{"location":"howto/search/#real-world-use-cases","text":"We will show you different use cases on how to use the PeeringDB API.","title":"Real world use cases"},{"location":"howto/search/#how-do-i-query-by-asn","text":"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.","title":"How do I query by ASN?"},{"location":"howto/search/#how-do-i-query-for-an-ixs-in-a-particular-state","text":"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.","title":"How do I query for an IXs in a particular state?"},{"location":"howto/search/#using-curl","text":"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 .","title":"Using curl"},{"location":"howto/search/#using-python","text":"To make use of this Python code, first, you\u2019ll have to first install Python if you don\u2019t have it installed. Then, install pip and requests . 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.","title":"Using Python"},{"location":"howto/search/#using-jq","text":"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 . 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","title":"Using jq"},{"location":"howto/search/#using-an-online-converter","text":"Alternatively you can use an online tool such as 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.","title":"Using an online converter"},{"location":"howto/search/#how-to-get-all-the-objects-owned-by-httpswwwpeeringdbcomnet961-and-convert-the-data-to-csv","text":"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 .","title":"How to get all the objects owned by https://www.peeringdb.com/net/961 and convert the data to CSV?"},{"location":"howto/search/#i-want-the-list-of-networks-and-their-type-peering-at-mice-in-minneapolis","text":"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[] .","title":"I want the list of networks and their 'type' peering at MICE in Minneapolis."},{"location":"howto/search/#how-to-find-all-the-exchanges-where-my-organization-has-a-presence","text":"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[]' .","title":"How to find all the exchanges where my organization has a presence?"},{"location":"howto/updates-for-as112/","text":"HOWTO: What is AS112? Many networks using private address space ( RFC 1918 ) leak the reverse DNS lookups instead of running a local DNS server to respond to them. To stop this traffic from overwhelming root nameservers, volunteers run AS112 nameservers , which provide authoritative, local answers. What is PeeringDB? PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions. The database is a non-profit, community-driven initiative run and promoted by volunteers. It is a public tool for the growth and good of the Internet. Join the community and support the continued development of the Internet. How Does PeeringDB Visibility Help? The listing for AS112 in PeeringDB contains the peering LAN IP addresses of the routers for the network. This can be used as a source of configuration information for the peering routers of other networks at the same IXP. What you need to do IXPs sharing technical information using the IX-F Member Export Schema When an IXP shares technical information about its infrastructure using the IX-F Member Export Schema the existence of the AS112 node, and its peering LAN address, will automatically be populated in PeeringDB. You, as the operators of the node do not need to do anything. This is because AS112 has enabled the option to allow the IXPs' IX-F data to automatically populate its entry in PeeringDB. IXPs not sharing technical information using the IX-F Member Export Schema If your IXP does not share technical information about its infrastructure using the IX-F Member Export Schema you can ask them to do so. You can also reach out to ops@as112.net and the PeeringDB entry for AS112 will be manually updated.","title":"HOWTO: What is AS112?"},{"location":"howto/updates-for-as112/#howto-what-is-as112","text":"Many networks using private address space ( RFC 1918 ) leak the reverse DNS lookups instead of running a local DNS server to respond to them. To stop this traffic from overwhelming root nameservers, volunteers run AS112 nameservers , which provide authoritative, local answers.","title":"HOWTO: What is AS112?"},{"location":"howto/updates-for-as112/#what-is-peeringdb","text":"PeeringDB is a freely available, user-maintained, database of networks, and the go-to location for interconnection data. The database facilitates the global interconnection of networks at Internet Exchange Points (IXPs), data centers, and other interconnection facilities, and is the first stop in making interconnection decisions. The database is a non-profit, community-driven initiative run and promoted by volunteers. It is a public tool for the growth and good of the Internet. Join the community and support the continued development of the Internet.","title":"What is PeeringDB?"},{"location":"howto/updates-for-as112/#how-does-peeringdb-visibility-help","text":"The listing for AS112 in PeeringDB contains the peering LAN IP addresses of the routers for the network. This can be used as a source of configuration information for the peering routers of other networks at the same IXP.","title":"How Does PeeringDB Visibility Help?"},{"location":"howto/updates-for-as112/#what-you-need-to-do","text":"","title":"What you need to do"},{"location":"howto/updates-for-as112/#ixps-sharing-technical-information-using-the-ix-f-member-export-schema","text":"When an IXP shares technical information about its infrastructure using the IX-F Member Export Schema the existence of the AS112 node, and its peering LAN address, will automatically be populated in PeeringDB. You, as the operators of the node do not need to do anything. This is because AS112 has enabled the option to allow the IXPs' IX-F data to automatically populate its entry in PeeringDB.","title":"IXPs sharing technical information using the IX-F Member Export Schema"},{"location":"howto/updates-for-as112/#ixps-not-sharing-technical-information-using-the-ix-f-member-export-schema","text":"If your IXP does not share technical information about its infrastructure using the IX-F Member Export Schema you can ask them to do so. You can also reach out to ops@as112.net and the PeeringDB entry for AS112 will be manually updated.","title":"IXPs not sharing technical information using the IX-F Member Export Schema"},{"location":"howto/v2_search/","text":"HOWTO: v2 Search We are testing v2 search in parallel with our production v1 search tools. We encourage you to test it and give us feedback . Is it faster? Does it simplify the search process? Does it give you the results you expect? Your input helps us deliver the tools you want. When you click one the link for v2 search , you just type your query in the box and hit enter, like normal. Concept v2 lets you use some natural language queries in combination with the name for an area. It helps you get the results in fewer searches, ideally just one! Search for a network Searches for numbers can be interpreted as a search for a location as well as a network. When searching for a network prefixed with 'AS', partial matches show all relevant networks while direct matches take you straight to the network's page. Fig 1: A search for as333 shows results for AS3330 and AS33309 Support for metro sizes For many areas it will automatically set an appropriate radius. When a common business area crosses a jurisdictional boundary, the search is based on the common business area and not limited to the named metro area. Fig 2: A search for fac near new york includes results for facilities in Jersey City, NJ When you want a different radius, our Advanced Search tool lets you manually set a specific radius based on any street address. Searching directly for IXs v2 search finds exchanges based on the facilities they are in. You don\u2019t need to search for facilities in a metro area and then find the exchanges they host. You can do it in a single search. Fig 3: A search for ix in tokyo finds exchanges at facilities we know about in Tokyo Support for campus v2 search knows about campus objects \u2013 interconnected facilities under common ownership \u2013 so you can find campuses for an area as well a getting a full list of facilities. Fig 4: Searching for a campus in amsterdam shows just three entries Fig 5: Searching for a fac in amsterdam shows many more results","title":"HOWTO: v2 Search"},{"location":"howto/v2_search/#howto-v2-search","text":"We are testing v2 search in parallel with our production v1 search tools. We encourage you to test it and give us feedback . Is it faster? Does it simplify the search process? Does it give you the results you expect? Your input helps us deliver the tools you want. When you click one the link for v2 search , you just type your query in the box and hit enter, like normal.","title":"HOWTO: v2 Search"},{"location":"howto/v2_search/#concept","text":"v2 lets you use some natural language queries in combination with the name for an area. It helps you get the results in fewer searches, ideally just one!","title":"Concept"},{"location":"howto/v2_search/#search-for-a-network","text":"Searches for numbers can be interpreted as a search for a location as well as a network. When searching for a network prefixed with 'AS', partial matches show all relevant networks while direct matches take you straight to the network's page. Fig 1: A search for as333 shows results for AS3330 and AS33309","title":"Search for a network"},{"location":"howto/v2_search/#support-for-metro-sizes","text":"For many areas it will automatically set an appropriate radius. When a common business area crosses a jurisdictional boundary, the search is based on the common business area and not limited to the named metro area. Fig 2: A search for fac near new york includes results for facilities in Jersey City, NJ When you want a different radius, our Advanced Search tool lets you manually set a specific radius based on any street address.","title":"Support for metro sizes"},{"location":"howto/v2_search/#searching-directly-for-ixs","text":"v2 search finds exchanges based on the facilities they are in. You don\u2019t need to search for facilities in a metro area and then find the exchanges they host. You can do it in a single search. Fig 3: A search for ix in tokyo finds exchanges at facilities we know about in Tokyo","title":"Searching directly for IXs"},{"location":"howto/v2_search/#support-for-campus","text":"v2 search knows about campus objects \u2013 interconnected facilities under common ownership \u2013 so you can find campuses for an area as well a getting a full list of facilities. Fig 4: Searching for a campus in amsterdam shows just three entries Fig 5: Searching for a fac in amsterdam shows many more results","title":"Support for campus"},{"location":"howto/work_within_peeringdbs_query_limits/","text":"HOWTO: Work Within PeeringDB\u2019s Query Limits PeeringDB implements query throttling to encourage efficiently formatted queries and/or local caching. Many popular tools have been upgraded to use PeeringDB more efficiently. Query limits Duplicate queries: Repeated anonymous identical requests with a response size above 100kb are being limited to 1/hour Repeated anonymous identical requests of any size are being limited to 2/minute Query rate limit: Anonymous queries limited to 20/minute per IP address Authenticated queries limited to 40/minute per user or organization (when an organizational API key is used) Efficient queries We encourage users to make fewer, larger queries instead of making many small queries. Instead of sending each ASN you want to learn about as a separate query, create a list of ASNs and send them in a single query. The query element would look like this: 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 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. We also encourage you to leave at least two seconds between queries. Local cache We encourage you to use a local cache and synchronize it every hour or less frequently in accordance with your organization's needs. When you use a local cache you will only be sent changes since the last sync. We publish peeringdb-py, which can be used directly or as a reference implementation. Code is here and documentation is here . Use of an API key with peeringdb-py is highly recommended. If you want to implement a local cache using different tools and would like advice, we are happy to talk. Contact us at support@peeringdb.com . Tools Popular tools, including arouteserver have been updated to include support for API Keys and to make more efficient queries. We publish a list of tools that we know use PeeringDB. Check the list for tools that you use and upgrade old versions to take advantage of new features and improve everyone\u2019s PeeringDB experience.","title":"HOWTO: Work Within PeeringDB\u2019s Query Limits"},{"location":"howto/work_within_peeringdbs_query_limits/#howto-work-within-peeringdbs-query-limits","text":"PeeringDB implements query throttling to encourage efficiently formatted queries and/or local caching. Many popular tools have been upgraded to use PeeringDB more efficiently.","title":"HOWTO: Work Within PeeringDB\u2019s Query Limits"},{"location":"howto/work_within_peeringdbs_query_limits/#query-limits","text":"Duplicate queries: Repeated anonymous identical requests with a response size above 100kb are being limited to 1/hour Repeated anonymous identical requests of any size are being limited to 2/minute Query rate limit: Anonymous queries limited to 20/minute per IP address Authenticated queries limited to 40/minute per user or organization (when an organizational API key is used)","title":"Query limits"},{"location":"howto/work_within_peeringdbs_query_limits/#efficient-queries","text":"We encourage users to make fewer, larger queries instead of making many small queries. Instead of sending each ASN you want to learn about as a separate query, create a list of ASNs and send them in a single query. The query element would look like this: 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 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. We also encourage you to leave at least two seconds between queries.","title":"Efficient queries"},{"location":"howto/work_within_peeringdbs_query_limits/#local-cache","text":"We encourage you to use a local cache and synchronize it every hour or less frequently in accordance with your organization's needs. When you use a local cache you will only be sent changes since the last sync. We publish peeringdb-py, which can be used directly or as a reference implementation. Code is here and documentation is here . Use of an API key with peeringdb-py is highly recommended. If you want to implement a local cache using different tools and would like advice, we are happy to talk. Contact us at support@peeringdb.com .","title":"Local cache"},{"location":"howto/work_within_peeringdbs_query_limits/#tools","text":"Popular tools, including arouteserver have been updated to include support for API Keys and to make more efficient queries. We publish a list of tools that we know use PeeringDB. Check the list for tools that you use and upgrade old versions to take advantage of new features and improve everyone\u2019s PeeringDB experience.","title":"Tools"},{"location":"release_notes/","text":"Release Notes and Schedule The release notes list the GitHub issues and a summary of what has changed in PeeringDB software releases. Each new release has a one week beta test period on the beta server before it goes live. The beta and new releases are announced on the PeeringDB Announce Mailing List and on Facebook , LinkedIn and X . Release schedule This schedule provides planned dates for PeeringDB\u2019s future releases. We are sharing these dates to help PeeringDB users plan ahead for testing new and improved features in beta. We also want to help volunteer developers know the date on which their code changes are needed for internal testing before beta release. We provide a rolling schedule. Dates can change, so if you have a question or request please contact us at: support@peeringdb.com . Our releases are generally deployed at around 04:00 UTC. Release number Internal testing Beta release Production release 2.63.0 2024-11-06 2024-11-13 2024-11-20 2.64.0 2024-01-08 2024-01-15 2024-01-22 2.65.0 2025-02-05 2025-02-12 2025-02-19 2.66.0 2025-03-14 2025-03-23 2025-03-30 2.67.0 2025-04-22 2025-04-29 2025-04-30 2.68.0 2025-05-07 2025-05-14 2025-05-21 2.69.0 2025-06-11 2025-06-18 2025-05-25 Release 2.63.0 Beta Announcement Date: 13 November 2024 Release Date: 20 November 2024 GitHub issue Summary #1671 Inconsistent netixlan ASN data can result in inability for deleted netixlan to be claimed by new user Nullify the local asn field of netixlan objects and make it a read only view of $network.asn.. #1666 Schedule reset of tutorial server database As title. #1635 ops: add read-only server side switch PeeringDB can now be placed into read-only mode when needed. #1593 Dev module docs auto generation broken Fixes a bug that broke autogeneration of documentation. #1690 New net_side and ix_side fields on netixlan breaks sync once django-peeringdb is released Fixes a bug that blocked the release of an updated django-peeringdb because of the new new net_side and ix_side fields added to netixlan in 2.62.0. peeringdb-py #65 Make spinning up peeringdb-py fully automated As title. Release 2.62.1 Release Date: 24 October 2024 GitHub issue Summary #1692 Fix otp email one time password Fixes compatibility issues after two-factor library upgrade, causing issues with emailing one time passwords. Release 2.62.0 Beta Announcement Date: 9 October 2024 Release Date: 16 October 2024 GitHub issue Summary #1584 Passkey support for login Adds a new 2FA method, Passkeys . #1612 Feature Parity for Carrier Object: Search and Export to JSON, CSV, KMZ As title. #1555 Remove \"Media Type\" field for Internet Exchange object As title. #1563 CSV and JSON exports truncate at 250 records Exports no longer truncate at 250 records. #607 Add location of Physical IX-Port & Router Port IXPs can now indicate the location of their switch using the pdb_facility_id attribute of the switch statement in their IX-F JSON export . peeringdb-py #95 Make client more robust when dealing with api errors. As title. peeringdb-py #86 DB sync fails due to validation error Bug fix as title. #1635 ops: add read-only server side switch Server can go into read-only mode, while allowing user login. This mode allows basic service to be sustained in adverse situations. #1654 Direct query access to Elasticsearch to aid search improvements Direct query access to ElasticSearch for internal PeeringDB users. #1653 Update dependencies and modernise As title. peeringdb-py #94 Update deps and modernize As title. django-peeringdb #103 Update dependencies and modernise As title. #340 switch to uv, update deps Dependency update for docs.peeringdb.com. Release 2.61.0 Beta Announcement Date: 14 August 2024 Release Date: 21 August 2024 GitHub issue Summary #1617 Snag list for preview.beta.peeringdb.com Updates preview.beta.peeringdb.com to improve the UI. #1142 Email one time password button should be less prominent As title. #766 For any forbidden actions set a 403 and give a \"Not Allowed\" header As title. #1302 Fix OpenAPI types where needed As title. peeringdb-py #76 Client should handle rate limiting errors gracefully As title. #1583 bfd_support undocumented parameter in API Documentation improved. django-peeringdb #98 ORM configuration Options is missing (postgreSQL) Config option updated. #1014 When removing a network, removing all netixlans have to happen before removing pocs Fixes blocking of network deletion due to to Prevent deletion of a last technical contact if there is an existing netixlan object #923. Release 2.60.0 Beta Announcement Date: 17 July 2024 Release Date: 24 July 2024 GitHub issue Summary #1452 Normalizing the presentation of place names Place names are now normalized, improving the consistency of search results. #1189 Data export buttons for Network, Exchange, and Facilities As title. #1561 Deploy www on ECS/Fargate www.peeringdb.com will be deployed using containers. peeringdb-py #67 Allow option for logging to co-exist with existing loggers Improves logging support in peeringdb-py local cache. peeringdb-py #72 --output-format in cli does not seem to be working Fixes bug as per title. #1322 Give API writes high priority and limits As title. #1610 possible for ixpfx object with empty prefix to exist in a soft-deleted state Fixes bug as per title. #1040 Verification queue ticket subject changes Fixes bug as per title. Release 2.59.0 Beta Announcement Date: 19 June 2024 Release Date: 26 June 2024 GitHub issue Summary #1585 Publish OAuth authorization server metadata endpoint As title. #1483 Address Change UI Fixes an error where it was not possible to reject the suggestion for an address. #1561 Deploy www on ECS/Fargate Switch www.peeringdb.com to ECS/Fargate. Initial deployment will be on beta.peeringdb.com with www.peeringdb.com following at a later date. peeringdb-py #49 Automatically update docs site on code release As title. peeringdb-py #88 docs need updating to reflect some api changes to the Client.update_all() call As title. #1603 Organization API key table formatting broken Improves the display of Organizational API Keys. #1604 API limit=x does not work when response type set in URL Limits to response sizes were ignored as per title. #971 Remove white space from strings As title. #1606 rir_status update handler: intermittent bug that may attempt to delete a network too early Fixes an over eager data cleanup process. #1608 pdb_delete_outdated_pending_affil_request failure Fixes an error is a data cleanup process. Release 2.58.0 Beta Announcement Date: 29 May 2024 Release Date: 5 June 2024 GitHub issue Summary #1343 Inconsistent return results when querying facilities by state (Datafill) Enforces state naming on validation and normalize data. #1502 Create preview.peeringdb.com with updated web UI Preview site for new PeeringDB web design. #1414 Tooltip with Full IX Name on Mouse-Over IX-Abbreviation As title. #1115 Enhancement to Ownership Information Field Lessee tooltip now says \"Leased or Rented\". #1487 URL Referrer Behavior Clicking on a link now opens it in a new tab or window. #840 Add help text to \"Traffic Levels\" Add tooltip \"Total, self-classified traffic in/out to this network.\". #1491 Add logo watermark and peeringdb.com URL to kmz As title. #975 \"Incomplete data\" complainer for Peering Policy even with General Policy \"None\" or \"Open\" No longer show missing data warning for empty Peering Policy field if General Policy is set to \"Open\" or \"No\". #1580 Validator: Add validator for X usernames, were requirements Validator for usernames on the X social media network. #1481 Network Registration fail results in AC action and retry failure Improved network registration process where email address does not match RDAP output. #1500 pdb_stats needs to be updated to include Campuses, Carriers, etc. & possible bug with user counts Improvements to internal stats package. #1503 Is it possible to create an affiliation request even when the ASN (~Net) has been deleted? (But the ORG still exist) As title. #1038 add default for config key MELISSA_KEY now defaults to a blank string. #1048 TOTP devices sort is by id. However, only username is shown Fixes a UI bug with internal support tools. #85 DB sync fails due to duplicate entries Fixes a peeringdb-py data sync bug. Release 2.57.0 Beta Announcement Date: 17 April 2024 Release Date: 24 April 2024 GitHub issue Summary #1545 Feature request: Allow permissions to be given per user on Carrier As title. #1123 Make a Technical POC mandatory when enabling \"Allow IXP Update\" As title. #1231 Change ix-f to IX-F As title. #1577 Remove more clutter from KMZ Metadata Makes data easier to read and slims download size. #1475 KML Placemark/Point Meta Data Not Displaying Correctly Fixes a bug that broke the way metadata displayed for .KMZ pins. #1546 v2 search: 500 error when last character is a colon As title. #1530 missing search results when doing a city location search for facilities Fixes a bug that did not show fac entries located in a city in simple search. #1533 Exchange Advanced search fails and returns bad search data Fixes and intermittent Advanced Search failure. #1451 Cosmetic issue with affiliation emails and double-slash in URL Fixes a cosmetic bug in autogenerated support messages. #1416 Add (PeeringDB Support) after superuser name in public notifications Support messages now more clearly identified as coming from PeeringDB Support. #1415 Auto-CleanUp old pending \"User to Organization Affiliation Request\" Pending affiliation requests are now cleaned up after 3 months. #1494 drop any facilities without location data (PDB Example) No fac without a geocode is now listed in the .KMZ export. #1528 pdb_rir_status task errors on deskpro ticket creation Fixes a bug in an internal support tool. #1453 DELETION PREVENTED: Link is not formatted as html element Fixes a bug in an internal support tool. #1484 Update ORG Social Media Option \"Twitter\" to \"X\" As title. Release 2.56.1 Release Date: 27 March 2024 GitHub issue Summary #1581 rdap to 1.5.2 Merge third-party library needed for complete fix of #1455 . Release 2.56.0 Beta Announcement Date: 13 March 2024 Release Date: 20 March 2024 GitHub issue Summary #1447 v2 search - support for ISO 3166 alpha-2 country codes v2 search now has support for ISO 3166 alpha-2 codes. #1495 Enable .KMZ export for Advanced Search results As title. #1489 Remove unneeded fields from the KMZ Removes field clutter to optimize file size. #1490 Spelling fix for KMZ Fixes spelling of 'Latitude'. #1099 Expose authentication methods on outbound federation Adds Authentication Method Reference field to OAuth profile, with choices from Section 2 of RFC8176 , documentation, and scope. #1133 Return auth error when multiple auth methods are used Now returns a 401 code with a helpful message when Authorization: Basic fails with corrupt base64 input. #1456 Duplicate AS-SET name Adds a tooltip suggesting hierarchical AS-SET names and a warning if a duplicate name is entered. #1331 BFD support field in Global and IX specific views Adds a boolean value for BFD support per IP address and a mouseover icon on the website when it's true. #1478 Social link controls showing up when not logged in Fixes a cosmetic bug that showed non-operational social media controls when not logged in. #1425 Update social media icons in footer Updates social media icons in the footer. #1152 Tab URLs don't work anymore Fixes tab URLs in the admin interface. Release 2.55.0 Beta Announcement Date: 21 February 2024 Release Date: 28 February 2024 GitHub issue Summary #1410 Adjust IPv4/6 prefix limits automatically Max prefix limit is now automatically adjusted based on the DFZ. #1455 Org name RIPE-NCC-END-MNT for new networks Fixes a bug that named orgs RIPE-NCC-END-MNT. #1468 translation refresh and dependency update translate.peeringdb.com updated to weblate 5.0 and other dependency updates. #1480 pdb_load_data no longer creates necessary org usergroups Fixes a bug with data sync tool. Release 2.54.2 Release Date: 31 January 2024 GitHub issue Summary #1536 Support 202311 rollback ux changes Reverted web UI changes that caused issues. Release 2.54.1 Release Date: 30 January 2024 GitHub issue Summary #1511 Non-obvious search box on the front page Search bar in header is now auto deployed. #1513 Mobile interface front page has lots of misaligned sections Fixes layout issues for some mobile devices. #1514 Two different search boxes on a network page information page in the same area As title. #1515 Bottom search box on some pages does not work correctly As title. Release 2.54.0 Beta Announcement Date: 18 January 2024 Release Date: 24 January 2024 GitHub issue Summary #1463 Update website to take advantage of wider screen and improve mobile device support As title. #1357 Clarifying the Network Type field Add multi-select for Network Type field. #1341 Only indicate availability of DC voltage for facilities Limits power options to non-standard voltages. #1476 v2 search not able to find organization and network - Marconi Solutions Srls Fixes a bug where bad search results are returned. #170 Add a \"flag bad data\" button on various places Adds a box web users can click to report bad data. #1430 Changing ASN field on \"Add Network\" to be numbers only The text box is now restricted to numbers, reducing scope for data entry issues. #1455 Org name RIPE-NCC-END-MNT for new networks Fixes a bug tat set some networks' names to RIPE-NCC-END-MNT. #1280 Improve RIR Update Procedure Improves the process for removing stale networks from PeeringDB. #1065 api-cache improvements As title. #1303 Add headers to API requests Adds a mechanism to indicate that behavior/schema has changed to API consumers. #1410 Adjust IPv4/6 prefix limits automatically Now automatically sets the maximum to 25% of the DFZ. #410 Add a \"last synced at $date\" to beta.peeringdb.com As title. #1468 translation refresh and dependency update As title. #1466 Analysis: Investigate use of ECS/Fargate As title. #1412 Improve performance by updating Python client code As title. Older releases 2023 Release Notes 2022 Release Notes 2021 Release Notes 2020 Release Notes","title":"Release Notes"},{"location":"release_notes/#release-notes-and-schedule","text":"The release notes list the GitHub issues and a summary of what has changed in PeeringDB software releases. Each new release has a one week beta test period on the beta server before it goes live. The beta and new releases are announced on the PeeringDB Announce Mailing List and on Facebook , LinkedIn and X .","title":"Release Notes and Schedule"},{"location":"release_notes/#release-schedule","text":"This schedule provides planned dates for PeeringDB\u2019s future releases. We are sharing these dates to help PeeringDB users plan ahead for testing new and improved features in beta. We also want to help volunteer developers know the date on which their code changes are needed for internal testing before beta release. We provide a rolling schedule. Dates can change, so if you have a question or request please contact us at: support@peeringdb.com . Our releases are generally deployed at around 04:00 UTC. Release number Internal testing Beta release Production release 2.63.0 2024-11-06 2024-11-13 2024-11-20 2.64.0 2024-01-08 2024-01-15 2024-01-22 2.65.0 2025-02-05 2025-02-12 2025-02-19 2.66.0 2025-03-14 2025-03-23 2025-03-30 2.67.0 2025-04-22 2025-04-29 2025-04-30 2.68.0 2025-05-07 2025-05-14 2025-05-21 2.69.0 2025-06-11 2025-06-18 2025-05-25","title":"Release schedule"},{"location":"release_notes/#release-2630","text":"Beta Announcement Date: 13 November 2024 Release Date: 20 November 2024 GitHub issue Summary #1671 Inconsistent netixlan ASN data can result in inability for deleted netixlan to be claimed by new user Nullify the local asn field of netixlan objects and make it a read only view of $network.asn.. #1666 Schedule reset of tutorial server database As title. #1635 ops: add read-only server side switch PeeringDB can now be placed into read-only mode when needed. #1593 Dev module docs auto generation broken Fixes a bug that broke autogeneration of documentation. #1690 New net_side and ix_side fields on netixlan breaks sync once django-peeringdb is released Fixes a bug that blocked the release of an updated django-peeringdb because of the new new net_side and ix_side fields added to netixlan in 2.62.0. peeringdb-py #65 Make spinning up peeringdb-py fully automated As title.","title":"Release 2.63.0"},{"location":"release_notes/#release-2621","text":"Release Date: 24 October 2024 GitHub issue Summary #1692 Fix otp email one time password Fixes compatibility issues after two-factor library upgrade, causing issues with emailing one time passwords.","title":"Release 2.62.1"},{"location":"release_notes/#release-2620","text":"Beta Announcement Date: 9 October 2024 Release Date: 16 October 2024 GitHub issue Summary #1584 Passkey support for login Adds a new 2FA method, Passkeys . #1612 Feature Parity for Carrier Object: Search and Export to JSON, CSV, KMZ As title. #1555 Remove \"Media Type\" field for Internet Exchange object As title. #1563 CSV and JSON exports truncate at 250 records Exports no longer truncate at 250 records. #607 Add location of Physical IX-Port & Router Port IXPs can now indicate the location of their switch using the pdb_facility_id attribute of the switch statement in their IX-F JSON export . peeringdb-py #95 Make client more robust when dealing with api errors. As title. peeringdb-py #86 DB sync fails due to validation error Bug fix as title. #1635 ops: add read-only server side switch Server can go into read-only mode, while allowing user login. This mode allows basic service to be sustained in adverse situations. #1654 Direct query access to Elasticsearch to aid search improvements Direct query access to ElasticSearch for internal PeeringDB users. #1653 Update dependencies and modernise As title. peeringdb-py #94 Update deps and modernize As title. django-peeringdb #103 Update dependencies and modernise As title. #340 switch to uv, update deps Dependency update for docs.peeringdb.com.","title":"Release 2.62.0"},{"location":"release_notes/#release-2610","text":"Beta Announcement Date: 14 August 2024 Release Date: 21 August 2024 GitHub issue Summary #1617 Snag list for preview.beta.peeringdb.com Updates preview.beta.peeringdb.com to improve the UI. #1142 Email one time password button should be less prominent As title. #766 For any forbidden actions set a 403 and give a \"Not Allowed\" header As title. #1302 Fix OpenAPI types where needed As title. peeringdb-py #76 Client should handle rate limiting errors gracefully As title. #1583 bfd_support undocumented parameter in API Documentation improved. django-peeringdb #98 ORM configuration Options is missing (postgreSQL) Config option updated. #1014 When removing a network, removing all netixlans have to happen before removing pocs Fixes blocking of network deletion due to to Prevent deletion of a last technical contact if there is an existing netixlan object #923.","title":"Release 2.61.0"},{"location":"release_notes/#release-2600","text":"Beta Announcement Date: 17 July 2024 Release Date: 24 July 2024 GitHub issue Summary #1452 Normalizing the presentation of place names Place names are now normalized, improving the consistency of search results. #1189 Data export buttons for Network, Exchange, and Facilities As title. #1561 Deploy www on ECS/Fargate www.peeringdb.com will be deployed using containers. peeringdb-py #67 Allow option for logging to co-exist with existing loggers Improves logging support in peeringdb-py local cache. peeringdb-py #72 --output-format in cli does not seem to be working Fixes bug as per title. #1322 Give API writes high priority and limits As title. #1610 possible for ixpfx object with empty prefix to exist in a soft-deleted state Fixes bug as per title. #1040 Verification queue ticket subject changes Fixes bug as per title.","title":"Release 2.60.0"},{"location":"release_notes/#release-2590","text":"Beta Announcement Date: 19 June 2024 Release Date: 26 June 2024 GitHub issue Summary #1585 Publish OAuth authorization server metadata endpoint As title. #1483 Address Change UI Fixes an error where it was not possible to reject the suggestion for an address. #1561 Deploy www on ECS/Fargate Switch www.peeringdb.com to ECS/Fargate. Initial deployment will be on beta.peeringdb.com with www.peeringdb.com following at a later date. peeringdb-py #49 Automatically update docs site on code release As title. peeringdb-py #88 docs need updating to reflect some api changes to the Client.update_all() call As title. #1603 Organization API key table formatting broken Improves the display of Organizational API Keys. #1604 API limit=x does not work when response type set in URL Limits to response sizes were ignored as per title. #971 Remove white space from strings As title. #1606 rir_status update handler: intermittent bug that may attempt to delete a network too early Fixes an over eager data cleanup process. #1608 pdb_delete_outdated_pending_affil_request failure Fixes an error is a data cleanup process.","title":"Release 2.59.0"},{"location":"release_notes/#release-2580","text":"Beta Announcement Date: 29 May 2024 Release Date: 5 June 2024 GitHub issue Summary #1343 Inconsistent return results when querying facilities by state (Datafill) Enforces state naming on validation and normalize data. #1502 Create preview.peeringdb.com with updated web UI Preview site for new PeeringDB web design. #1414 Tooltip with Full IX Name on Mouse-Over IX-Abbreviation As title. #1115 Enhancement to Ownership Information Field Lessee tooltip now says \"Leased or Rented\". #1487 URL Referrer Behavior Clicking on a link now opens it in a new tab or window. #840 Add help text to \"Traffic Levels\" Add tooltip \"Total, self-classified traffic in/out to this network.\". #1491 Add logo watermark and peeringdb.com URL to kmz As title. #975 \"Incomplete data\" complainer for Peering Policy even with General Policy \"None\" or \"Open\" No longer show missing data warning for empty Peering Policy field if General Policy is set to \"Open\" or \"No\". #1580 Validator: Add validator for X usernames, were requirements Validator for usernames on the X social media network. #1481 Network Registration fail results in AC action and retry failure Improved network registration process where email address does not match RDAP output. #1500 pdb_stats needs to be updated to include Campuses, Carriers, etc. & possible bug with user counts Improvements to internal stats package. #1503 Is it possible to create an affiliation request even when the ASN (~Net) has been deleted? (But the ORG still exist) As title. #1038 add default for config key MELISSA_KEY now defaults to a blank string. #1048 TOTP devices sort is by id. However, only username is shown Fixes a UI bug with internal support tools. #85 DB sync fails due to duplicate entries Fixes a peeringdb-py data sync bug.","title":"Release 2.58.0"},{"location":"release_notes/#release-2570","text":"Beta Announcement Date: 17 April 2024 Release Date: 24 April 2024 GitHub issue Summary #1545 Feature request: Allow permissions to be given per user on Carrier As title. #1123 Make a Technical POC mandatory when enabling \"Allow IXP Update\" As title. #1231 Change ix-f to IX-F As title. #1577 Remove more clutter from KMZ Metadata Makes data easier to read and slims download size. #1475 KML Placemark/Point Meta Data Not Displaying Correctly Fixes a bug that broke the way metadata displayed for .KMZ pins. #1546 v2 search: 500 error when last character is a colon As title. #1530 missing search results when doing a city location search for facilities Fixes a bug that did not show fac entries located in a city in simple search. #1533 Exchange Advanced search fails and returns bad search data Fixes and intermittent Advanced Search failure. #1451 Cosmetic issue with affiliation emails and double-slash in URL Fixes a cosmetic bug in autogenerated support messages. #1416 Add (PeeringDB Support) after superuser name in public notifications Support messages now more clearly identified as coming from PeeringDB Support. #1415 Auto-CleanUp old pending \"User to Organization Affiliation Request\" Pending affiliation requests are now cleaned up after 3 months. #1494 drop any facilities without location data (PDB Example) No fac without a geocode is now listed in the .KMZ export. #1528 pdb_rir_status task errors on deskpro ticket creation Fixes a bug in an internal support tool. #1453 DELETION PREVENTED: Link is not formatted as html element Fixes a bug in an internal support tool. #1484 Update ORG Social Media Option \"Twitter\" to \"X\" As title.","title":"Release 2.57.0"},{"location":"release_notes/#release-2561","text":"Release Date: 27 March 2024 GitHub issue Summary #1581 rdap to 1.5.2 Merge third-party library needed for complete fix of #1455 .","title":"Release 2.56.1"},{"location":"release_notes/#release-2560","text":"Beta Announcement Date: 13 March 2024 Release Date: 20 March 2024 GitHub issue Summary #1447 v2 search - support for ISO 3166 alpha-2 country codes v2 search now has support for ISO 3166 alpha-2 codes. #1495 Enable .KMZ export for Advanced Search results As title. #1489 Remove unneeded fields from the KMZ Removes field clutter to optimize file size. #1490 Spelling fix for KMZ Fixes spelling of 'Latitude'. #1099 Expose authentication methods on outbound federation Adds Authentication Method Reference field to OAuth profile, with choices from Section 2 of RFC8176 , documentation, and scope. #1133 Return auth error when multiple auth methods are used Now returns a 401 code with a helpful message when Authorization: Basic fails with corrupt base64 input. #1456 Duplicate AS-SET name Adds a tooltip suggesting hierarchical AS-SET names and a warning if a duplicate name is entered. #1331 BFD support field in Global and IX specific views Adds a boolean value for BFD support per IP address and a mouseover icon on the website when it's true. #1478 Social link controls showing up when not logged in Fixes a cosmetic bug that showed non-operational social media controls when not logged in. #1425 Update social media icons in footer Updates social media icons in the footer. #1152 Tab URLs don't work anymore Fixes tab URLs in the admin interface.","title":"Release 2.56.0"},{"location":"release_notes/#release-2550","text":"Beta Announcement Date: 21 February 2024 Release Date: 28 February 2024 GitHub issue Summary #1410 Adjust IPv4/6 prefix limits automatically Max prefix limit is now automatically adjusted based on the DFZ. #1455 Org name RIPE-NCC-END-MNT for new networks Fixes a bug that named orgs RIPE-NCC-END-MNT. #1468 translation refresh and dependency update translate.peeringdb.com updated to weblate 5.0 and other dependency updates. #1480 pdb_load_data no longer creates necessary org usergroups Fixes a bug with data sync tool.","title":"Release 2.55.0"},{"location":"release_notes/#release-2542","text":"Release Date: 31 January 2024 GitHub issue Summary #1536 Support 202311 rollback ux changes Reverted web UI changes that caused issues.","title":"Release 2.54.2"},{"location":"release_notes/#release-2541","text":"Release Date: 30 January 2024 GitHub issue Summary #1511 Non-obvious search box on the front page Search bar in header is now auto deployed. #1513 Mobile interface front page has lots of misaligned sections Fixes layout issues for some mobile devices. #1514 Two different search boxes on a network page information page in the same area As title. #1515 Bottom search box on some pages does not work correctly As title.","title":"Release 2.54.1"},{"location":"release_notes/#release-2540","text":"Beta Announcement Date: 18 January 2024 Release Date: 24 January 2024 GitHub issue Summary #1463 Update website to take advantage of wider screen and improve mobile device support As title. #1357 Clarifying the Network Type field Add multi-select for Network Type field. #1341 Only indicate availability of DC voltage for facilities Limits power options to non-standard voltages. #1476 v2 search not able to find organization and network - Marconi Solutions Srls Fixes a bug where bad search results are returned. #170 Add a \"flag bad data\" button on various places Adds a box web users can click to report bad data. #1430 Changing ASN field on \"Add Network\" to be numbers only The text box is now restricted to numbers, reducing scope for data entry issues. #1455 Org name RIPE-NCC-END-MNT for new networks Fixes a bug tat set some networks' names to RIPE-NCC-END-MNT. #1280 Improve RIR Update Procedure Improves the process for removing stale networks from PeeringDB. #1065 api-cache improvements As title. #1303 Add headers to API requests Adds a mechanism to indicate that behavior/schema has changed to API consumers. #1410 Adjust IPv4/6 prefix limits automatically Now automatically sets the maximum to 25% of the DFZ. #410 Add a \"last synced at $date\" to beta.peeringdb.com As title. #1468 translation refresh and dependency update As title. #1466 Analysis: Investigate use of ECS/Fargate As title. #1412 Improve performance by updating Python client code As title.","title":"Release 2.54.0"},{"location":"release_notes/#older-releases","text":"2023 Release Notes 2022 Release Notes 2021 Release Notes 2020 Release Notes","title":"Older releases"},{"location":"release_notes/release_notes_2020/","text":"2020 Release Notes The release notes list the GitHub issues and a summary of what has changed in PeeringDB software releases in 2020. Release notes for the current year are available on the Release Notes page. Each new release has a one week beta test period on the beta server before it goes live. The beta and new releases are announced on the PeeringDB Announce Mailing List and on Twitter , LinkedIn and Facebook . Release 2.24.0 Beta Announcement Date: 4 November, 2020 Release Date: 11 November, 2020 GitHub issue Summary #381 Network type: Add \"Government\" \u201cGovernment\u201d added as a network type. #463 Add new network type for networks that provide network services \u201cNetwork Services\" for networks whose function is to provide specialized services, like DNS, RDAP, Whois or DDoS protection added as a network type. #745 Add \u201cRoute Collector\u201d network type \u201cRoute Collector\u201d added as a network type. #747 Clean up info_type if name contains \"Route Servers\" or \"Route Collector\" Data cleanup related to #745. All networks with route collectors have now been properly classified. #665 Drop ixlan name from displaying at \"Peers at this Exchange Point\" Simplified the user interface by removing the name of the ixlan as there is now just one ixlan per exchange point. #775 Misleading tooltip of prefix limit fields NO Improved the user interface with better language in the tooltip. The distinction between maximum prefix length and maximum number of prefixes should now be clearer. #814 Suppress RDAP call for contact data/handles for NIC.br // AUTOTOOL Internal tool change. This change suppresses calls for contact data over RDAP because NIC.br is no longer allowed to provide direct calls for personal data. #803 Searching for a user in /cp/peeringdb_server/userorgaffiliationrequest results in 500 Internal tool change. Fixed an error that could return a 500 error on some searches. #688 Automate creation of Release Notes Internal tool change. A new script that extracts data from Github milestones to build the markdown for the release notes page. #851 sponsorship_notify RuntimeWarning (was: End of Sponsorship notification email is no longer working) Internal tool change to improve the tracking of sponsorship renewals. #861 add explicit order for fields in admin control panel Internal tool change. Display fields in an explicit order. #850 IX-F Importer: Repeated emails are being generated for things already emailed Internal procedure optimisation. A series of improvements to the IX-F importer tool. These changes are all related to improving notifications about data quality that were developed by the Data Ownership Task Force. #856 IX-F Importer: Make hyperlinks clickable when creating DeskPRO tickets See #850. #857 IX-F Importer: intermittent issue with speed validation See #850. #858 IX-F Importer: Make pdb_deskpro_publish command ignore importer tickets See #850. #859 IX-F Importer: ERROR: 'IXFMemberData' object has no attribute 'ixf_log_entry' See #850. #860 IX-F Importer Blocker: \"Days until DeskPRO ticket is created\" should now be ignored/removed, such that no ticket or emails happen after a delay See #850. Release 2.23.0 Beta Announcement Date: 30 September, 2020 Release Date: 7 October, 2020 GitHub issue Summary #833 - IX-F Importer: Add failed email resending Implement re-send mechanic for emails that could not be sent (indicated by a sent value of null). When re-sending an email add a note to the email stating \"This email could not be delivered initially and may contain stale information\". Add a field to the admin-com import emails table to show this note as well. Update sent if send is successful #832 - IX-F Importer: suggested update when it should be add + remove In some edge cases a deletion will end up as a requirement incorrectly to a legitimate new entry still. See #770 #816 #831 - [prod] IX-F importer: NameError: name 'EmailMultiAlternatives' is not defined Fixes broken email function of ix-f importer #826 - Make technical poc mandatory when adding a netixlan Upon creating a netixlan object check that net has at least one ( Technical , NOC , Policy ) poc and that the poc has an e-mail address. If not ask them to create one first. Visibility of at least one ( Technical , NOC , Policy ) poc has to be \"Users\" resp. \"Public\" #825 - [beta] IX-F importer: Make Importer return non-zero when there is an error that Ops should see Improvements to ix-f importer that allow for easier notification and tracking of errors for the Ops team #824 - IX-F Preview - shows the consolidated delete operation when it shouldn't Simplified the UI for consolidated modifications to improve user understanding #759 - Describe the 'never-via-routeservers' flag Add tooltip for never-via-routeservers option: \"Indicates if this network will announce its routes via route servers or not\" #571 - Facility registration tool adds identifier Fixes small UI bug in facility registration tool used by the Admin Committee #481 - Add min_speed and max_speed to ixlan Based on the discussion in #475 adds a new global setting that limits netixlan speed values now. It's not a property on the ixlan anymore. #371 - Clean up users in verification queue A tool to delete user entries older than 90 days from the so-called verification queue and run it on a regular schedule #370 - Make Website mandatory for suggesting a facility Website is now mandatory when suggesting a facility but zipcode only mandatory for countries that have zipcodes #321 - Typos in locale Fixes a number of typographical errors Release 2.22.0 Beta Announcement Date: 15 July, 2020 Release Date: 26 August, 2020 GitHub issue Summary #249 - Add the IX-F Member Export URL to the ixlan API endpoint There are two new fields in the ixlan section resp. the ixlan object, called ixf_ixp_member_list_url and ixf_ixp_member_list_url_visible. The first one contains the URL to the IX-F import file while the second governs the visibility of the URL. Values are the same as for the poc object, namely \"Public\", \"Users\" and \"Private\", defaulting to \"Private\" (i.e. or users who are members of the org). #268 - Database: unique constraints This issue fixes internal DB behaviour. #358 - Lock ASN once the record is created Once a network has been created, the field asn is made read-only. As the ASN is unique there is no reason to change it. Making the field read-only is to prevent unwanted side effects. #431 - Null 'rencode' from facility Null out all values for legacy unused rencode field, and make it read only to prepare for removal in PDB v3 [#625] (https://github.com/peeringdb/peeringdb/issues/625). #600 - Visibility for \"Allow IXP update\" switch A new field is added to the API net object, called allow_ixp_update. Furthermore, a line is added in global stats in the footer with a count (called \"Automated Networks\") of the networks which have \"Allow IXP Update\" enabled. #649 - Possible for 'ok' ixpfx to exist in 'pending' ixlan This issue fixes an internal bug. #683 - Add net_count_ixf field to ix object A field is added to the API object ix, called net_count_ixf, which indicates the number of net objects the exchange has in their IX-F JSON if they provide one. Otherwise, the value is null. #696 - Lock some objects from being deleted by the owner To protect operational data objects fac, ix, ixlan and org are prevented from being deleted as long as there are other objects related to it. First, these objects must be deleted before the object itself can be deleted. The attempt to delete such a protected object gives an error message and also opens a ticket with the PeeringDB support. #697 - Creating, changing, and deleting a netixlan object We completely re-implemented the way a connection to an exchange is handled. This new procedure allows both for a safe heads up a network can give to their peers as well as a safe way for exchanges to get rid of stale entries. Moreover, it allows networks to easily acknowledge new entries at exchanges which use the IX-F importer feature. See also the webinar for detailed information on this new procedure. Release 2.21.0 Beta Announcement Date: 24 June, 2020 Release Date: 1 July, 2020 GitHub issue Summary #72 - Enable sort and reverse sort of IP column in IX display Sort and reverse sort of IP column in IX display are added. Sort of the IP addresses in the expected natural order. The IPv4 address is the primary sort key. The IPv6 address is the secondary key. #121 - missing delete button for organizations New feature. An admin user is able to delete an org if it has no live objects under it. #290 - Offer 2FA 2FA is offered now. The implementation includes optional 2FA using TOTP is offered there is a knob in the user profile to enable and set it up email recovery is added using the verified user email address an icon is added in the org admin section to denote to org admins if users have 2FA enabled #352 - Mark IXP peering LAN as bogon Allow IXP to tag their LAN prefixes as bogons. In general, LAN prefixes should not be visible in the DFZ. If it should be visible, IXPs are able to debogonise them #356 - Sorting by clicking table headers should use local-compare Bugfix. Sorting now honours locale-sorting #519 - Make spelling of traffic levels consistent This is a bug fix and a minor improvement. Spelling is made consistent and traffic levels up to 100+Tbps are added. #526 - Show \"Last Updated\" fields on fac, ix, org records A \"Last Updated\" field is visible now for fac, ix, and org objects #537 - Posting https://www.peeringdb.com onto social media doesn't select a good preview image Add opengraph image for page preview. #566 - Should deleted personal data be accessable through the API? If a poc object is deleted it is made immediately non-gettable via the API, too. In case the corresponding net object was deleted unintentionally the object is still kept in the DB. After 30 days it will be hard-deleted. #569 - Don't return any POC data with status=deleted POC objects do have a visibility scope. If a POC record is deleted it should not be able to retrieve it at all, even if visibility had been set to \"public\" before. The data will still be kept internally for 30 days for rollback if the deletion happened unintentionally. After 30 days the record will be hard-deleted. #580 - Add a clear error message, when user tries to re-add a previously deleted facility Bug fix for an unclear behaviour. If a connection from a network to a facility was deleted the user was unable to re-add this connection by themselves and an unclear error message was given. Now, the user is able to re-add the connection. #618 - Support alternative direction of writing, e.g. Arabic For right-to-left written languages, the entire layout of the PeeringDB website has to be flipped around. #644 - Undeleting an ixlan with an emtpy IPv4 XOR IPv6 field throws a silly error Bugfix for the Admin Committee UI. An empty field was considered to be a legit non-null value and the system hence enforced uniqueness #650 - Add pointer from API docs to tutorial A URL is added from the API documentation website to the PeeringDB tutorials #654 - Add pointer from API docs to tutorial Bugfix for the Admin Committee UI. #663 - change default encoding of API calls to 'utf-8' The output of API calls will change from content-type: application/json; charset=iso-8859-1 to content-type: application/json; charset=utf-8 #664 - Selection should only present undeleted objects Admin Committee only related. Only non-deleted should be presented for selection #666 - Selection should only present undeleted objects When changing owner of an ix admin GUI borks because of \"Ixlan for exchange already exists\" #669 - Add help text to \"Add {Facility, Network, Exchange} tab Added a better help text to make crystal clear that adding a Facility, Network, or Exchange means that you are owning this object. #679 - Add read-only Superuser Provide PC members with a read-only access to the Admin UI. #712 - User is unable to update their net record Bug fix. Missing pointer to where the non-compliant value is Release 2.20.2 Release Date: 23 April, 2020 GitHub issue Summary #707 - Make source not required for IRR records Making source not required for IRR records. This requirement was an oversight during implementation of [#151 - Validation of IRR Records] (https://github.com/peeringdb/peeringdb/issues/151) that was released with 2.20.0 - see below. Product Committee revisited the issue after 2.20.0 and reports of concern from community and decided to retract the requirement in an emergency release Release 2.20.1 Release Date: 21 April, 2020 GitHub issue Summary #702 - Requests from peeringdb-py error 500 Emergency release for a config change Release 2.20.0 Beta Announcement Date: 15 April, 2020 Release Date: 21 April, 2020 GitHub issue Summary #151 - Validation of IRR Records To make the IRR as-set/route-set field of more operational value, strict rules apply the as-set/rs-set name has to conform to RFC 2622 (5.1 and 5.2) the source may be specified by AS-SET@SOURCE or SOURCE::AS-SET (preferred) valid sources are taken from the list of known IRRs multiple values must be separated by either ,, , or , (i.e. comma, space or comma followed by space) #189 - Improve explanatory and help text A clear help text is added for requesting affiliation to an organization. #251 - Limit number of concurrent affiliation requests per user In order to reduce organization affiliation request spamming, the number of pending organization requests has been limited to 5. #295 Desk pro tickets -> DeskPRO tickets This is a bug fix and only affects the Admin UI. #378 - Add contact information for Facilities (fac) the same way as for ix and net Contact information is added to Facilities and IXP. #452 - Org/Network name of a sponsor should not link to /sponsors, only the sponsor badge should This is a bug fix. From now on only when clicking on the sponsor badge will direct to the sponsor page. #462 - Route-server URL starting with ssh:// Add SSH as supported protocol. #539 - Add attribute 'operational' to 'netixlan' This is a new feature and allows networks to give early notice to their peers that they soon will show up at an IXP. There is a new check box when adding an IXP connection. By default, a connection is considered operational and the box is ticked. When the connection is still in provisioning status, please untick the box. When viewing, the warning glyphicon is shown right to the network name. The correspondent API object netixlan is enhanced by a boolean field operational defaulting to true. This feature is in line with the Data Ownership Policy . #548 - containerize server Internal software deployment system has been changed to use containers which reduces time spent by the ops team for deployments, allows for better scaling, and reduces the cost of entry for new developers to write and test their code. #555 - Notes field translate button disappears This is a bug fix. The \"Translate\" button is there for a moment and then disappeared. #557 - Show all languages on beta, even if translation is not ready for prod As soon as a new translation is starting it is available on the beta to help the translators and to encourage the community for input. #598 - bug caused by the org affiliationship request without an asn This is a bug fix and is only relevant for the PeeringDB Admin Committee. #609 - When creating an ix via the API also return ixlan_id and ixpfx_id When creating an IX record via API, the call will also return the implicitly created ixlan_id and ixpfx_id. This makes it simpler and reduces the number of calls that need to be made to the API. #615 - Insert links into ID fields in DESKPRO AUTOASN tickets This only affects tickets generated for PeeringDB Admin Committee. A link to the object in the UI is added. #626 - Update API docs Internal mechanisms for generating the API docs have been updated to current standards. This also allows for easier user contributions to the docs themselves. #634 - Remove support for python2 Python 2.7 and 3.4 support is being removed from PeeringDB packages. #636 - Don't create a new net object, when there only is an ASN block This is a bug fix and is only relevant for the PeeringDB Admin Committee. #667 - Fix use autocomplete fields in the admincom controlpanel to speed up loading times This is a bug fix and is only relevant for the PeeringDB Admin Committee.","title":"2020 Release Notes"},{"location":"release_notes/release_notes_2020/#2020-release-notes","text":"The release notes list the GitHub issues and a summary of what has changed in PeeringDB software releases in 2020. Release notes for the current year are available on the Release Notes page. Each new release has a one week beta test period on the beta server before it goes live. The beta and new releases are announced on the PeeringDB Announce Mailing List and on Twitter , LinkedIn and Facebook .","title":"2020 Release Notes"},{"location":"release_notes/release_notes_2020/#release-2240","text":"Beta Announcement Date: 4 November, 2020 Release Date: 11 November, 2020 GitHub issue Summary #381 Network type: Add \"Government\" \u201cGovernment\u201d added as a network type. #463 Add new network type for networks that provide network services \u201cNetwork Services\" for networks whose function is to provide specialized services, like DNS, RDAP, Whois or DDoS protection added as a network type. #745 Add \u201cRoute Collector\u201d network type \u201cRoute Collector\u201d added as a network type. #747 Clean up info_type if name contains \"Route Servers\" or \"Route Collector\" Data cleanup related to #745. All networks with route collectors have now been properly classified. #665 Drop ixlan name from displaying at \"Peers at this Exchange Point\" Simplified the user interface by removing the name of the ixlan as there is now just one ixlan per exchange point. #775 Misleading tooltip of prefix limit fields NO Improved the user interface with better language in the tooltip. The distinction between maximum prefix length and maximum number of prefixes should now be clearer. #814 Suppress RDAP call for contact data/handles for NIC.br // AUTOTOOL Internal tool change. This change suppresses calls for contact data over RDAP because NIC.br is no longer allowed to provide direct calls for personal data. #803 Searching for a user in /cp/peeringdb_server/userorgaffiliationrequest results in 500 Internal tool change. Fixed an error that could return a 500 error on some searches. #688 Automate creation of Release Notes Internal tool change. A new script that extracts data from Github milestones to build the markdown for the release notes page. #851 sponsorship_notify RuntimeWarning (was: End of Sponsorship notification email is no longer working) Internal tool change to improve the tracking of sponsorship renewals. #861 add explicit order for fields in admin control panel Internal tool change. Display fields in an explicit order. #850 IX-F Importer: Repeated emails are being generated for things already emailed Internal procedure optimisation. A series of improvements to the IX-F importer tool. These changes are all related to improving notifications about data quality that were developed by the Data Ownership Task Force. #856 IX-F Importer: Make hyperlinks clickable when creating DeskPRO tickets See #850. #857 IX-F Importer: intermittent issue with speed validation See #850. #858 IX-F Importer: Make pdb_deskpro_publish command ignore importer tickets See #850. #859 IX-F Importer: ERROR: 'IXFMemberData' object has no attribute 'ixf_log_entry' See #850. #860 IX-F Importer Blocker: \"Days until DeskPRO ticket is created\" should now be ignored/removed, such that no ticket or emails happen after a delay See #850.","title":"Release 2.24.0"},{"location":"release_notes/release_notes_2020/#release-2230","text":"Beta Announcement Date: 30 September, 2020 Release Date: 7 October, 2020 GitHub issue Summary #833 - IX-F Importer: Add failed email resending Implement re-send mechanic for emails that could not be sent (indicated by a sent value of null). When re-sending an email add a note to the email stating \"This email could not be delivered initially and may contain stale information\". Add a field to the admin-com import emails table to show this note as well. Update sent if send is successful #832 - IX-F Importer: suggested update when it should be add + remove In some edge cases a deletion will end up as a requirement incorrectly to a legitimate new entry still. See #770 #816 #831 - [prod] IX-F importer: NameError: name 'EmailMultiAlternatives' is not defined Fixes broken email function of ix-f importer #826 - Make technical poc mandatory when adding a netixlan Upon creating a netixlan object check that net has at least one ( Technical , NOC , Policy ) poc and that the poc has an e-mail address. If not ask them to create one first. Visibility of at least one ( Technical , NOC , Policy ) poc has to be \"Users\" resp. \"Public\" #825 - [beta] IX-F importer: Make Importer return non-zero when there is an error that Ops should see Improvements to ix-f importer that allow for easier notification and tracking of errors for the Ops team #824 - IX-F Preview - shows the consolidated delete operation when it shouldn't Simplified the UI for consolidated modifications to improve user understanding #759 - Describe the 'never-via-routeservers' flag Add tooltip for never-via-routeservers option: \"Indicates if this network will announce its routes via route servers or not\" #571 - Facility registration tool adds identifier Fixes small UI bug in facility registration tool used by the Admin Committee #481 - Add min_speed and max_speed to ixlan Based on the discussion in #475 adds a new global setting that limits netixlan speed values now. It's not a property on the ixlan anymore. #371 - Clean up users in verification queue A tool to delete user entries older than 90 days from the so-called verification queue and run it on a regular schedule #370 - Make Website mandatory for suggesting a facility Website is now mandatory when suggesting a facility but zipcode only mandatory for countries that have zipcodes #321 - Typos in locale Fixes a number of typographical errors","title":"Release 2.23.0"},{"location":"release_notes/release_notes_2020/#release-2220","text":"Beta Announcement Date: 15 July, 2020 Release Date: 26 August, 2020 GitHub issue Summary #249 - Add the IX-F Member Export URL to the ixlan API endpoint There are two new fields in the ixlan section resp. the ixlan object, called ixf_ixp_member_list_url and ixf_ixp_member_list_url_visible. The first one contains the URL to the IX-F import file while the second governs the visibility of the URL. Values are the same as for the poc object, namely \"Public\", \"Users\" and \"Private\", defaulting to \"Private\" (i.e. or users who are members of the org). #268 - Database: unique constraints This issue fixes internal DB behaviour. #358 - Lock ASN once the record is created Once a network has been created, the field asn is made read-only. As the ASN is unique there is no reason to change it. Making the field read-only is to prevent unwanted side effects. #431 - Null 'rencode' from facility Null out all values for legacy unused rencode field, and make it read only to prepare for removal in PDB v3 [#625] (https://github.com/peeringdb/peeringdb/issues/625). #600 - Visibility for \"Allow IXP update\" switch A new field is added to the API net object, called allow_ixp_update. Furthermore, a line is added in global stats in the footer with a count (called \"Automated Networks\") of the networks which have \"Allow IXP Update\" enabled. #649 - Possible for 'ok' ixpfx to exist in 'pending' ixlan This issue fixes an internal bug. #683 - Add net_count_ixf field to ix object A field is added to the API object ix, called net_count_ixf, which indicates the number of net objects the exchange has in their IX-F JSON if they provide one. Otherwise, the value is null. #696 - Lock some objects from being deleted by the owner To protect operational data objects fac, ix, ixlan and org are prevented from being deleted as long as there are other objects related to it. First, these objects must be deleted before the object itself can be deleted. The attempt to delete such a protected object gives an error message and also opens a ticket with the PeeringDB support. #697 - Creating, changing, and deleting a netixlan object We completely re-implemented the way a connection to an exchange is handled. This new procedure allows both for a safe heads up a network can give to their peers as well as a safe way for exchanges to get rid of stale entries. Moreover, it allows networks to easily acknowledge new entries at exchanges which use the IX-F importer feature. See also the webinar for detailed information on this new procedure.","title":"Release 2.22.0"},{"location":"release_notes/release_notes_2020/#release-2210","text":"Beta Announcement Date: 24 June, 2020 Release Date: 1 July, 2020 GitHub issue Summary #72 - Enable sort and reverse sort of IP column in IX display Sort and reverse sort of IP column in IX display are added. Sort of the IP addresses in the expected natural order. The IPv4 address is the primary sort key. The IPv6 address is the secondary key. #121 - missing delete button for organizations New feature. An admin user is able to delete an org if it has no live objects under it. #290 - Offer 2FA 2FA is offered now. The implementation includes optional 2FA using TOTP is offered there is a knob in the user profile to enable and set it up email recovery is added using the verified user email address an icon is added in the org admin section to denote to org admins if users have 2FA enabled #352 - Mark IXP peering LAN as bogon Allow IXP to tag their LAN prefixes as bogons. In general, LAN prefixes should not be visible in the DFZ. If it should be visible, IXPs are able to debogonise them #356 - Sorting by clicking table headers should use local-compare Bugfix. Sorting now honours locale-sorting #519 - Make spelling of traffic levels consistent This is a bug fix and a minor improvement. Spelling is made consistent and traffic levels up to 100+Tbps are added. #526 - Show \"Last Updated\" fields on fac, ix, org records A \"Last Updated\" field is visible now for fac, ix, and org objects #537 - Posting https://www.peeringdb.com onto social media doesn't select a good preview image Add opengraph image for page preview. #566 - Should deleted personal data be accessable through the API? If a poc object is deleted it is made immediately non-gettable via the API, too. In case the corresponding net object was deleted unintentionally the object is still kept in the DB. After 30 days it will be hard-deleted. #569 - Don't return any POC data with status=deleted POC objects do have a visibility scope. If a POC record is deleted it should not be able to retrieve it at all, even if visibility had been set to \"public\" before. The data will still be kept internally for 30 days for rollback if the deletion happened unintentionally. After 30 days the record will be hard-deleted. #580 - Add a clear error message, when user tries to re-add a previously deleted facility Bug fix for an unclear behaviour. If a connection from a network to a facility was deleted the user was unable to re-add this connection by themselves and an unclear error message was given. Now, the user is able to re-add the connection. #618 - Support alternative direction of writing, e.g. Arabic For right-to-left written languages, the entire layout of the PeeringDB website has to be flipped around. #644 - Undeleting an ixlan with an emtpy IPv4 XOR IPv6 field throws a silly error Bugfix for the Admin Committee UI. An empty field was considered to be a legit non-null value and the system hence enforced uniqueness #650 - Add pointer from API docs to tutorial A URL is added from the API documentation website to the PeeringDB tutorials #654 - Add pointer from API docs to tutorial Bugfix for the Admin Committee UI. #663 - change default encoding of API calls to 'utf-8' The output of API calls will change from content-type: application/json; charset=iso-8859-1 to content-type: application/json; charset=utf-8 #664 - Selection should only present undeleted objects Admin Committee only related. Only non-deleted should be presented for selection #666 - Selection should only present undeleted objects When changing owner of an ix admin GUI borks because of \"Ixlan for exchange already exists\" #669 - Add help text to \"Add {Facility, Network, Exchange} tab Added a better help text to make crystal clear that adding a Facility, Network, or Exchange means that you are owning this object. #679 - Add read-only Superuser Provide PC members with a read-only access to the Admin UI. #712 - User is unable to update their net record Bug fix. Missing pointer to where the non-compliant value is","title":"Release 2.21.0"},{"location":"release_notes/release_notes_2020/#release-2202","text":"Release Date: 23 April, 2020 GitHub issue Summary #707 - Make source not required for IRR records Making source not required for IRR records. This requirement was an oversight during implementation of [#151 - Validation of IRR Records] (https://github.com/peeringdb/peeringdb/issues/151) that was released with 2.20.0 - see below. Product Committee revisited the issue after 2.20.0 and reports of concern from community and decided to retract the requirement in an emergency release","title":"Release 2.20.2"},{"location":"release_notes/release_notes_2020/#release-2201","text":"Release Date: 21 April, 2020 GitHub issue Summary #702 - Requests from peeringdb-py error 500 Emergency release for a config change","title":"Release 2.20.1"},{"location":"release_notes/release_notes_2020/#release-2200","text":"Beta Announcement Date: 15 April, 2020 Release Date: 21 April, 2020 GitHub issue Summary #151 - Validation of IRR Records To make the IRR as-set/route-set field of more operational value, strict rules apply the as-set/rs-set name has to conform to RFC 2622 (5.1 and 5.2) the source may be specified by AS-SET@SOURCE or SOURCE::AS-SET (preferred) valid sources are taken from the list of known IRRs multiple values must be separated by either ,, , or , (i.e. comma, space or comma followed by space) #189 - Improve explanatory and help text A clear help text is added for requesting affiliation to an organization. #251 - Limit number of concurrent affiliation requests per user In order to reduce organization affiliation request spamming, the number of pending organization requests has been limited to 5. #295 Desk pro tickets -> DeskPRO tickets This is a bug fix and only affects the Admin UI. #378 - Add contact information for Facilities (fac) the same way as for ix and net Contact information is added to Facilities and IXP. #452 - Org/Network name of a sponsor should not link to /sponsors, only the sponsor badge should This is a bug fix. From now on only when clicking on the sponsor badge will direct to the sponsor page. #462 - Route-server URL starting with ssh:// Add SSH as supported protocol. #539 - Add attribute 'operational' to 'netixlan' This is a new feature and allows networks to give early notice to their peers that they soon will show up at an IXP. There is a new check box when adding an IXP connection. By default, a connection is considered operational and the box is ticked. When the connection is still in provisioning status, please untick the box. When viewing, the warning glyphicon is shown right to the network name. The correspondent API object netixlan is enhanced by a boolean field operational defaulting to true. This feature is in line with the Data Ownership Policy . #548 - containerize server Internal software deployment system has been changed to use containers which reduces time spent by the ops team for deployments, allows for better scaling, and reduces the cost of entry for new developers to write and test their code. #555 - Notes field translate button disappears This is a bug fix. The \"Translate\" button is there for a moment and then disappeared. #557 - Show all languages on beta, even if translation is not ready for prod As soon as a new translation is starting it is available on the beta to help the translators and to encourage the community for input. #598 - bug caused by the org affiliationship request without an asn This is a bug fix and is only relevant for the PeeringDB Admin Committee. #609 - When creating an ix via the API also return ixlan_id and ixpfx_id When creating an IX record via API, the call will also return the implicitly created ixlan_id and ixpfx_id. This makes it simpler and reduces the number of calls that need to be made to the API. #615 - Insert links into ID fields in DESKPRO AUTOASN tickets This only affects tickets generated for PeeringDB Admin Committee. A link to the object in the UI is added. #626 - Update API docs Internal mechanisms for generating the API docs have been updated to current standards. This also allows for easier user contributions to the docs themselves. #634 - Remove support for python2 Python 2.7 and 3.4 support is being removed from PeeringDB packages. #636 - Don't create a new net object, when there only is an ASN block This is a bug fix and is only relevant for the PeeringDB Admin Committee. #667 - Fix use autocomplete fields in the admincom controlpanel to speed up loading times This is a bug fix and is only relevant for the PeeringDB Admin Committee.","title":"Release 2.20.0"},{"location":"release_notes/release_notes_2021/","text":"2021 Release Notes The release notes list the GitHub issues and a summary of what has changed in PeeringDB software releases. Release notes for the current year are available on the Release Notes page. Each new release has a one week beta test period on the beta server before it goes live. The beta and new releases are announced on the PeeringDB Announce Mailing List and on Twitter , LinkedIn and Facebook . Release 2.32.0 Beta Announcement Date: 10 November 2021 Release Date: 17 November 2021 GitHub issue Summary #695 Auto focus cursor on search field on main website Places cursor in search box on first opening https://www.peeringdb.com #954 Rework ordering of dependencies Improved load speed for pages with large lists #748 PeeringDB website has a poor choice of line-breaks for IPv6 addresses IP addresses now have a no wrap style option so their numeric values aren't broken across lines #949 Add sales email and phone contact to ix object ix objects can now have a sales_email and sales_phone #838 Delete childless org objects Notifies admins of childless org s that they have no objects and deletes the org after 30 days if none are added #956 api documentation generate broken Fixes a bug that stopped the https://www.peeringdb.com/apidocs/ beingh updated automatically #962 Increase timeout timer for IX-F JSON importer to 30s Adds setting to control IX-F importer request timeout and default to 30 seconds #1054 IX-F manually triggered import bugs Fixes bugs triggered by manually importing IX-F data #807 [beta] IX-F importer: manual add followed by IX-F prompted add can result in \"The server rejected your data\" Resolves a bug triggered by manually adding netixlan in rare situations Release 2.31.0 Beta Announcement Date: 12 October 2021 Release Date: 20 October 2021 GitHub issue Summary #995 Block registering private ASN ranges Improves error message to user when attempting to register private ASNs and no longer automatically creates a support ticket #1007 Add a continental region field for facilities Continental region is now recorded for fac and is searchable from the advanced search page #18 IXP and Facility summary Presents a short statistical summary for ix 's and fac s #232 Incorrect order of search results ASNs will be moved to the top of the search results when a numeric search is an exact match for that ASN #346 Allow users to upload a small logo to their record orgs can now include a small logo in their record #453 Missing sponsor status in translations Fixed a bug so sponsor badges now show up properly in translations Release 2.30.0 Beta Announcement Date: 14 September 2021 Release Date: 22 September 2021 GitHub issue Summary #1944 Remove visibility \"Private\" from POC Make the \"Private\" visibility status invalid and requires an admin to review and update contacts when next making an update to their poc information #800 Additional self-selection fields for Facilities Adds additional fields to Facilities: Offered Space, Offered Power, Offered Resilience with appropriate details #1016 Add additional advanced search filters for new facility fields from #800 Adds the ability to search based on the new elements defined in #800 using Advanced Search #1032 Issue with api relationship filtering via __id Fixes a bug that impacted filtered searches made via the API #500 When network sets netixlan speed to 1200000 only 1T is shown instead of 1.2T ... sometimes Fixes a bug for speeds above 1Tb #1021 504 Gateway Time-out Fixes a timeout problem with the adminsitrative interface #1019 IX-F Importer: needless saves to deleted netixlans Fixes a bug that unnecessarily saved data to deleted objects Release 2.29.1 Release Date: 26 August 2021 GitHub issue Summary #1034 CORS Access-Control-Allow-Origin header missing in API responses Fixes an issue that stopped cross site API requests in the browser #1036 Issue with verification queue and deskpro ticket creation Fixes an issue that stopped newly created objects creating verification queue entries and a deskpro ticket Release 2.29.0 Beta Announcement Date: 18 August 2021 Release Date: 25 August 2021 GitHub issue Summary #779 Allow IXP to trigger ix-f importer for their exchange Exchanges can now trigger theIX-F importer and the UI communicates the status of the request #920 IX-F Importer: ticket status change when posting re-occuring conflict to existing resolved ticket Improve internal handling of IX-F importer conflicts #967 IX-F Importer: fix command output buffering Improve handling of output from IX-F importer command #903 Describe the 'DOT1Q' flag Set the field to false and made it read only (with a tooltip for the web interface) until v3 of the API #715 Support for Django 3 Upgrade to Django 3.2.1 and upgrade dependencies where possible #166 Add name, city, country to ixfac (GET operation) Add read-only fields name , city and country to object ixfac . The values for these fields are fac.name , fac.city and fac.country from the facility fac with id == fac_id #1023 Bug with email reports for internal errors Fixes an error with e-mail notifications for internal errors #1026 Fallback captcha solution is broken Fixes the fallback CAPTCHA on the account signup page #1013 The process to permanently remove old soft-deleted network contacts pdb_delete_pocs raises a false ProtectedAction Fixes a problem with adminsitrators permanently deleting contacts. #1015 Fallback captcha solution is broken Fixes a CAPTCHA bug affecting the AC through work on #715 Release 2.28.0 Beta Announcement Date: 14 July 2021 Release Date: 21 July 2021 GitHub issue Summary #23 make websearch smarter Provide a better search experience for quick search, advanced search and API filtering. The key features are properly indexed search, which supports search based on partial name matches, and geocoded search, which supports search based on coordinates. #965 IX-F importer: intermittent bug during consolidation of notifications Fixes a bug with the IX-F Member Export importer that resulted in intermittent import failures. #863 Improve error handling when a user tries to add an object which is already there Increases visibility of field validation error notes by increasing size and font weight. #375 On changing email address rescan open affiliation requests When a user changes their e-mail address we now automatically re-evaluate any open affiliation request that the user has that are tied to an ASN. #923 Prevent deletion of a last technical contact if there is an existing netixlan object Prevents deletion of the last technical contact of existing netixlan , i.e. enforce that netixlan should always have at least one technical contact Release 2.27.1 Beta Announcement Date: 19 May, 2021 Release Date: 26 May, 2021 GitHub issue Summary #946 Evaluate non-google map/geo sources Evaluated alternative geo data APIs and selected Melissa. #802 Extend Advanced Search for IXes and Facilities Adds search filters to advanced search (ix capacity search, organization presence search, and network presence search.) #799 Additional self-selection fields for IX objects Added service_level and terms fields to InternetExchange objects to allow exchanges to share additional ifnormation about their offering. These are supported as filters in the advanced search. #834 Add ix_count to object fac In the API, added a read-only field to fac called ix_count that counts the number of exchanges the linked to the facility). #835 Add {ix,fac}_count to object net In the API, added read-only fields to net called ix_count and fac_count that count the number of exchanges and facilities linked to the network). #836 Add fac_count to object ix In the API, added a read-only field to ix called fac_count that counts the number of facilities in which the exchange has a presence. #922 Circumvent approval of a facility by deleting and re-adding Fixed bug where if a user deletes a status \"pending\" fac, they can re-add it and it will be status \"ok\" (should be \"pending\"). #810 Get rid of the 'Protocols supported' fields / UI for IXes Removed proto_unicast , proto_multicast , and proto_ipv6 fields from ix UI. The fields remain in the v2 api but proto_ipv6 and proto_unicast will be populated from the existance of protocols in the exchange's ixpfx records. #985 500 Error on advanced search Resolved an issue where unauthenticated users got a 500 error in advanced search. Release 2.26.1 Beta Announcement Date: 14 April, 2021 Release Date: 21 April, 2021 GitHub issue Summary #883 IXF-Importer: minimise emails to Support/DeskPRO/AC This change collates all importer suggestions into a single e-mail notification. #931 Limit the number of requests for affiliation to an ASN/org to 1 Limits the number of affiliation request to an ASN to just one. Provides visual feedback on subsequent request attempts. #913 API should do an IP6 address instead of a string match Normalizes how IPv6 addresses are stored in the database and updates existing IPv6 addresses in the databases and elsewhere. Release 2.26.0 Beta Announcement Date: 10 March, 2021 Release Date: 24 March, 2021 GitHub issue Summary #266 Add API Keys This release introduces organization level API Keys . #827 Make GUI and API feature equivalent PeeringDB has a GUI and an API. This issue is a reminder to keep both feature equivalent. #865 Allow arbitrary decimal places as input for longitude and latitude. Systems rounds to six Allow arbitrary length of inputs to latitude and longitude. Round to 6 digits (including Google Maps output). #902 Add \"long name\" or \"aka\" field to 'fac' records add fields aka and name_long to object fac , ix , net , and org . #937 Geocode for org is broken This was fixed through work on #940. #939 Replace Validation Error with Validation \"Warning\" for geolocation validation If our address validation service cannot find an address corresponding to the user-inputed address it will allow the object to be saved and raise a \"validation warning\" in the meta object of the API response. The web UI will display a pop-up based on this warning. #940 Return geo-normalized fields as \"suggested address\" In an effort to normalize addresses, the system may overwrite the user input. In case of a mismatch, the user now is prompted with a \"suggested address\" and either confirms or rejects. In case of rejection, the address is taken as provided by the user. Please keep an eye on what you provided and what is suggested. The suggestion may flip street name and house name as well as cut off postal codes. #918 drop travis ci and move to github actions Changed CI environment to improve deployment speed. Release 2.25.0 Release Date: 3 February, 2021 GitHub issue Summary #246 IXF should be IX-F This release introduces various spelling corrections. #828 IX-F importer: Handle ipv4/ipv6 on same vlan but separate connections This issue deals with how the IX-F importer handles information from the IX-F JSON import. PeeringDB handles both the IPv4 as well as the IPv6 address in the same object ( netixlan ). And from a peering partner pov this is ok as it doesn't matter whether these addresses are on the same interface or even same router. However, IX-F JSON differentiates. For the time being, the importer combines IPv4 and IPv6 if both are set to an operational status in the IX-F JSON. #846 IX-F importer: if ixf_ixp_member_list_url is null then ixf_ixp_import_enabled can't be true Apply logic to the meaning of ixf_ixp_member_list_url . i.e. only allow ixf_ixp_import_enabled to be set to true if a URL is specified. #875 \"IXF-Importer: improved handling of how contacts are joined into direct conflict resolution deskpro tickets\" Resolved an issue where responses to automatically generated Deskpro tickets were routed to the wrong ticket. #878 IXF-Importer: reorder of email content This is mainly an internal improvement. And fixes also not disclosing private IXP information to the public. #882 IXF-Importer: don't abort when there is nothing to import If there is nothing to import from an IX-F JSON don't abort with an error message. #893 IX-F Importer: history of changes per ixlan & netixlan Fixed bug related to the logging of importer changes. #896 IX-F Importer: Bogus output of \"Preview\" tool Fixed a bug in the preview tool, where invalid member type ignored messages weren't filtered for the network viewing the preview. #888 Type issue when overriding settings through environment variables for numeric types Fixed a bug and now ensure that overrides are coerced to the correct expected type. #872 Update dependencies Updated container to python 3.9 and addressed all dependencies. #694 add syntactic sugar for entering port speeds Simplifies the UI for editing port speeds to make it more human friendly. #717 Loading time issue /cp facility view Fixed slow load or timeouts for loading data for some facilities #837 Provide a friendlier explanation when entering / changing a phone number Provides a tooltip to help people enter E.164 formatted telephone numbers. #541 When looking at a network record, show last updated ix<->net or fac<->net date Improved information about when records were last updated.","title":"2021 Release Notes"},{"location":"release_notes/release_notes_2021/#2021-release-notes","text":"The release notes list the GitHub issues and a summary of what has changed in PeeringDB software releases. Release notes for the current year are available on the Release Notes page. Each new release has a one week beta test period on the beta server before it goes live. The beta and new releases are announced on the PeeringDB Announce Mailing List and on Twitter , LinkedIn and Facebook .","title":"2021 Release Notes"},{"location":"release_notes/release_notes_2021/#release-2320","text":"Beta Announcement Date: 10 November 2021 Release Date: 17 November 2021 GitHub issue Summary #695 Auto focus cursor on search field on main website Places cursor in search box on first opening https://www.peeringdb.com #954 Rework ordering of dependencies Improved load speed for pages with large lists #748 PeeringDB website has a poor choice of line-breaks for IPv6 addresses IP addresses now have a no wrap style option so their numeric values aren't broken across lines #949 Add sales email and phone contact to ix object ix objects can now have a sales_email and sales_phone #838 Delete childless org objects Notifies admins of childless org s that they have no objects and deletes the org after 30 days if none are added #956 api documentation generate broken Fixes a bug that stopped the https://www.peeringdb.com/apidocs/ beingh updated automatically #962 Increase timeout timer for IX-F JSON importer to 30s Adds setting to control IX-F importer request timeout and default to 30 seconds #1054 IX-F manually triggered import bugs Fixes bugs triggered by manually importing IX-F data #807 [beta] IX-F importer: manual add followed by IX-F prompted add can result in \"The server rejected your data\" Resolves a bug triggered by manually adding netixlan in rare situations","title":"Release 2.32.0"},{"location":"release_notes/release_notes_2021/#release-2310","text":"Beta Announcement Date: 12 October 2021 Release Date: 20 October 2021 GitHub issue Summary #995 Block registering private ASN ranges Improves error message to user when attempting to register private ASNs and no longer automatically creates a support ticket #1007 Add a continental region field for facilities Continental region is now recorded for fac and is searchable from the advanced search page #18 IXP and Facility summary Presents a short statistical summary for ix 's and fac s #232 Incorrect order of search results ASNs will be moved to the top of the search results when a numeric search is an exact match for that ASN #346 Allow users to upload a small logo to their record orgs can now include a small logo in their record #453 Missing sponsor status in translations Fixed a bug so sponsor badges now show up properly in translations","title":"Release 2.31.0"},{"location":"release_notes/release_notes_2021/#release-2300","text":"Beta Announcement Date: 14 September 2021 Release Date: 22 September 2021 GitHub issue Summary #1944 Remove visibility \"Private\" from POC Make the \"Private\" visibility status invalid and requires an admin to review and update contacts when next making an update to their poc information #800 Additional self-selection fields for Facilities Adds additional fields to Facilities: Offered Space, Offered Power, Offered Resilience with appropriate details #1016 Add additional advanced search filters for new facility fields from #800 Adds the ability to search based on the new elements defined in #800 using Advanced Search #1032 Issue with api relationship filtering via __id Fixes a bug that impacted filtered searches made via the API #500 When network sets netixlan speed to 1200000 only 1T is shown instead of 1.2T ... sometimes Fixes a bug for speeds above 1Tb #1021 504 Gateway Time-out Fixes a timeout problem with the adminsitrative interface #1019 IX-F Importer: needless saves to deleted netixlans Fixes a bug that unnecessarily saved data to deleted objects","title":"Release 2.30.0"},{"location":"release_notes/release_notes_2021/#release-2291","text":"Release Date: 26 August 2021 GitHub issue Summary #1034 CORS Access-Control-Allow-Origin header missing in API responses Fixes an issue that stopped cross site API requests in the browser #1036 Issue with verification queue and deskpro ticket creation Fixes an issue that stopped newly created objects creating verification queue entries and a deskpro ticket","title":"Release 2.29.1"},{"location":"release_notes/release_notes_2021/#release-2290","text":"Beta Announcement Date: 18 August 2021 Release Date: 25 August 2021 GitHub issue Summary #779 Allow IXP to trigger ix-f importer for their exchange Exchanges can now trigger theIX-F importer and the UI communicates the status of the request #920 IX-F Importer: ticket status change when posting re-occuring conflict to existing resolved ticket Improve internal handling of IX-F importer conflicts #967 IX-F Importer: fix command output buffering Improve handling of output from IX-F importer command #903 Describe the 'DOT1Q' flag Set the field to false and made it read only (with a tooltip for the web interface) until v3 of the API #715 Support for Django 3 Upgrade to Django 3.2.1 and upgrade dependencies where possible #166 Add name, city, country to ixfac (GET operation) Add read-only fields name , city and country to object ixfac . The values for these fields are fac.name , fac.city and fac.country from the facility fac with id == fac_id #1023 Bug with email reports for internal errors Fixes an error with e-mail notifications for internal errors #1026 Fallback captcha solution is broken Fixes the fallback CAPTCHA on the account signup page #1013 The process to permanently remove old soft-deleted network contacts pdb_delete_pocs raises a false ProtectedAction Fixes a problem with adminsitrators permanently deleting contacts. #1015 Fallback captcha solution is broken Fixes a CAPTCHA bug affecting the AC through work on #715","title":"Release 2.29.0"},{"location":"release_notes/release_notes_2021/#release-2280","text":"Beta Announcement Date: 14 July 2021 Release Date: 21 July 2021 GitHub issue Summary #23 make websearch smarter Provide a better search experience for quick search, advanced search and API filtering. The key features are properly indexed search, which supports search based on partial name matches, and geocoded search, which supports search based on coordinates. #965 IX-F importer: intermittent bug during consolidation of notifications Fixes a bug with the IX-F Member Export importer that resulted in intermittent import failures. #863 Improve error handling when a user tries to add an object which is already there Increases visibility of field validation error notes by increasing size and font weight. #375 On changing email address rescan open affiliation requests When a user changes their e-mail address we now automatically re-evaluate any open affiliation request that the user has that are tied to an ASN. #923 Prevent deletion of a last technical contact if there is an existing netixlan object Prevents deletion of the last technical contact of existing netixlan , i.e. enforce that netixlan should always have at least one technical contact","title":"Release 2.28.0"},{"location":"release_notes/release_notes_2021/#release-2271","text":"Beta Announcement Date: 19 May, 2021 Release Date: 26 May, 2021 GitHub issue Summary #946 Evaluate non-google map/geo sources Evaluated alternative geo data APIs and selected Melissa. #802 Extend Advanced Search for IXes and Facilities Adds search filters to advanced search (ix capacity search, organization presence search, and network presence search.) #799 Additional self-selection fields for IX objects Added service_level and terms fields to InternetExchange objects to allow exchanges to share additional ifnormation about their offering. These are supported as filters in the advanced search. #834 Add ix_count to object fac In the API, added a read-only field to fac called ix_count that counts the number of exchanges the linked to the facility). #835 Add {ix,fac}_count to object net In the API, added read-only fields to net called ix_count and fac_count that count the number of exchanges and facilities linked to the network). #836 Add fac_count to object ix In the API, added a read-only field to ix called fac_count that counts the number of facilities in which the exchange has a presence. #922 Circumvent approval of a facility by deleting and re-adding Fixed bug where if a user deletes a status \"pending\" fac, they can re-add it and it will be status \"ok\" (should be \"pending\"). #810 Get rid of the 'Protocols supported' fields / UI for IXes Removed proto_unicast , proto_multicast , and proto_ipv6 fields from ix UI. The fields remain in the v2 api but proto_ipv6 and proto_unicast will be populated from the existance of protocols in the exchange's ixpfx records. #985 500 Error on advanced search Resolved an issue where unauthenticated users got a 500 error in advanced search.","title":"Release 2.27.1"},{"location":"release_notes/release_notes_2021/#release-2261","text":"Beta Announcement Date: 14 April, 2021 Release Date: 21 April, 2021 GitHub issue Summary #883 IXF-Importer: minimise emails to Support/DeskPRO/AC This change collates all importer suggestions into a single e-mail notification. #931 Limit the number of requests for affiliation to an ASN/org to 1 Limits the number of affiliation request to an ASN to just one. Provides visual feedback on subsequent request attempts. #913 API should do an IP6 address instead of a string match Normalizes how IPv6 addresses are stored in the database and updates existing IPv6 addresses in the databases and elsewhere.","title":"Release 2.26.1"},{"location":"release_notes/release_notes_2021/#release-2260","text":"Beta Announcement Date: 10 March, 2021 Release Date: 24 March, 2021 GitHub issue Summary #266 Add API Keys This release introduces organization level API Keys . #827 Make GUI and API feature equivalent PeeringDB has a GUI and an API. This issue is a reminder to keep both feature equivalent. #865 Allow arbitrary decimal places as input for longitude and latitude. Systems rounds to six Allow arbitrary length of inputs to latitude and longitude. Round to 6 digits (including Google Maps output). #902 Add \"long name\" or \"aka\" field to 'fac' records add fields aka and name_long to object fac , ix , net , and org . #937 Geocode for org is broken This was fixed through work on #940. #939 Replace Validation Error with Validation \"Warning\" for geolocation validation If our address validation service cannot find an address corresponding to the user-inputed address it will allow the object to be saved and raise a \"validation warning\" in the meta object of the API response. The web UI will display a pop-up based on this warning. #940 Return geo-normalized fields as \"suggested address\" In an effort to normalize addresses, the system may overwrite the user input. In case of a mismatch, the user now is prompted with a \"suggested address\" and either confirms or rejects. In case of rejection, the address is taken as provided by the user. Please keep an eye on what you provided and what is suggested. The suggestion may flip street name and house name as well as cut off postal codes. #918 drop travis ci and move to github actions Changed CI environment to improve deployment speed.","title":"Release 2.26.0"},{"location":"release_notes/release_notes_2021/#release-2250","text":"Release Date: 3 February, 2021 GitHub issue Summary #246 IXF should be IX-F This release introduces various spelling corrections. #828 IX-F importer: Handle ipv4/ipv6 on same vlan but separate connections This issue deals with how the IX-F importer handles information from the IX-F JSON import. PeeringDB handles both the IPv4 as well as the IPv6 address in the same object ( netixlan ). And from a peering partner pov this is ok as it doesn't matter whether these addresses are on the same interface or even same router. However, IX-F JSON differentiates. For the time being, the importer combines IPv4 and IPv6 if both are set to an operational status in the IX-F JSON. #846 IX-F importer: if ixf_ixp_member_list_url is null then ixf_ixp_import_enabled can't be true Apply logic to the meaning of ixf_ixp_member_list_url . i.e. only allow ixf_ixp_import_enabled to be set to true if a URL is specified. #875 \"IXF-Importer: improved handling of how contacts are joined into direct conflict resolution deskpro tickets\" Resolved an issue where responses to automatically generated Deskpro tickets were routed to the wrong ticket. #878 IXF-Importer: reorder of email content This is mainly an internal improvement. And fixes also not disclosing private IXP information to the public. #882 IXF-Importer: don't abort when there is nothing to import If there is nothing to import from an IX-F JSON don't abort with an error message. #893 IX-F Importer: history of changes per ixlan & netixlan Fixed bug related to the logging of importer changes. #896 IX-F Importer: Bogus output of \"Preview\" tool Fixed a bug in the preview tool, where invalid member type ignored messages weren't filtered for the network viewing the preview. #888 Type issue when overriding settings through environment variables for numeric types Fixed a bug and now ensure that overrides are coerced to the correct expected type. #872 Update dependencies Updated container to python 3.9 and addressed all dependencies. #694 add syntactic sugar for entering port speeds Simplifies the UI for editing port speeds to make it more human friendly. #717 Loading time issue /cp facility view Fixed slow load or timeouts for loading data for some facilities #837 Provide a friendlier explanation when entering / changing a phone number Provides a tooltip to help people enter E.164 formatted telephone numbers. #541 When looking at a network record, show last updated ix<->net or fac<->net date Improved information about when records were last updated.","title":"Release 2.25.0"},{"location":"release_notes/release_notes_2022/","text":"2022 Release Notes The release notes list the GitHub issues and a summary of what has changed in PeeringDB software releases. Release notes for the current year are available on the Release Notes page. Each new release has a one week beta test period on the beta server before it goes live. The beta and new releases are announced on the PeeringDB Announce Mailing List and on Twitter , LinkedIn and Facebook . Release 2.42.0 Beta Announcement Date: 9 November 2022 Release Date: 16 November 2022 GitHub issue Summary #983 Allow REALPEER to overwrite GHOSTPEER netixlan entry, if asn and IPv6/v4 addresses matches the IX-F Members Export information Improve the quality of IXP data delivered through IX-F Imports for cases when a network disconnects from an IXP but does not update their PeeringDB record. #1153 Exporting Advanced Search broken Fixes a bug that stopped users exporting some searches as structured data. #1091 Adjust \"Add Facility\" menu to include newly defined fields Newly defined fac fields, such as available voltage services, can now be entered when creating the Facility. #1253 Reset IX-F suggestions link non-functional Fixes a link that presents users with suggestions. #758 Lightweight user notification mechanism Introduce a mechanism to alert logged in web users to upcoming changes. #1250 UI shows own email when viewing affiliation requests for an organization Fixes a bug that showed organization admins their own email address instead of the user requesting affiliation. #1234 Transition from lgtm.com before the service ends Migrate to a new CI service. #1168 Ops: Throttle strings with \"Response size\" should be renamed \"Repeated request\" Improve the quality of error messages related to usage throttling. #953 User may request affiliation with a deleted organisation Fixes a bug that allowed users to request affiliation with a deleted organization. #659 Improve readability when users have special permissions Makes a support screen easier to read. #924 Allow change of ixpfx Improves automation for updating records associated with IXP peering LANs. #1270 Enable Google Analytics for beta.peeringdb.com Introduces Google Analytics for beta.peeringdb.com. More details . #1224 Internal admins only: console 504 time-out bug for ix history Fixes a timeout error affecting PeeringDB Admins. #1283 Footer \"Global System Statistics\" should be cached within django instance, not updated with every page load Introduces cacheing for the Global System Statistics data on each page. Release 2.41.1 Release Date: 26 October 2022 GitHub issue Summary #1275 Missing allowed sources for scripts Adds in some missing sources that were stopping /apidocs and CAPTCHA from working. Release 2.41.0 Beta Announcement Date: 12 October 2022 Release Date: 26 October 2022 GitHub issue Summary #586 Add export tool to https://peeringdb.com/cp/peeringdb_server/$type Adds new data exports on CSV format. #1044 Adding a POC must require an email address or phone number Points of Contact must now have either an email address or a phone number. #1244 IX-F importer fails on nulled ipv4 / ipv6 properties in vlan_list entries Fixes a bug where the IX-F importer would raise an error when encountering null values for ipv6 or ipv4 properties in the vlan_list property . #1216 RIR Status update misses ASNs Fixes a bug in the way RIR status is recorded for networks. #1223 Invalid data (in choice fields) found via API Fixes a bug where some records had invalid values. #1198 Add automated testing at the browser level Introduces automated testing for web functionality. #1149 HTTP 404 for dom-purify/purify.min.js.map and showdown/showdown.min.js.map Fixes a JS problem affecting several popular browsers. #1234 Transition from lgtm.com before the service ends Ensures continuity of continuous security analysis now after lgtm.com closes. Release 2.40.0 Beta Announcement Date: 14 September 2022 Release Date: 21 September 2022 GitHub issue Summary #736 Periodic validation of user's contact information Organizations can now require affiliated users to revalidate their accounts after a number of days chosen by the organization. #737 Restrict email domains for organizations Organizations can now require users to have an email address using a specific domain to affiliate with the organization. #484 Show username and email address when user is logged in User will now see their username and email address when logged in to the website. #738 Allow multiple email addresses per user User can have multiple email addresses associated with an account. #907 User email address change should notify previous email Users will now be notified at the old address when replacing their email address. #947 Make it possible to display the TOTP secret in text form instead of QR code only When setting up TOTP MFA, users can now see the secret as well as a QR code. #267 remove users with duplicate emails The user database has been cleaned so that only one user account can have an email address. #380 DB clean-up of elderly ophaned user accounts Users are notified when their account is not associated with an organization for 60 days. The account is removed a month later if not associated with an organization. #1157 An account with admin status can not have permissions When users gain admin status for an organization they now lose all granular permissions as they have all permissions. #468 Have the \"Select language\" drop down sorted Translation language names are now sorted alphabetically in English with the translated version of the language name presented alongside. #1202 Add Support for Enums against Locale Field Validates that languages are supported by translations. #1203 Validate Local Field against set of Enums Improves error handling when users set invalid languages. #499 Trigger IX-F import when network sets allow_ixp_update to \"yes\" An IX-F import is now triggered when a network sets allow_ixp_update to yes. #1213 robots.txt needed, at a minimum to limit bots from creating Django sessions Added robots.txt files to stop search engines indexing pages that shouldn't be indexed. #1210 UX Bugs Fixes several bugs introduced with the big UX dependency updates rolled out with 2.38. #959 ASNAUTO tool broken Fixes an issue with the ASNAuto tool sending out incorrect manual approval requests. #981 Error-handling of failed creation of DeskPRO tickets Fixes a problem with the creation of support tickets. #1150 Ops: Log Melissa payload in django.log Fixes a logging issue for the Ops team. #1228 Change \"Resul length\" to \"Result length\" Fixes a typo. This release also introduced a change for updates made with the API. These operations must now be authenticated with an API Key. Our HOWTO document explains how to get started using API Keys. Release 2.39.0 Beta Announcement Date: 20 July 2022 Release Date: 27 July 2022 GitHub issue Summary #473 add rir_* fields to keep track of ASN status Improve data quality by adding fields that will allow us to perform statical analysis and remove ASNs when no longer assigned. #1203 Validate Local Field against set of Enums Improvements to error handling should a user mischievously send junk data. #1205 Ops: Limit Django sessions to pages that need it Django sessions are now limited to pages that need it. #941 Organization Merging Tool only offers the first 10 matches Improve the organization merge tool for admins. #1043 AC Change User Permission broken Fixes a bug that did not remove users from an organization when it was deleted. #1157 An account with admin status can not have permissions Fixes a bug that did not remove granular permissions for an organization when a users was upgraded to an admin. #1135 #727 RS Peer Checkbox followup changes Cosmetic changes to the RS Peer Checkbox. Release 2.38.2 Release Date: 24 June 2022 GitHub issue Summary #1194 Advanced search issues Fixes a bug that stopped advanced search from delivering results. #1195 UI: active tabs no longer highlighted after switching Fixes a bug that stopped the current tab being highlighted in active search after changing tab. Release 2.38.0 Beta Announcement Date: 15 June 2022 Release Date: 22 June 2022 GitHub issue Summary #930 Admin user is missing the \"Edit\" button Fixes a bug that prevented users from editing their entries. #963 Add the IX name and id to IX-F Import Emails Addresses messages to exchange operators more clearly. #879 Add \"Last login\" to https://peeringdb.com/cp/peeringdb_server/user/ Let's the Admin Committee know who from an organization most recently logged in. #1057 Force users to provide input for first / last names when registering with PeeringDB Use the username instead of formal name in tickets when it's not registered. #660 Bug in renumbering tool Fixes a bug with the renubering tool. #1172 Ops: Exempt superusers (PeeringDB Admin Committee & Operations Committee admins) from throttling API and Melissa request throttling is no longer applied to authenticated admin users. #1177 Locale field update has uncaught exception Fixes a bug where a logged in user could send data that generated DataError and Internal Server Error. Exceptions are now caught appropriately and return relevant errors to users. #1174 Insecure Dependencies Upgrades three dependencies to newer versions that address known vulnerabilities. #1186 Browser caches OAuth2 application client secrets Fixes a bug that allowed browsers to cache the OAuth2 application details page. #1184 Tie CSRF token to session Fixes a bug by binding the session ID and the CSRF token together to reduce the risk that an old token is misused. Release 2.37.0 Beta Announcement Date: 11 May 2022 Release Date: 17 May 2022 GitHub issue Summary #403 Notify a record holder when there is an automated change to the profile Notifications are now sent when PeeringDB administrators make changes to records. #1155 Feature Request: Promote OAuth application to admin-level access? Adds organization level OAuth app management and allows organizations to transfer existing OAuth apps tied to their users to the organization. #942 Failure on Admin Organization Merge Fixes a big that prevented PeeringDB Admins from merging organizations. #960 Change any \"Primary ASN\" to \"ASN\" Replaces the phrase \"Primary ASN\" with \"ASN\" everywhere as the Primary ASN concept does not exist in PeeringDB 2.0. #986 Add link to release notes to the footer of www.peeringdb.com Release notes are now linked from the footer, making them easier for all users to find. Release 2.36.0 Beta Announcement Date: 13 April 2022 Release Date: 11 May 2022 GitHub issue Summary peeringdb-py #62 Support User & Org API keys Adds API keys support for the peeringdb-py cacheing client. #1079 Normalize the names of states & provinces for various objects Normalizes names for states and provinces, improving search experience. #784 Do not show objects in status \"pending\" on the UI Objects that do not have an OK status are no longer returned in search results. #996 500 Error during login for 2FA enabled accounts with unverified email address Fixes a bug that generated a 500 error when logging in with an account whose e-mail address had not been verified. #845 Need consolidated app logs Improvements to logging. #1119 Some command-line-tool executions are not logged Improves logging so AC tools can undo actions. #1120 Ops: response header X-Auth-ID to augment logging Logs the user for requested authenticated by API keys allowing them to be contacted. #1121 Ops: API throttling needs customizable messages API requests can now be throttled with custom return code (HTTP 429). #1122 Logging for melissa (geo-address normalization) queries Adds support for logging geosearch queries to the external API. #1124 Allow rate-limiting of melissa enabled api functionality. Adds support for rate-limiting the geosearch features that rely on an external API. #1126 Ops: API throttling of repeated requests Adds support for throttling repeated requests. #1096 Clicking on Facility history in AC GUI throws 500 Fixes a bug that hid fac history. #1035 Django-Admin: adding a network with existing asn fails with internal error Fixes a bug that returned a 500 error when a user attempted to add a net with the same ASN as an existing object. It now returns a more helpful validation error. Release 2.35.0 Beta Announcement Date: 8 March 2022 Release Date: 22 March 2022 GitHub issue Summary #506 Add \"Management\" search field to Advanced Search of Exchanges Allows users to search for IXPs based on the organization that operates the IXP. #727 RS Peer Checkbox also visible on IX Site Information about networks claiming to peer with the Route Server is now shown on the IXP's page. #512 New Field \"Health Check\" Networks, IXPs, and Facilities can now link to a status dashboard page. #653 missing delete button for user There is now a button to delete a user account directly through the web interface. #656 Sort user IDs in https://www.peeringdb.com/cp/peeringdb_server/userpermission/xxxxx numerically Fixes the sorting order of user IDs, so they are now sorted in numerical order. #881 wrap correctly on mobile The ASN column on mobile view will show seven digits before wrapping the number. #908 2FA Backup Tokens language doesn't seem correct Fixes the backup tokens language for 2FA. #916 To force or not to force www, that is a question Forces https://www.peeringdb.com as the URL for PeeringDB, enabling other improvements. Some clients will need to adjust their endpoints to use www.peeringdb.com. curl users will want to use the -L flag. #1042 Long caching of deleted entries Fixes a problem where deleted objects continued to be returned because of cacheing. #1117 Bad API keys need to return 401 just like a bad user/pass. Presently they return 200 Fixes a problem where corrupt or expired or bogus API key simply resulted in an anonymous user session. Release 2.34.0 Beta Announcement Date: 9 February 2022 Release Date: 16 February 2022 GitHub issue Summary #722 Create a validation tool for syntactically well defined fields Introduces a tool to improve data quality by validating syntactically well defined fields. #853 substantially rate limit unauthenticated /api/ queries to encourage authenticated queries Introduces rate limiting for unauthenticated API queries to reduce the possibility of service impacting queries. #620 Add organisations and registered users to \"Global System Statistics\" in footer Adds the number of registered users to the footer, giving users a better idea of the size of the interconnection community. Release 2.33.0 Beta Announcement Date: 12 January 2022 Release Date: 19 January 2022 GitHub issue Summary #1083 Nanog 83 Hackathon improvements to the PeeringDB Website When using simple search on the front page of www.peeringdb.com (or via the API) searches for numbers return the most relevant results. Key changes include: searching for a short ASN returns just that network, and searches for two segments of an IP address are required to return related ix and net objects. #1070 OpenID Connect integration Allows organizations using PeeringDB to enable an identity federation with a managed service. #692 Add FIDO U2F 2FA support Adds support for FIDO U2F hardware tokens, allowing users to enable 2FA without relying on a TOTP app. #1033 Clicking \"Add\" to add a user api-key without providing a name for the key raises Internal Error Fixes a bug where unnamed user api-keys could not be added and there was just an internal error. #374 make URL required for new objects A URL to a website is now required when adding new objects. #469 Add IXP to AS record / dropdown limited Fixes a bug that limited the number of entries in the dropdown menu when adding an ix to a net . #284 global stats don't show up at login screen Global stats are now shown at the login web page. #874 Better error message when entering the wrong password for email change Improved the error message when entering the wrong password for an e-mail change. #365 Username retrieval non-existant email bug Fixes a bug where we attempted to send mail to non-existant addresses. #735 Cascade delete when performed by superuser Admin users can now cascade delete through the admin interface. #901 Creating a facility that matches the name of a soft-deleted facility will cause the entry to bypass the verification queue Fixes a bug where fac creation could bypass the validation process. #921 irr source validator doesn't allow for hyphens in source IRRs with a hyphen in the name, like ARIN-NONAUTH, are now supported. #1060 \"HARAKIRI ON WORKER\" issues need to be resolved Fixes an operational issue. #1062 Registering a new facility or exchange organization is broken Fixes a bug that prevented new fac and ix objects to be registered. #1077 Possible for \"pending\" exchange to have \"deleted\" ixlan Fixes a bug that allowed linked ix objects to jhave a different status, affecting API sync. #1088 Tweaks for empty organization clean up Fixes a bug that allowed sponsor organizations to be deleted by an automatic process when they should not be.","title":"2022 Release Notes"},{"location":"release_notes/release_notes_2022/#2022-release-notes","text":"The release notes list the GitHub issues and a summary of what has changed in PeeringDB software releases. Release notes for the current year are available on the Release Notes page. Each new release has a one week beta test period on the beta server before it goes live. The beta and new releases are announced on the PeeringDB Announce Mailing List and on Twitter , LinkedIn and Facebook .","title":"2022 Release Notes"},{"location":"release_notes/release_notes_2022/#release-2420","text":"Beta Announcement Date: 9 November 2022 Release Date: 16 November 2022 GitHub issue Summary #983 Allow REALPEER to overwrite GHOSTPEER netixlan entry, if asn and IPv6/v4 addresses matches the IX-F Members Export information Improve the quality of IXP data delivered through IX-F Imports for cases when a network disconnects from an IXP but does not update their PeeringDB record. #1153 Exporting Advanced Search broken Fixes a bug that stopped users exporting some searches as structured data. #1091 Adjust \"Add Facility\" menu to include newly defined fields Newly defined fac fields, such as available voltage services, can now be entered when creating the Facility. #1253 Reset IX-F suggestions link non-functional Fixes a link that presents users with suggestions. #758 Lightweight user notification mechanism Introduce a mechanism to alert logged in web users to upcoming changes. #1250 UI shows own email when viewing affiliation requests for an organization Fixes a bug that showed organization admins their own email address instead of the user requesting affiliation. #1234 Transition from lgtm.com before the service ends Migrate to a new CI service. #1168 Ops: Throttle strings with \"Response size\" should be renamed \"Repeated request\" Improve the quality of error messages related to usage throttling. #953 User may request affiliation with a deleted organisation Fixes a bug that allowed users to request affiliation with a deleted organization. #659 Improve readability when users have special permissions Makes a support screen easier to read. #924 Allow change of ixpfx Improves automation for updating records associated with IXP peering LANs. #1270 Enable Google Analytics for beta.peeringdb.com Introduces Google Analytics for beta.peeringdb.com. More details . #1224 Internal admins only: console 504 time-out bug for ix history Fixes a timeout error affecting PeeringDB Admins. #1283 Footer \"Global System Statistics\" should be cached within django instance, not updated with every page load Introduces cacheing for the Global System Statistics data on each page.","title":"Release 2.42.0"},{"location":"release_notes/release_notes_2022/#release-2411","text":"Release Date: 26 October 2022 GitHub issue Summary #1275 Missing allowed sources for scripts Adds in some missing sources that were stopping /apidocs and CAPTCHA from working.","title":"Release 2.41.1"},{"location":"release_notes/release_notes_2022/#release-2410","text":"Beta Announcement Date: 12 October 2022 Release Date: 26 October 2022 GitHub issue Summary #586 Add export tool to https://peeringdb.com/cp/peeringdb_server/$type Adds new data exports on CSV format. #1044 Adding a POC must require an email address or phone number Points of Contact must now have either an email address or a phone number. #1244 IX-F importer fails on nulled ipv4 / ipv6 properties in vlan_list entries Fixes a bug where the IX-F importer would raise an error when encountering null values for ipv6 or ipv4 properties in the vlan_list property . #1216 RIR Status update misses ASNs Fixes a bug in the way RIR status is recorded for networks. #1223 Invalid data (in choice fields) found via API Fixes a bug where some records had invalid values. #1198 Add automated testing at the browser level Introduces automated testing for web functionality. #1149 HTTP 404 for dom-purify/purify.min.js.map and showdown/showdown.min.js.map Fixes a JS problem affecting several popular browsers. #1234 Transition from lgtm.com before the service ends Ensures continuity of continuous security analysis now after lgtm.com closes.","title":"Release 2.41.0"},{"location":"release_notes/release_notes_2022/#release-2400","text":"Beta Announcement Date: 14 September 2022 Release Date: 21 September 2022 GitHub issue Summary #736 Periodic validation of user's contact information Organizations can now require affiliated users to revalidate their accounts after a number of days chosen by the organization. #737 Restrict email domains for organizations Organizations can now require users to have an email address using a specific domain to affiliate with the organization. #484 Show username and email address when user is logged in User will now see their username and email address when logged in to the website. #738 Allow multiple email addresses per user User can have multiple email addresses associated with an account. #907 User email address change should notify previous email Users will now be notified at the old address when replacing their email address. #947 Make it possible to display the TOTP secret in text form instead of QR code only When setting up TOTP MFA, users can now see the secret as well as a QR code. #267 remove users with duplicate emails The user database has been cleaned so that only one user account can have an email address. #380 DB clean-up of elderly ophaned user accounts Users are notified when their account is not associated with an organization for 60 days. The account is removed a month later if not associated with an organization. #1157 An account with admin status can not have permissions When users gain admin status for an organization they now lose all granular permissions as they have all permissions. #468 Have the \"Select language\" drop down sorted Translation language names are now sorted alphabetically in English with the translated version of the language name presented alongside. #1202 Add Support for Enums against Locale Field Validates that languages are supported by translations. #1203 Validate Local Field against set of Enums Improves error handling when users set invalid languages. #499 Trigger IX-F import when network sets allow_ixp_update to \"yes\" An IX-F import is now triggered when a network sets allow_ixp_update to yes. #1213 robots.txt needed, at a minimum to limit bots from creating Django sessions Added robots.txt files to stop search engines indexing pages that shouldn't be indexed. #1210 UX Bugs Fixes several bugs introduced with the big UX dependency updates rolled out with 2.38. #959 ASNAUTO tool broken Fixes an issue with the ASNAuto tool sending out incorrect manual approval requests. #981 Error-handling of failed creation of DeskPRO tickets Fixes a problem with the creation of support tickets. #1150 Ops: Log Melissa payload in django.log Fixes a logging issue for the Ops team. #1228 Change \"Resul length\" to \"Result length\" Fixes a typo. This release also introduced a change for updates made with the API. These operations must now be authenticated with an API Key. Our HOWTO document explains how to get started using API Keys.","title":"Release 2.40.0"},{"location":"release_notes/release_notes_2022/#release-2390","text":"Beta Announcement Date: 20 July 2022 Release Date: 27 July 2022 GitHub issue Summary #473 add rir_* fields to keep track of ASN status Improve data quality by adding fields that will allow us to perform statical analysis and remove ASNs when no longer assigned. #1203 Validate Local Field against set of Enums Improvements to error handling should a user mischievously send junk data. #1205 Ops: Limit Django sessions to pages that need it Django sessions are now limited to pages that need it. #941 Organization Merging Tool only offers the first 10 matches Improve the organization merge tool for admins. #1043 AC Change User Permission broken Fixes a bug that did not remove users from an organization when it was deleted. #1157 An account with admin status can not have permissions Fixes a bug that did not remove granular permissions for an organization when a users was upgraded to an admin. #1135 #727 RS Peer Checkbox followup changes Cosmetic changes to the RS Peer Checkbox.","title":"Release 2.39.0"},{"location":"release_notes/release_notes_2022/#release-2382","text":"Release Date: 24 June 2022 GitHub issue Summary #1194 Advanced search issues Fixes a bug that stopped advanced search from delivering results. #1195 UI: active tabs no longer highlighted after switching Fixes a bug that stopped the current tab being highlighted in active search after changing tab.","title":"Release 2.38.2"},{"location":"release_notes/release_notes_2022/#release-2380","text":"Beta Announcement Date: 15 June 2022 Release Date: 22 June 2022 GitHub issue Summary #930 Admin user is missing the \"Edit\" button Fixes a bug that prevented users from editing their entries. #963 Add the IX name and id to IX-F Import Emails Addresses messages to exchange operators more clearly. #879 Add \"Last login\" to https://peeringdb.com/cp/peeringdb_server/user/ Let's the Admin Committee know who from an organization most recently logged in. #1057 Force users to provide input for first / last names when registering with PeeringDB Use the username instead of formal name in tickets when it's not registered. #660 Bug in renumbering tool Fixes a bug with the renubering tool. #1172 Ops: Exempt superusers (PeeringDB Admin Committee & Operations Committee admins) from throttling API and Melissa request throttling is no longer applied to authenticated admin users. #1177 Locale field update has uncaught exception Fixes a bug where a logged in user could send data that generated DataError and Internal Server Error. Exceptions are now caught appropriately and return relevant errors to users. #1174 Insecure Dependencies Upgrades three dependencies to newer versions that address known vulnerabilities. #1186 Browser caches OAuth2 application client secrets Fixes a bug that allowed browsers to cache the OAuth2 application details page. #1184 Tie CSRF token to session Fixes a bug by binding the session ID and the CSRF token together to reduce the risk that an old token is misused.","title":"Release 2.38.0"},{"location":"release_notes/release_notes_2022/#release-2370","text":"Beta Announcement Date: 11 May 2022 Release Date: 17 May 2022 GitHub issue Summary #403 Notify a record holder when there is an automated change to the profile Notifications are now sent when PeeringDB administrators make changes to records. #1155 Feature Request: Promote OAuth application to admin-level access? Adds organization level OAuth app management and allows organizations to transfer existing OAuth apps tied to their users to the organization. #942 Failure on Admin Organization Merge Fixes a big that prevented PeeringDB Admins from merging organizations. #960 Change any \"Primary ASN\" to \"ASN\" Replaces the phrase \"Primary ASN\" with \"ASN\" everywhere as the Primary ASN concept does not exist in PeeringDB 2.0. #986 Add link to release notes to the footer of www.peeringdb.com Release notes are now linked from the footer, making them easier for all users to find.","title":"Release 2.37.0"},{"location":"release_notes/release_notes_2022/#release-2360","text":"Beta Announcement Date: 13 April 2022 Release Date: 11 May 2022 GitHub issue Summary peeringdb-py #62 Support User & Org API keys Adds API keys support for the peeringdb-py cacheing client. #1079 Normalize the names of states & provinces for various objects Normalizes names for states and provinces, improving search experience. #784 Do not show objects in status \"pending\" on the UI Objects that do not have an OK status are no longer returned in search results. #996 500 Error during login for 2FA enabled accounts with unverified email address Fixes a bug that generated a 500 error when logging in with an account whose e-mail address had not been verified. #845 Need consolidated app logs Improvements to logging. #1119 Some command-line-tool executions are not logged Improves logging so AC tools can undo actions. #1120 Ops: response header X-Auth-ID to augment logging Logs the user for requested authenticated by API keys allowing them to be contacted. #1121 Ops: API throttling needs customizable messages API requests can now be throttled with custom return code (HTTP 429). #1122 Logging for melissa (geo-address normalization) queries Adds support for logging geosearch queries to the external API. #1124 Allow rate-limiting of melissa enabled api functionality. Adds support for rate-limiting the geosearch features that rely on an external API. #1126 Ops: API throttling of repeated requests Adds support for throttling repeated requests. #1096 Clicking on Facility history in AC GUI throws 500 Fixes a bug that hid fac history. #1035 Django-Admin: adding a network with existing asn fails with internal error Fixes a bug that returned a 500 error when a user attempted to add a net with the same ASN as an existing object. It now returns a more helpful validation error.","title":"Release 2.36.0"},{"location":"release_notes/release_notes_2022/#release-2350","text":"Beta Announcement Date: 8 March 2022 Release Date: 22 March 2022 GitHub issue Summary #506 Add \"Management\" search field to Advanced Search of Exchanges Allows users to search for IXPs based on the organization that operates the IXP. #727 RS Peer Checkbox also visible on IX Site Information about networks claiming to peer with the Route Server is now shown on the IXP's page. #512 New Field \"Health Check\" Networks, IXPs, and Facilities can now link to a status dashboard page. #653 missing delete button for user There is now a button to delete a user account directly through the web interface. #656 Sort user IDs in https://www.peeringdb.com/cp/peeringdb_server/userpermission/xxxxx numerically Fixes the sorting order of user IDs, so they are now sorted in numerical order. #881 wrap correctly on mobile The ASN column on mobile view will show seven digits before wrapping the number. #908 2FA Backup Tokens language doesn't seem correct Fixes the backup tokens language for 2FA. #916 To force or not to force www, that is a question Forces https://www.peeringdb.com as the URL for PeeringDB, enabling other improvements. Some clients will need to adjust their endpoints to use www.peeringdb.com. curl users will want to use the -L flag. #1042 Long caching of deleted entries Fixes a problem where deleted objects continued to be returned because of cacheing. #1117 Bad API keys need to return 401 just like a bad user/pass. Presently they return 200 Fixes a problem where corrupt or expired or bogus API key simply resulted in an anonymous user session.","title":"Release 2.35.0"},{"location":"release_notes/release_notes_2022/#release-2340","text":"Beta Announcement Date: 9 February 2022 Release Date: 16 February 2022 GitHub issue Summary #722 Create a validation tool for syntactically well defined fields Introduces a tool to improve data quality by validating syntactically well defined fields. #853 substantially rate limit unauthenticated /api/ queries to encourage authenticated queries Introduces rate limiting for unauthenticated API queries to reduce the possibility of service impacting queries. #620 Add organisations and registered users to \"Global System Statistics\" in footer Adds the number of registered users to the footer, giving users a better idea of the size of the interconnection community.","title":"Release 2.34.0"},{"location":"release_notes/release_notes_2022/#release-2330","text":"Beta Announcement Date: 12 January 2022 Release Date: 19 January 2022 GitHub issue Summary #1083 Nanog 83 Hackathon improvements to the PeeringDB Website When using simple search on the front page of www.peeringdb.com (or via the API) searches for numbers return the most relevant results. Key changes include: searching for a short ASN returns just that network, and searches for two segments of an IP address are required to return related ix and net objects. #1070 OpenID Connect integration Allows organizations using PeeringDB to enable an identity federation with a managed service. #692 Add FIDO U2F 2FA support Adds support for FIDO U2F hardware tokens, allowing users to enable 2FA without relying on a TOTP app. #1033 Clicking \"Add\" to add a user api-key without providing a name for the key raises Internal Error Fixes a bug where unnamed user api-keys could not be added and there was just an internal error. #374 make URL required for new objects A URL to a website is now required when adding new objects. #469 Add IXP to AS record / dropdown limited Fixes a bug that limited the number of entries in the dropdown menu when adding an ix to a net . #284 global stats don't show up at login screen Global stats are now shown at the login web page. #874 Better error message when entering the wrong password for email change Improved the error message when entering the wrong password for an e-mail change. #365 Username retrieval non-existant email bug Fixes a bug where we attempted to send mail to non-existant addresses. #735 Cascade delete when performed by superuser Admin users can now cascade delete through the admin interface. #901 Creating a facility that matches the name of a soft-deleted facility will cause the entry to bypass the verification queue Fixes a bug where fac creation could bypass the validation process. #921 irr source validator doesn't allow for hyphens in source IRRs with a hyphen in the name, like ARIN-NONAUTH, are now supported. #1060 \"HARAKIRI ON WORKER\" issues need to be resolved Fixes an operational issue. #1062 Registering a new facility or exchange organization is broken Fixes a bug that prevented new fac and ix objects to be registered. #1077 Possible for \"pending\" exchange to have \"deleted\" ixlan Fixes a bug that allowed linked ix objects to jhave a different status, affecting API sync. #1088 Tweaks for empty organization clean up Fixes a bug that allowed sponsor organizations to be deleted by an automatic process when they should not be.","title":"Release 2.33.0"},{"location":"release_notes/release_notes_2023/","text":"2023 Release Notes The release notes list the GitHub issues and a summary of what has changed in PeeringDB software releases. Each new release has a one week beta test period on the beta server before it goes live. The beta and new releases are announced on the PeeringDB Announce Mailing List and on Facebook , LinkedIn and X . Release 2.53.0 Beta Announcement Date: 29 November 2023 Release Date: 6 December 2023 GitHub issue Summary #1362 Show connected networks, exchanges, and carriers on campus results pages Adds an aggregated view of interconnection resources at a campus on the campus page. #1247 Store language preference in the user's profile instead of cookies Improved handling of website language preferences. #1327 Improve visibility of contact data settings Admins now see the visibility settings for their contacts alongside the set values. This makes it easier to identify and correct mistakes. #1385 Keep the list of IRR up to date As title. #1432 Make dates ISO 8601 compliant everywhere in PeeringDB As title. #1252 Display dates consistently As title. #1433 Timestamps should be consistent As title. Release 2.52.0 Beta Announcement Date: 25 October 2023 Release Date: 6 November 2023 GitHub issue Summary #1328 Support web updates from a source of truth Internal sources of truth, like configuration management systems, can now propose PeeringDB updates that a web user can review and either accept or deny. #1374 Search to include new objects: Campus & Carrier Support for new carrier and campus objects in v2 search, which is now the default with v1 search linked for the time being. #1368 Facility data export into Google Earth KMZ PeeringDB facility data is now exported into a Google Earth KMZ file that includes the details of the facility fields and their contents ( ix , net , carrier ). It is linked from the web footer and generated every day. #1394 v2 search failing to find some names Fixes a bug where names with hyphens in them were not handled properly by v2 search. #1313 Improve email confirmation control - add 3 month option & maybe set new default value Improve the design of the periodic reconfirmation control for user email addresses and add a new 3 month value. #1257 Help text covers non-compliant email addresses Non-compliant email addresses of affiliated users are now shown, making it easier to know who to contact. #1164 better rdap error reporting Improved error handling and friendlier error reporting to users. #1260 Add Selenium Grid to CI testing Improve automated browser testing for website. #1380 Reset 'Social Media' to '{}' if field is null Fixes a bug with broken page rendering for backend admin users when a social media field was set to null . Release 2.51.0 Beta Announcement Date: 13 September 2023 Release Date: 20 September 2023 GitHub issue Summary #1364 IX Object Creation Per Policy Automates approval of new ix objects per policy . #1226 Add a \"Delete Affiliation\" button/option to the profile Users can now remove an affiliation from their account. #1431 add redis for caching Improves cacheing performance. #1382 Syntax checker for social media user names broken Fixes a bug that rejected social media names that incorporated a hyphen. #1401 Creating a new network not possible Fixes a bug that stopped net creation when social media fields were sent with request. #1419 replace missing Glyphicons Use Google's \"Sort by Alpha\" icon in table headers. #1182 Manual IX-F import request queue can get stuck Fixes a bug that allowed users to enable IX-F imports without setting a URL. The importers also discards imports without a URL. #1334 IX-F Importer: Cosmetic issue with \"resolved\" emails and double-slashes in URLs after the FQDN Fixes a cosmetic issue with IX-F notification messages. Release 2.50.0 Beta Announcement Date: 16 August 2023 Release Date: 23 August 2023 GitHub issue Summary #1352 Include carrier and campus objects in the API carrier and campus objects were not included in the main API at first as we did not know if users would use them. They are now part of the API, making them usable by tools that rely on the API. #1300 display website URL on all non-org objects The website from org objects is now inherited by all child objects. #1381 Add hover tip to describe meaning of routeserver icon As title. #1361 Add Campus and Carrier Tooltips As title. #1360 IX-F Importer: IX-F Member Data not being nullified after IX stops/changes import Fixes a bug where the IX and participants were being mailed about import issues after the import was turned of by the IX operator. #1239 Add a search field to all AC views Better search for support tools. #1027 Make the search field on cp/peeringdb_server/network/ aware of leading AS/ASN Improved handling of variant syntax in support tools. #1412 Improve performance by updating Python client code Replace old python2 sync code with python3 code. Release 2.49.0 Beta Announcement Date: 12 July 2023 Release Date: 19 July 2023 GitHub issue Summary #1344 Auto approval of new carrierfac objects carrierfac objects are now approved automatically, like netfac objects . #1299 Alphabetize simple search results Exact match search now go at the top, with other results displayed alphabetically. #997 Allow organizations to require affiliated users to enable 2FA Organizations can now require their users to turn on MFA. #1370 Facility Geocode not working Fixed a bug that meant some fac s did not have a geocode. #1225 Evaluate ways to reduce operational costs Operational work to support deployment directly on cloud provider infrastructure, instead of in a VM. #1219 Optimize Cacheing It is now easier to obtain and cache PeeringDB data. #1404 Upgrade the django-oauth-toolkit library Django update deferred from last month. Oauth application owners were given notice of this breaking change. Release 2.48.0 Beta Announcement Date: 21 June 2023 Release Date: 28 June 2023 GitHub issue Summary #1311 Update Dependencies Update all dependencies to new major releases. This year includes Django 4.2 LTS. Release 2.47.0 Beta Announcement Date: 17 May 2023 Release Date: 24 May 2023 GitHub issue Summary #1204 Improve Search Functionality Significant improvements to search via a new backend. #1290 Add permission 'manage peering sessions' Adds a permission for managing peering sessions, that is useful for portal enabling PeeringDB OAuth. #1241 Don't allow the first and last addresses being assigned Added a validation check to fail on network and broadcast addresses. #1238 Put an Icon next to user name on https://www.peeringdb.com/org/nnnn#users if the user is using U2F Added a U2F badge next to user name in organization user listing if the user has set up U2F 2FA #1339 Tie TOTP devices and Webauthn Security Keys to the user account Tie TOTP devices and Webauthn Security Keys to the user account so the AC can see this information. #1291 Show all e-mail addresses associated with a username All e-mail addresses associated with a user are now shown in the users tab. #1372 Facility history still broken Fixes an issue with fac history for AC use. Release 2.46.0 Beta Announcement Date: 12 April 2023 Release Date: 19 April 2023 GitHub issue Summary #1336 Clearly show when a facility is part of a campus Adds a small icon to show that a fac is a part of a campus . #387 Replace \"website\" element in API/UI with social media tags Introduces the ability to include links to social media accounts from PeeringDB pages. #1333 Calling /api/carrier with parameters is broken Fixes a bug in the API support for the new carrier object. #1094 IX-F Importer: duplicate address(es) should result in rejection of JSON export and notification of IXP Fixes a bug in handling duplicate IP addresses in IX-F imports. #1249 Update MkDocs for docs.peeringdb.com Updates the software used by https://docs.peeringdb.com Release 2.45.0 Beta Announcement Date: 15 March 2023 Release Date: 22 March 2023 GitHub issue Summary #1295 Allow anonymous users to change languages It is now possible to select a PeeringDB translation without logging in to the website. #1281 better <title> tags The HTML <title> tag of pages on www.peeringdb.com now shows key information from the page, like a network name or search term. #749 Rename Private Peering Facilities to Interconnection Facilities in the UI Private Peering Facilities have been renamed to Interconnection Facilities in the UI. #1308 Deploy Google Analytics on www and docs We have deployed Google Analytics to measure website traffic. #1271 Implement auto-removal of stale networks according to DOTF recommendations Stay networks are now automatically removed as per the DOTF recommendations . #389 It should be impossible to save an active entity under an entity that is marked as deleted. It is no longer possible to save an object under one that's marked as deleted. Release 2.44.0 Beta Announcement Date: 15 February 2023 Release Date: 22 February 2023 GitHub issue Summary #1110 Add campus object Initial deployment of a Campus object \u2013 a record to describe facilities where inter-facility cross connects are available as easily as intra-facility cross connects. #1191 OAuth logins with 2FA don't complete first time Fixes a bug that broke the OAuth flow when MFA was enabled. #668 Add \"self\" as an object identifier, for documentation purposes Adds a \"self\" object identifier to API and views for GET requests. Authenticated users going to https://www.peeringdb.com/{net Release 2.43.1 Release Date: 10 February 2023 GitHub issue Summary #1315 issues when accepting / denying carrier presence requests Fix permission issues when accepting or rejecting carrier facility presence requests and automatically approve them when they are from the same organization. Release 2.43.0 Beta Announcement Date: 18 January 2023 Release Date: 25 January 2023 GitHub issue Summary #909 Add Carrier Record Type Initial deployment of a Carrier record \u2013 a record to describe providers of high capacity links between facilities, running at layers 1 or 2 . #1140 API keys: disabling of user account by a PeeringDB admin does not disable access via a User API key. Also no disable mech, only revoke. Fixes a bug where user API Keys were not disabled when their account was disabled. #1220 API requests with invalid Authentication headers should notify users in some way Requests with an invalid API key now return appropriate error codes. #1130 Allow user to change account username Users can now change their account name. #970 Cache hints are needed for optimal CDN use Adds cache hints to make CDN deployment more effective. #1278 Commandline tool \"Run command\" button gone Fixes a problem affecting Admins \u2013 a tool was hidden. #1279 RIR status gets deleted when changes are made to the network Improves the new process for validating networks against RIR data (see: #1280 ). #658 Improve MTU field MTUs now default to 1500 and there's a new dropdown list of options to select from. #1282 Ops: Emails to OPERATIONS_EMAIL need to be rate-limited Introduces a rate limit for automatic mail sent to Operations. #1283 Footer \"Global System Statistics\" should be cached within django instance, not updated with every page load Global System Statistics are now generated periodically instead of on each page load. #1284 Ops: django needs lightweight healthcheck route that confirms database connectivity Introduces a lightweight health check for database availability. #1285 Ops: various indexes are needed Introduces new database indexes. #1288 Ops: Expose CSP_CONNECT_SRC to .env Add configuration options for ease of operations. #1296 CSRF cookie not set error from email confirmation view Fix a bug with CSRF cookies not being set. Older releases 2022 Release Notes 2021 Release Notes 2020 Release Notes","title":"2023 Release Notes"},{"location":"release_notes/release_notes_2023/#2023-release-notes","text":"The release notes list the GitHub issues and a summary of what has changed in PeeringDB software releases. Each new release has a one week beta test period on the beta server before it goes live. The beta and new releases are announced on the PeeringDB Announce Mailing List and on Facebook , LinkedIn and X .","title":"2023 Release Notes"},{"location":"release_notes/release_notes_2023/#release-2530","text":"Beta Announcement Date: 29 November 2023 Release Date: 6 December 2023 GitHub issue Summary #1362 Show connected networks, exchanges, and carriers on campus results pages Adds an aggregated view of interconnection resources at a campus on the campus page. #1247 Store language preference in the user's profile instead of cookies Improved handling of website language preferences. #1327 Improve visibility of contact data settings Admins now see the visibility settings for their contacts alongside the set values. This makes it easier to identify and correct mistakes. #1385 Keep the list of IRR up to date As title. #1432 Make dates ISO 8601 compliant everywhere in PeeringDB As title. #1252 Display dates consistently As title. #1433 Timestamps should be consistent As title.","title":"Release 2.53.0"},{"location":"release_notes/release_notes_2023/#release-2520","text":"Beta Announcement Date: 25 October 2023 Release Date: 6 November 2023 GitHub issue Summary #1328 Support web updates from a source of truth Internal sources of truth, like configuration management systems, can now propose PeeringDB updates that a web user can review and either accept or deny. #1374 Search to include new objects: Campus & Carrier Support for new carrier and campus objects in v2 search, which is now the default with v1 search linked for the time being. #1368 Facility data export into Google Earth KMZ PeeringDB facility data is now exported into a Google Earth KMZ file that includes the details of the facility fields and their contents ( ix , net , carrier ). It is linked from the web footer and generated every day. #1394 v2 search failing to find some names Fixes a bug where names with hyphens in them were not handled properly by v2 search. #1313 Improve email confirmation control - add 3 month option & maybe set new default value Improve the design of the periodic reconfirmation control for user email addresses and add a new 3 month value. #1257 Help text covers non-compliant email addresses Non-compliant email addresses of affiliated users are now shown, making it easier to know who to contact. #1164 better rdap error reporting Improved error handling and friendlier error reporting to users. #1260 Add Selenium Grid to CI testing Improve automated browser testing for website. #1380 Reset 'Social Media' to '{}' if field is null Fixes a bug with broken page rendering for backend admin users when a social media field was set to null .","title":"Release 2.52.0"},{"location":"release_notes/release_notes_2023/#release-2510","text":"Beta Announcement Date: 13 September 2023 Release Date: 20 September 2023 GitHub issue Summary #1364 IX Object Creation Per Policy Automates approval of new ix objects per policy . #1226 Add a \"Delete Affiliation\" button/option to the profile Users can now remove an affiliation from their account. #1431 add redis for caching Improves cacheing performance. #1382 Syntax checker for social media user names broken Fixes a bug that rejected social media names that incorporated a hyphen. #1401 Creating a new network not possible Fixes a bug that stopped net creation when social media fields were sent with request. #1419 replace missing Glyphicons Use Google's \"Sort by Alpha\" icon in table headers. #1182 Manual IX-F import request queue can get stuck Fixes a bug that allowed users to enable IX-F imports without setting a URL. The importers also discards imports without a URL. #1334 IX-F Importer: Cosmetic issue with \"resolved\" emails and double-slashes in URLs after the FQDN Fixes a cosmetic issue with IX-F notification messages.","title":"Release 2.51.0"},{"location":"release_notes/release_notes_2023/#release-2500","text":"Beta Announcement Date: 16 August 2023 Release Date: 23 August 2023 GitHub issue Summary #1352 Include carrier and campus objects in the API carrier and campus objects were not included in the main API at first as we did not know if users would use them. They are now part of the API, making them usable by tools that rely on the API. #1300 display website URL on all non-org objects The website from org objects is now inherited by all child objects. #1381 Add hover tip to describe meaning of routeserver icon As title. #1361 Add Campus and Carrier Tooltips As title. #1360 IX-F Importer: IX-F Member Data not being nullified after IX stops/changes import Fixes a bug where the IX and participants were being mailed about import issues after the import was turned of by the IX operator. #1239 Add a search field to all AC views Better search for support tools. #1027 Make the search field on cp/peeringdb_server/network/ aware of leading AS/ASN Improved handling of variant syntax in support tools. #1412 Improve performance by updating Python client code Replace old python2 sync code with python3 code.","title":"Release 2.50.0"},{"location":"release_notes/release_notes_2023/#release-2490","text":"Beta Announcement Date: 12 July 2023 Release Date: 19 July 2023 GitHub issue Summary #1344 Auto approval of new carrierfac objects carrierfac objects are now approved automatically, like netfac objects . #1299 Alphabetize simple search results Exact match search now go at the top, with other results displayed alphabetically. #997 Allow organizations to require affiliated users to enable 2FA Organizations can now require their users to turn on MFA. #1370 Facility Geocode not working Fixed a bug that meant some fac s did not have a geocode. #1225 Evaluate ways to reduce operational costs Operational work to support deployment directly on cloud provider infrastructure, instead of in a VM. #1219 Optimize Cacheing It is now easier to obtain and cache PeeringDB data. #1404 Upgrade the django-oauth-toolkit library Django update deferred from last month. Oauth application owners were given notice of this breaking change.","title":"Release 2.49.0"},{"location":"release_notes/release_notes_2023/#release-2480","text":"Beta Announcement Date: 21 June 2023 Release Date: 28 June 2023 GitHub issue Summary #1311 Update Dependencies Update all dependencies to new major releases. This year includes Django 4.2 LTS.","title":"Release 2.48.0"},{"location":"release_notes/release_notes_2023/#release-2470","text":"Beta Announcement Date: 17 May 2023 Release Date: 24 May 2023 GitHub issue Summary #1204 Improve Search Functionality Significant improvements to search via a new backend. #1290 Add permission 'manage peering sessions' Adds a permission for managing peering sessions, that is useful for portal enabling PeeringDB OAuth. #1241 Don't allow the first and last addresses being assigned Added a validation check to fail on network and broadcast addresses. #1238 Put an Icon next to user name on https://www.peeringdb.com/org/nnnn#users if the user is using U2F Added a U2F badge next to user name in organization user listing if the user has set up U2F 2FA #1339 Tie TOTP devices and Webauthn Security Keys to the user account Tie TOTP devices and Webauthn Security Keys to the user account so the AC can see this information. #1291 Show all e-mail addresses associated with a username All e-mail addresses associated with a user are now shown in the users tab. #1372 Facility history still broken Fixes an issue with fac history for AC use.","title":"Release 2.47.0"},{"location":"release_notes/release_notes_2023/#release-2460","text":"Beta Announcement Date: 12 April 2023 Release Date: 19 April 2023 GitHub issue Summary #1336 Clearly show when a facility is part of a campus Adds a small icon to show that a fac is a part of a campus . #387 Replace \"website\" element in API/UI with social media tags Introduces the ability to include links to social media accounts from PeeringDB pages. #1333 Calling /api/carrier with parameters is broken Fixes a bug in the API support for the new carrier object. #1094 IX-F Importer: duplicate address(es) should result in rejection of JSON export and notification of IXP Fixes a bug in handling duplicate IP addresses in IX-F imports. #1249 Update MkDocs for docs.peeringdb.com Updates the software used by https://docs.peeringdb.com","title":"Release 2.46.0"},{"location":"release_notes/release_notes_2023/#release-2450","text":"Beta Announcement Date: 15 March 2023 Release Date: 22 March 2023 GitHub issue Summary #1295 Allow anonymous users to change languages It is now possible to select a PeeringDB translation without logging in to the website. #1281 better <title> tags The HTML <title> tag of pages on www.peeringdb.com now shows key information from the page, like a network name or search term. #749 Rename Private Peering Facilities to Interconnection Facilities in the UI Private Peering Facilities have been renamed to Interconnection Facilities in the UI. #1308 Deploy Google Analytics on www and docs We have deployed Google Analytics to measure website traffic. #1271 Implement auto-removal of stale networks according to DOTF recommendations Stay networks are now automatically removed as per the DOTF recommendations . #389 It should be impossible to save an active entity under an entity that is marked as deleted. It is no longer possible to save an object under one that's marked as deleted.","title":"Release 2.45.0"},{"location":"release_notes/release_notes_2023/#release-2440","text":"Beta Announcement Date: 15 February 2023 Release Date: 22 February 2023 GitHub issue Summary #1110 Add campus object Initial deployment of a Campus object \u2013 a record to describe facilities where inter-facility cross connects are available as easily as intra-facility cross connects. #1191 OAuth logins with 2FA don't complete first time Fixes a bug that broke the OAuth flow when MFA was enabled. #668 Add \"self\" as an object identifier, for documentation purposes Adds a \"self\" object identifier to API and views for GET requests. Authenticated users going to https://www.peeringdb.com/{net","title":"Release 2.44.0"},{"location":"release_notes/release_notes_2023/#release-2431","text":"Release Date: 10 February 2023 GitHub issue Summary #1315 issues when accepting / denying carrier presence requests Fix permission issues when accepting or rejecting carrier facility presence requests and automatically approve them when they are from the same organization.","title":"Release 2.43.1"},{"location":"release_notes/release_notes_2023/#release-2430","text":"Beta Announcement Date: 18 January 2023 Release Date: 25 January 2023 GitHub issue Summary #909 Add Carrier Record Type Initial deployment of a Carrier record \u2013 a record to describe providers of high capacity links between facilities, running at layers 1 or 2 . #1140 API keys: disabling of user account by a PeeringDB admin does not disable access via a User API key. Also no disable mech, only revoke. Fixes a bug where user API Keys were not disabled when their account was disabled. #1220 API requests with invalid Authentication headers should notify users in some way Requests with an invalid API key now return appropriate error codes. #1130 Allow user to change account username Users can now change their account name. #970 Cache hints are needed for optimal CDN use Adds cache hints to make CDN deployment more effective. #1278 Commandline tool \"Run command\" button gone Fixes a problem affecting Admins \u2013 a tool was hidden. #1279 RIR status gets deleted when changes are made to the network Improves the new process for validating networks against RIR data (see: #1280 ). #658 Improve MTU field MTUs now default to 1500 and there's a new dropdown list of options to select from. #1282 Ops: Emails to OPERATIONS_EMAIL need to be rate-limited Introduces a rate limit for automatic mail sent to Operations. #1283 Footer \"Global System Statistics\" should be cached within django instance, not updated with every page load Global System Statistics are now generated periodically instead of on each page load. #1284 Ops: django needs lightweight healthcheck route that confirms database connectivity Introduces a lightweight health check for database availability. #1285 Ops: various indexes are needed Introduces new database indexes. #1288 Ops: Expose CSP_CONNECT_SRC to .env Add configuration options for ease of operations. #1296 CSRF cookie not set error from email confirmation view Fix a bug with CSRF cookies not being set.","title":"Release 2.43.0"},{"location":"release_notes/release_notes_2023/#older-releases","text":"2022 Release Notes 2021 Release Notes 2020 Release Notes","title":"Older releases"},{"location":"taskforce/dataownership/","text":"PeeringDB Data Ownership Task Force The Data Ownership Task Force was established in September 2019 with the aim of working on a PeeringDB Policy proposal about data ownership, after a need was recognized by the Product Committee as issues consistently had been raised relating to who owns the data in PeeringDB when more than one party is involved (as in netixlan, ixfac, netfac, etc objects). A call for participation to the task Force was made on September 10th, 2019. Data Ownership Task Force discussions are archived and can be found at: https://lists.peeringdb.com/pipermail/dataownership-tf/ This webpage is where the work of Data Ownership Task Force will be documented, including meeting minutes, draft documents etc. as their work progresses. In April 2020, the Task Force completed its work and published the resulting PeeringDB Data Ownership Policy Document after few cycles of a Review Phase and a final Last Call over a draft document circulated on their mailing list. (Please see the mailing list archives linked above.) The resulting document can be found at: https://docs.peeringdb.com/gov/misc/2020-04-06_PeeringDB_Data_Ownership_Policy_Document_v1.0.pdf Scope The Data Ownership Task Force is established to discuss and agree on who owns the data tokens and/or objects in PeeringDB. Their agreements, findings, and any sort of recommendations will be documented in a Policy Document as a direct outcome of the Task Force. This Policy Document will include a clear description of each data element and the relation between each other, as well as who should be allowed to create, update, and delete them. The Task Force is estimated to conclude its work within about 6 months from its inception, which was September 2019. This time frame will be extended if the Task Force needs more time to conclude its work. The resulting Policy Document will be announced and shared with the PeeringDB Community. After publishing the Policy Document, the Task Force ended. Data ownership policy implementation presentation This video and presentation explains how PeeringDB handles IX-F import data, creating, changing or deleting netixlan objects and other changes from the implementation of the PeeringDB Data Ownership Policy. Members Darrell Budic Chris Caputo Patrick Gilmore Shane Kerr Fredrik Korsb\u00e4ck Jhonny Lima Ben Maddison Christopher Malayter William Marantz Jeri McNeill Arnold Nipper Barry O\u2019Donovan Mustafa Timur Sever Bijal Shangani Job Snijders Terry Sweetser Lukas Tribus Stefan Wahl Filiz Yilmaz (Chair)","title":"Data Ownership Task Force"},{"location":"taskforce/dataownership/#peeringdb-data-ownership-task-force","text":"The Data Ownership Task Force was established in September 2019 with the aim of working on a PeeringDB Policy proposal about data ownership, after a need was recognized by the Product Committee as issues consistently had been raised relating to who owns the data in PeeringDB when more than one party is involved (as in netixlan, ixfac, netfac, etc objects). A call for participation to the task Force was made on September 10th, 2019. Data Ownership Task Force discussions are archived and can be found at: https://lists.peeringdb.com/pipermail/dataownership-tf/ This webpage is where the work of Data Ownership Task Force will be documented, including meeting minutes, draft documents etc. as their work progresses. In April 2020, the Task Force completed its work and published the resulting PeeringDB Data Ownership Policy Document after few cycles of a Review Phase and a final Last Call over a draft document circulated on their mailing list. (Please see the mailing list archives linked above.) The resulting document can be found at: https://docs.peeringdb.com/gov/misc/2020-04-06_PeeringDB_Data_Ownership_Policy_Document_v1.0.pdf","title":"PeeringDB Data Ownership Task Force"},{"location":"taskforce/dataownership/#scope","text":"The Data Ownership Task Force is established to discuss and agree on who owns the data tokens and/or objects in PeeringDB. Their agreements, findings, and any sort of recommendations will be documented in a Policy Document as a direct outcome of the Task Force. This Policy Document will include a clear description of each data element and the relation between each other, as well as who should be allowed to create, update, and delete them. The Task Force is estimated to conclude its work within about 6 months from its inception, which was September 2019. This time frame will be extended if the Task Force needs more time to conclude its work. The resulting Policy Document will be announced and shared with the PeeringDB Community. After publishing the Policy Document, the Task Force ended.","title":"Scope"},{"location":"taskforce/dataownership/#data-ownership-policy-implementation-presentation","text":"This video and presentation explains how PeeringDB handles IX-F import data, creating, changing or deleting netixlan objects and other changes from the implementation of the PeeringDB Data Ownership Policy.","title":"Data ownership policy implementation presentation"},{"location":"taskforce/dataownership/#members","text":"Darrell Budic Chris Caputo Patrick Gilmore Shane Kerr Fredrik Korsb\u00e4ck Jhonny Lima Ben Maddison Christopher Malayter William Marantz Jeri McNeill Arnold Nipper Barry O\u2019Donovan Mustafa Timur Sever Bijal Shangani Job Snijders Terry Sweetser Lukas Tribus Stefan Wahl Filiz Yilmaz (Chair)","title":"Members"}]} \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index c4336c25..dbe8c4a0 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -2,492 +2,492 @@ <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>https://docs.peeringdb.com/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/api_specs/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blogs/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/faq/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/glossary/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/gov/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/howtos/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/ix-f-json-import-rules/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/oauth/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/presentations/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/tools/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/translation/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/2022_product_report/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/2023_product_report/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/advanced_search_1/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/advanced_search_2/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/alphabetical_search/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/api_keys/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/api_writes_need_api_key/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/automating_configuration/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/better_data/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/better_search_and_export/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/carrier_object/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/carrier_object_deployed/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/contacts_marked_private/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/containerize/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/contributing_code/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/data_quality_improvements/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/data_quality_removing_closed_networks/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/faster_queries/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/geographic_search/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/guidelines_for_registering/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/improving_beta_and_kmz_export/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/installing_peeringdb-py/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/introducing_analytics/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/more_details_facilities/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/nanog_85_hackathon/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/nanog_87_hackathon_proof_of_concept/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/network_type_what_you_told_us/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/network_type_your_input_sought/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/new_permission_manage_peering_sessions/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/oauth_users/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/october_2024_retrospective/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/organizational_policy/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/peeringdb_2020_satisfaction_survey/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/peeringdb_2020_survey_2021_roadmap/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/peeringdb_2021_survey_2022_roadmap/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/peeringdb_2021_user_survey/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/peeringdb_2022_user_survey/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/peeringdb_2023_roadmap/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/peeringdb_in_your_preferred_language/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/peeringdb_is_developed_by_its_community/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/peeringdb_map_with_kmz/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/peeringdb_release_v2.23.0/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/peeringdb_release_v2.24.0/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/search_gets_better/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/structured_data_and_more/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/u2f_and_url/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/updates_from_an_internal_source_of_truth/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/updating_our_webUI/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/user_developed_tools/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/user_suggestions_improve_PeeringDB_usability/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/what_happened_to_our_web_ui/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/whois_to_close/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/blog/your_logo_goes_here/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/committee/common/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/committee/admin/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/committee/admin/approval-guidelines/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/committee/admin/charter/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/committee/outreach/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/committee/outreach/charter/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/committee/product/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/committee/product/charter/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/committee/product/workflow/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/howto/api_keys/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/howto/authenticate/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/howto/enable_require_2fa/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/howto/get-started-carrier/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/howto/get-started-developing/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/howto/get-started-exchange/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/howto/get-started-facility/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/howto/get-started-operator/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/howto/make-a-security-report/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/howto/manage-permissions/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/howto/member_vote/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/howto/organizational_policy/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/howto/peeringdb-py/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/howto/run_development_container/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/howto/search/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/howto/updates-for-as112/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/howto/v2_search/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/howto/work_within_peeringdbs_query_limits/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/release_notes/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/release_notes/release_notes_2020/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/release_notes/release_notes_2021/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/release_notes/release_notes_2022/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/release_notes/release_notes_2023/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>https://docs.peeringdb.com/taskforce/dataownership/</loc> - <lastmod>2024-11-19</lastmod> + <lastmod>2024-11-20</lastmod> <changefreq>daily</changefreq> </url> </urlset> \ No newline at end of file diff --git a/sitemap.xml.gz b/sitemap.xml.gz index 81ef17817d91e143214ee59a55e16d3a253c826b..87a39554c6494f1bce4e347c13aac927c6418dac 100644 GIT binary patch delta 1217 zcmV;y1U~!b3FQfYABzYG)Z0C00{?SqbY*Q}a4vXlYyj1pOK;;g5P<LdD+1r;hq6Vt zMdAgDqCjswbkD??8cAGJ9EA@l&adxKmg5xdrI%u81c*%2(wD(--g)}^I@pH^eK6#n zH;3(h^MFoMV_f&V`S#~;)tAlJ<EN+OZNT`zn_YO`^f8WqKks()Ja2=EIKUXT<hxza zJ--RNb#b@f{<JxMdf->S!S!l+Jz3Jne3!ttX-J3di0Jv5&1tJ?*gfs?hL8Ip#DSV) zy{|u4heK8GdCR)?VVmy3b=Z1*IW}PI<!Sd}<qEQUC;5*|Fd7v`)IlWO$x<hitc4em zT%Dy5z+Yq#!qFs>tEV}VOg%HNRa<=zlMewRe~3=3i`en=Yc+aml8(w_J}9DLAB%y7 zW&)?NQ31j0ULDFotp%gnv4;~zqrtAYf?+vCJmV$ECY(Ko=RrAS1z3p%1E)v>+f>&n zO|CUv^1>}FD{Dlr8i*hsay|dx8ilX2&8r6Q4I|U(JL+OMRfD6Y3pRp*iQ_#TgBrk} zf7v9A-b@ftIIwZN{wAE#n^Rg%S0flTn=18^z?yhboIH7&aNsN;6oTw=plJ~^r}V7B z4&zMzEEvD#XR?iWN&E>4=IoF<4`Xk%_}HsUra{YQA*hx->qKX=jCq$_=IdF@n#=we z7B_qz-o(3N<3a>$Gxz(a)p(H%9G4_Ae-ncPd*O6K@TnWfBL@!b<SZ*QXv0=cw3%?= zs8e5lP(A1~#9nfEzOw#!XU!D`Y8C&m&(=5!K6$HWQ}HsQntO=qLP<rkjY^>qY$o=~ zxG_Z)D0RJPanEew{9r<Ek8yzPpu?NZV~@Bj3zqv*XJ*YnFBwutI&m<RIoNHpf2Gb{ zwrD275i|J?oOxR+5n$Cw)@Z^0?|mr?d9MO<2lgwOUWMc*EQo!<&DRIz37XtyE`$B> zfxRw{JsXj-bfqqk`LQIuFz)KhM~^Lf&xyC?Cna`~MbHNhu_v@NGWhADObi_V4MTD! z7NIVzC2BV8-#KM0f!Cu&2&krde_KCp_oX3!mW;gC@jGNCzLxd{vqqnEOxa#6RlHpF z$QiF(;#9W_C4W^g<jB&@#V=0-)3SADEy%$sCs|%&PH$Q8u^0Xq<isjFl^IXpeizJ| zLyNorkUNxerwys=Ff4;Tw<5p#<GT0PUpQ8RQ?4@!c702|qla-sw}||ve<vy#$<V}+ z2E#7B3Avn0B*zz|I$|r*qfmpKLo~w<4woyTg~mH12lJ*3Mm|?;62MmXMoJOfd}l8; z-np|<iXK5||Lk8d%aH0i8dwNrSu)K9`_|GdcMM(jxZR4#5jVO#y(n~|=8B09P8K=e zeM!cns#_2Y%UNy}Vm?bvG__7!6+*iv3{qzj{t1k)*Si;jyY|X2h2V1P=pmA1?H%BZ z6;uIr@+{a&@DTnDIQM9)dy`)T8E&nDl!q<V`&g@BX2C;%SHQIjTD9aW2!}&0n02a^ zczG^kJGskb+<n$BEQ6~TWew*HGVSZFbK}^wmO%Kocgv(hiO`1<q3aT%A7%arEQB*# fUX9CqKF#dRLT~<uVTR>bz<B%%s;$8I&_VzJYM)kV delta 1218 zcmV;z1U>uZ3FZlZABzYGvv53T0{?SqbY*Q}a4vXlYyj1pOK;;g5P<LdD+1qT$I2Gn zEfOzK6a{+gp?fCA)JWo*;wXGb(f;}lWhKs{z4THHjR28pTKX~=&O47^UIu$Np$~@K z)9$#x-`%0p)EL)2?Y{o?d-ZAe<@Dh(c^fd^@n#pEc72S0<1dH9JkR@JA`UQyJ^Ahs zbkA?XVOu=h??3NOAMW^-Z*aX@UyqjbDc>dVZ5q;HKO%a5W^>+a8V-+#yy5+R2yvk1 zRNvPhtK+dce&#LP+PiJK2iIZi@%hw%vCHG(-O3f@@J8|<nP4<3jHrW1y0fKDCRq#5 zBDp$CA%I^IWWv!TlB=gVl1x1_FI8K83zH53B7cfbtcy7C^J_JFYLbr1V?HRNVIPWt zg=PY$u~7lR>s}qpL9GR&+OdZ-Mx()QxPoChM7-b<WE0Mw!}FjVvI1<xf`L<{fo-bm zlqT1jE_vY=mX$T4R}DlE54oLxaE-zj+2&P)_lA+_{0((6oT|am(t?d(VB&aB$DjuA z7k@Shqc;;o6b@`0uYVU#>CHK9rmGQ*noX5@PGC)36emxfCLA~m2!$Yf9B5j_%qcx< zu){c$zX--}`I&4Zo)dq9f;l^+&coOnEk5?@l4;PgSqQ2n&pOeWEMwj!m-%|uvgWcs zhSd#UhVSBCv2h`SwVC_v(`sBK1IIOq%zwn-z%HCl2tIWKdE~%>ot$N525s2Ni8d1s z9Chl`PpSuff!Iq9&o|beZ>+h(K&|2*_SqUo!6$F?Y$`4zs=0@#7D_6TZBz<{U^B5- z#*HbeK&k6Ri+g4Z=LZvVdyE5Q2OYlJJobp|vS7Kdb!OHK^pYWUq%#LYnS<RnTYu`@ zWs7DK95Ivcz?tuBB?7D($r>%#|Gh0`A>XUO+=2Z{rdJ{P2@7Ihar5<2d4eXlnaf~5 zzGJV8W6wsUEM2J!WPT_~FO0kT^3h|9-gDw@`ALagWD)d%L+lAHjSPNXl!<}kzhOwu z#3Iy%wM5N^{X3_OCGdK*2m#ep?|<uu{e5Z3A0;Dib^H!liLa%7!K~3I9aFX!YZWh7 zJ#xk?mpIk!O37ap3^}qibMed5z_e_gSqpM-%1M^jnA2MpeC&n)1v#<GPG!dP*FOZa z=FsBiKjaRj+-O7UIt=Sz&ufui{dwK{+pioe!8zBN1iQYq-qFK2qFY7&s(&Xc8OhMZ zkp{!Ay$QLTYb3`Pq&i|N(xXs=oI^Cj4i48Vp@qg9BnR`R3`RazY!bj$w?;}4+<a#* zHQu?gQi>iyX#ebAFw2nYHX2w6Wmz)K1^d?0EO!iD_PE`K$PqWXJiRD%qUMT;4$c-i z-+fNTqpDjF49i(=6=FV1O*FMlTNOgPB@9w$68;H{FW0*lg1hy~mqKtkb@UKPvi1&e z!3wH?I(ZgsC3pz`6*%{3t6P&^1Q~8?1t||(s<*LL!OVh(0Iz^s6|`!}R}hZJS}^NW zEAjGN$98g;$++9BUswlM7iA6S3^MKOYv;zXX)S^9hj;6wLy6GG5~1r7p&w-a2P}jO gTV9Rpd_K+W%tCMehhc{GSHO7s8&}L~=Fma_0MH#&lK=n!

    v?|NXcykMNc?;(ZnQL7vv8wP3 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⪻jsHZlc5GygMefWn>i>iv$J0VF%Q)Pk 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