What is happening?
The boundary nodes are being updated with some potentially breaking changes to address security vulnerabilities:
/api
calls will only be allowed on the base domains:icp-api.io
ic0.app
icp0.io
- Calls to /_/raw will require certification
- requests by crawlers for SEO will require certification
Since some changes are potentially breaking we will do the rollout in stages giving you the opportunity to test your dapps before the changes are rolled out to production.
Change details
/api
calls
Boundary nodes receive /api
requests to domains like:
mainnet.dfinity.network
boundary.ic0.app
<canister_id>.ic0.app
For more details see the https interface spec.
In order to fix a security vulnerability, the /api/ calls will only be allowed on the base domains:
icp-api.io
ic0.app
icp0.io
What does it mean?
In the first phase, /api
requests to a hostname other than the base domains will be redirected to icp-api.io
.
For example:
boundary.ic0.app/api/v2/<canister_id>/query
will be redirected to icp-api.io/api/v2/<canister_id>/query
. In the second phase, /api
requests are only allowed on the base domains.
Recent versions of agent-js and agent-rs already rewrite /api/*
requests to subdomains of the base domains to the base domain itself. (e.g., <canister_id>.ic0.app
→ ic0.app
) and no changes are required.
Who is affected?
If you are using older libraries or have implemented your own you might have /api
requests going to other hostnames, those requests will get redirected and eventually rejected. If you use newer libraries, this will not affect you.
Timeline
Thursday June 22nd - We have reserved 1 boundary node at [2604:6800:258:1:5000:98ff:fe7d:347b], [162.247.129.233] with the updated configuration. You can use dnsmasq or configure your /etc/hosts file (or windows equivalent) to point to it if you want to test your application. Note that you will need to point the following URLs (possibly more if you are using custom domains):
icp0.app
<canister_id>.ic0.app
icp0.io
<canister_id>.icp0.io
icp-api.io
During this period, that preview boundary node will track the regular boundary node releases. ie if there is a production deployment during this time, this particular boundary node will be patched and upgraded at the same time.
Wednesday July 5th 5pm UTC - For a duration of 24 hours we will update the production boundary nodes to accept /api
requests only on the base domain names. /api
requests to other hostnames will be redirected. After the 24 hours have elapsed we will rollback the changes. The idea is to rollback faster in case of widespread outage and to give you time to push fixes before we make the changes permanent.
Wednesday July 12th at 5pm UTC - For a duration of 24 hours we will update the production boundary nodes to accept /api
requests only on the base domain names. /api
requests to other hostnames will be redirected. After the 24 hours have elapsed we will rollback the changes. The idea is to rollback faster in case of widespread outage and to give you time to push fixes before we make the changes permanent.
Wednesday July 19th at 5pm UTC - Production boundary nodes will only serve /api
requests on the base domain names hostname, and redirect /api
requests received for other hostnames.
Wednesday July 26th at 5pm UTC - Boundary nodes will stop accepting /api
requests to hostnames other than the base domain names.
Please use this forum thread to reach out with any questions or issues you encounter.
*** July 7th 2023 - Edited with the new timeline in response to issues from July 5th***