are different for the generalized regex match.
> A username can only contain alphanumeric characters (letters A-Z, numbers 0-9) with the
> exception of underscores, as noted above. Check to make sure your desired username
> does not contain any symbols, dashes, or spaces.
https://help.twitter.com/en/managing-your-account/x-username-rules
Add a specific if-else regex match for X usernames to take into account
that PeeringDB users are able to have X usernames of less than 4 characters
that are the current minimum our generalized username regexer checks in
the string length match. I.e. We currently accept 4-32. X allows 1-15 in length.
* Support 202403 prepare
* refactor peeringdb_server/management/commands/pdb_delete_outdated_pending_affil_request.py for improved code structure
fix tests/test_settings.py::TestAutoApproveAffiliation::test_setting by using rdap mocking
* db schema docs and api docs regen
* rir should be RIR
---------
Co-authored-by: 20C <code@20c.com>
v2 search - support for ISO 3166 alpha-2 country codes - fixed#1447
Enable .KMZ export for Advanced Search results - fixed#1495
BFD support field in Global and IX specific views - fixed#1331
Remove unneeded fields from the KMZ - fixed#1489
Return auth error when multiple auth methods are used - fixed#1133
Social link controls showing up when not logged in - fixed#1478
Tab URLs don't work anymore - fixed#1152
Update social media icons in footer - fixed#1425
Co-authored-by: 20C <code@20c.com>
* Add field ixf_ixp_import_enabled to object ixlan #1229
pdb_load_data no longer creates necessary org usergroups #1480
API list net documentation says "org" is a string, but it actually contains a dictionary #1438
Allow users to edit their objects Geocode #1464
* escape lat lng input
* only notify for `ok` facilities
linting
---------
Co-authored-by: 20C <code@20c.com>
* fix oversight where bad to good rir_status updates would be missed
* fix layout issues
fix double search box
fix search not always toggled
* add elasticsearch env_file for dev docker-compose
fix mobile search
* missing template
* linting
* relock
* 1280 fixes
* cleanup and fixes for rir_status update, also add --reset
* linting
* comment
* fix tests and some adjustments
* fix mock according to new rir_status values
* more rir_status update fixes and safety checks
fix tests
* remove listening env vars from docker file
* allow env override of STATIC and MEDIA root
* add uwsgi file to tester target
* add output_dir to kmz gen, kmz-gen-only
Add a "flag bad data" button on various places #170
Add a "last synced at $date" to beta.peeringdb.com #410
Improve RIR Update Procedure #1303
Only indicate availability of DC voltage for facilities #1341
Clarifying the Network Type field #1357
Changing ASN field on "Add Network" to be numbers only #1430
Update website to take advantage of wider screen and improve mobile device support #1463
v2 search - not able to find IX participant based on IP #1469
v2 search not able to find organization and network - Marconi Solutions Srls #1476
Improve RIR Update Procedure #1280
Co-authored-by: 20C <code@20c.com>
* Make dates ISO 8601 compliant everywhere in PeeringDB (#1432).
Timestamps should be consistent (#1433).
Display dates consistently (#1252).
Show connected networks, exchanges, and carriers on campus results pages (#1362).
Improve visibility of contact data settings (#1327).
Keep the list of IRR up to date (#1385).
Store language preference in the user's profile instead of cookies (#1247).
* linting
* Cache changes
* final linting and tests
* fix kmz export test to read from the correct location
---------
Co-authored-by: 20C <code@20c.com>
Co-authored-by: Matt Griswold <grizz@20c.com>
* fixes#1260 - playwright tests
fixes#1394 - v2 search failing to find some names
fixes#1374 - Search to include new objects: Campus & Carrier
fixes#1164 - better rdap error reporting
fixes#1368 - Facility data export into Google Earth KMZ
fixes#1328 - Support web updates from a source of truth
fixes#1257 - Help text covers non-compliant email addresses
fixes#1313 - Improve email confirmation control - add 3 month option & maybe set new default value
fixes#1380 - Reset 'Social Media' to '[]' if field has no value
* linting
* remove target=_blank
* bump ES version to 8.10
* Cache and ES updates (#1459)
* elasticsearch major version pin and relock
* set decimal fields to python value on client save for load_data
* force use of redis password
* add default_meta to render
* add generated, clean up var names
* run pre-commit
* update ES for https and password
* rm cruft
* isort
---------
Co-authored-by: 20C <code@20c.com>
Co-authored-by: Matt Griswold <grizz@20c.com>
Correct typo - PEERINGDB-202309AMLNQ1
FROM:
Geocode data for this entity could not obtained at this point
TO:
Geocode data for this entity could not be obtained at this point
* Sorting icon from google material icons #1419
Manual IX-F import request queue can get stuck #1182
IX Object Creation Per Policy #1364
Creating a new network not possible #1401
IX-F Importer: Cosmetic issue with "resolved" emails and double-slashes in URLs after the FQDN #1334
Add a "Delete Affiliation" button/option to the profile #1226
Redis and negative caching #1431
* linting
* update gen_docs to use py3.11
* fix issue with api docs schema regen
* regen apidoc schema and db schema graph
* fix username validation for social media
* Add test case for social media validation
* linting
* tests shouldnt use redis
* also fix session cache setup (although not used atm)
* linting
* all caches to localmemcache during testing
---------
Co-authored-by: 20C <code@20c.com>
Co-authored-by: Matt Griswold <grizz@20c.com>
* Support 202307
Add hover tip to describe meaning of routeserver icon #1381
Add Campus and Carrier Tooltips #1361
Display website URL on all non-org objects #1300
Make the search field on cp/peeringdb_server/network/ aware of leading AS/ASN #1027
Add search field to `/cp/peeringdb_server/` AC views (#1239)
IX-F Importer: IX-F Member Data not being nullified after IX stops/changes import #1360
Include carrier and campus objects in the API #1352
* fixes to website propagation
* fix tests
* django-security-keys to 1.1.0 and relock
* poetry relock
* linting
* comment django-peeringdb dev mount
* add org website field to admin forms
* fix templatetag name collision between django-security-keys and peeringdb
* linting
* django-peeringdb to 3.2.0 and poetry relock
* remove debug message
---------
Co-authored-by: 20C <code@20c.com>
* prep 2.47.0-beta1
* Elasticsearch fixes (#1388)
* silent ES auto update failure
search_index command that support incremental update through --max-age period
* reftag search case-insensitive
* case insensitive reftag search
* prep 2.47.0
---------
Co-authored-by: Stefan Pratter <stefan@20c.com>
* Don't allow the first and last addresses being assigned #1241
Show all e-mail addresses associated with a username #1291
Add permission 'manage peering sessions' #1290
Put an Icon next to user name on https://www.peeringdb.com/org/nnnn#users if the user is using U2F #1238
Tie TOTP devices and Webauthn Security Keys to the user account #1339
v2 Search (#1204)
pin django peeringdb 3.0.1 and poetry relock
linting
* fix codeql warning: DOM text reinterpreted as HTML
* fix global stats tests
---------
Co-authored-by: 20C <code@20c.com>
* add social media fields
Clearly show when a facility is part of a campus #1336
fix get carrier with parameter
Duplicate address(es) should result in rejection of JSON export and notification of IXP
linting
move style to css file
social media field fixes
fix tests
remove social media fields from entity creation
change label to "+ Social Media"
poetry relock
fix migration hierarchy
fix missing template tag
pin django-peeringdb to support_202303 branch
django-cors-headers to 3.13 as 3.14 breaks stuff
fix pdb_load issues
PEERINGDB_SYNC_USERNAME
linting
django-peeringdb 3.0.0
* use .text() to set social media label content
---------
Co-authored-by: 20C <code@20c.com>
It should be impossible to save an active entity under an entity that is marked as deleted. #389
Implement auto-removal of stale networks according to DOTF recommendations #1271
Rename Private Peering Facilities to Interconnection Facilities in the UI #749
poetry relock
linting
Currently, users must log in before they can set a language preference
on PeeringDB. This change allows anonymous users to change the language
of any page without logging in, by setting the Django language cookie.
* fix next redirect when using U2F 2FA auth (#1191)
* Added self identifier to API
* fix migrations hierarchy after merging in previous support branch
* campus object
Co-authored-by: Stefan Pratter <stefan@20c.com>
* fix out of bound error message
add city / country to campus view
* fix tests
* relock poetry
* linting
* linting
* fix docs regen
* regen docs
* linting
* refactor self entity view to support carrier and campus object types and also make it easier to support additional object types in the future
* remove debug message
---------
Co-authored-by: Gajanan Patil <dipaksavaliya.python@gmail.com>
* Carrier object implementation #909
* 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. #1140
* Ops: django needs lightweight healthcheck route that confirms database connectivity #1284
* Ops: various indexes are needed #1285
* API requests with invalid Authentication headers should notify users in some way. #1220
* Allow user to change account username #1130
* UX to remove carriers from facilities more inline the other similar UX
* more UX fixes for removing carriers from facilities
* Cache hints are needed for optimal CDN use #970
* fixes Commandline tool "Run command" button gone #1278
* RIR status gets deleted when changes are made to the network #1279
* Improve MTU field #658
* CSRF cookie not set error from email confirmation view #1296
* expose CSP_CONNECT_SRC
* fix confirm email path checking in session middleware
* Ops: Emails to OPERATIONS_EMAIL need to be rate-limited #1282
* add website field to carrier ux
* website field on carrier optional with org fallback
* linting
* add *.google-analytics.com to CSP_CONNECT_SRC
* poetry relock
* fix issues with confirm-email reverse during session creation validation
* fix tests
* fix tests
* pin django-peeringdb to support_202211
* linting
* django ratelimit to <4
* regen docs
* fix automated net stats to only include networks with status `ok` #1283
* linting
* poetry lock
Co-authored-by: Matt Griswold <grizz@20c.com>
* Allow REALPEER to overwrite GHOSTPEER netixlan entry, if asn and IPv6/v4 addresses matches the IX-F Members Export information #983
* Lightweight user notification mechanism #758
* do not allow affiliation with a deleted organisation #953
* Improve readability when users have special permissions #659
* fix advanced search export when api-cache exist and no filters were supplied #1153
* Ops: Throttle strings with "Response size" should be renamed "Repeated request" #1168
* allow ixlan prefix to be changed / deleted regardless of existence of netixlans in the address space #924
* linting
* poetry relock
* remove debug code
* linting
* fixed Reset IX-F suggestions link non-functional #1253
* solved UI shows own email when viewing affiliation requests for an organization #1250
* Adjust "Add Facility" menu to include newly defined fields #1091
* Footer "Global System Statistics" should be cached within django instance, not updated with every page load #1283
* linting
* django-handleref to 1.1.0 and relock poetry
* GLOBAL_STATS_CACHE_DURATION default to 900 seconds
* remove vscode and idea
* remove Ctl/dev/docker-compose.debug.yml
* remove unsused variable
* rename STATS to __STATS
* linting
* regen docs
* Add export tool to https://peeringdb.com/cp/peeringdb_server#586
* IX-F importer fails on nulled ipv4 / ipv6 properties in vlan_list entries #1244
* Adding a POC must require an email address or phone number #1044
* Selenium tests
* ping django-peeringdb and rdap and poetry relock
* linting
* linting
* remove selenium tests cruft
* comment out django-peeringdb and search data mounts
* regen docs