Add service sunset period with failure randomization

Repository details (node-dnssec-name-shame)
Project page
node-dnssec-name-shame
Project log category
(177 entries)
Owner
@joelpurra
Contributors
Contributors on Github
Project status
⏲️ This project has had recent commits.
📂 This project is open.
🌠 This project is popular.
Repository activity period
🗓
Commits
174 commits
Stars
15 stars
Commit details (c68a47e2)
Author
Authored at
Committer
Joel Purra
Committed at

Commit message

Add service sunset period with failure randomization

  • Since DNAS is being decommissioned, the internal DNSSEC domain JSON lookup API will also shut down.
    • While the service was not intended for public consumption, there have previously been indications that some third-party users have relied on the functionality.
    • To not surprise users too much, this commit introduces logic to randomly deny service requests during a configured sunset period.
  • Each request is evaluated against the sunset "progress" calculated at request time, as well as a random value.
    • Here "progress" implies that the threshold the random value needs to "pass" is increasing, up to a configured maximum.
    • If the random value does not pass the threshold, the request deliberately fails with a 501 Not Implemented response.
  • While there is a configured start/target sunset date, there is no actual fixed shutdown date -- it depends on the server administrators, and may land before or after the target.
Raw text
Add service sunset period with failure randomization

- Since DNAS is being decommissioned, the internal DNSSEC domain JSON lookup API will also shut down.
  - While the service was not intended for public consumption, there have previously been indications that some third-party users have relied on the functionality.
  - To not surprise users too much, this commit introduces logic to randomly deny service requests during a configured sunset period.
- Each request is evaluated against the sunset "progress" calculated at request time, as well as a random value.
  - Here "progress" implies that the threshold the random value needs to "pass" is increasing, up to a configured maximum.
  - If the random value does not pass the threshold, the request deliberately fails with a `501 Not Implemented` response.
- While there is a configured start/target sunset date, there is no actual fixed shutdown date -- it depends on the server administrators, and may land before or after the target.

Changed files (4)

Path Additions Deletions
app/web.js +19 -0
app/web.js.defaults.config.json +5 -2
lib/sunset.js +56 -0
public/index.html +4 -1

Commit categories (3)