Features / redirect

redirect

new-endpoint · 5 of 5 promises kept

Promises kept5 / 5none broken
TierCore P2new-endpoint
Kill switchnone (Core: rollback)Core features roll back instead
Originbase featureGET /r/{code}

Promises

grouped by type
Promise and latest resultSeverityChecked in
behavior · 2
redirect-works
A short link sends people to its long URL
Kept in production (live check, 27 Oct 12:55 UTC)
blocker
merge requesttest driveproduction
redirect-unknown-404
An unknown short link answers 404, not an error
Kept in production (live check, 27 Oct 12:55 UTC)
major
merge requesttest driveproduction
speed · 1
redirect-fast
95% of redirects finish in under 150 ms
Kept on its merge request (checked before every merge)
blocker
merge requesttest driveproduction
reliability · 1
redirect-reliable
Fewer than 0.1% of redirects fail
Kept on its merge request (checked before every merge)
blocker
merge requesttest driveproduction
security · 1
redirect-rejects-odd-codes
Codes with characters outside letters, digits, dash and underscore are refused
Kept on its merge request (checked before every merge)
major
merge requesttest drive

promises/features/base-redirect.yaml

feature: redirect
issue: null
kind: new-endpoint
tier: core
priority: P2
owns:
  routes:
  - GET /r/{code}
  files:
  - app/features/redirect.py
flag: null
promises:
  behavior:
  - id: redirect-works
    says: A short link sends people to its long URL
    steps:
    - 'POST /api/links {url: ''https://example.com/r-{rand}''} -> 201 => link'
    - GET /r/{link.code} -> 302 https://example.com/r-{rand}
    where:
    - mr
    - drive
    - live
    severity: blocker
  - id: redirect-unknown-404
    says: An unknown short link answers 404, not an error
    steps:
    - GET /r/unknown{rand} -> 404
    where:
    - mr
    - drive
    - live
    severity: major
  speed:
  - id: redirect-fast
    says: 95% of redirects finish in under 150 ms
    measure: p95(latency, route='GET /r/{code}') < 150ms
    where:
    - mr
    - drive
    - live
    severity: blocker
  reliability:
  - id: redirect-reliable
    says: Fewer than 0.1% of redirects fail
    measure: error_rate(route='GET /r/{code}') < 0.1%
    where:
    - mr
    - drive
    - live
    severity: blocker
  security:
  - id: redirect-rejects-odd-codes
    says: Codes with characters outside letters, digits, dash and underscore are refused
    steps:
    - GET /r/a.b -> 404
    - GET /r/a%27b -> 404
    where:
    - mr
    - drive
    severity: major