Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
dbc1a2a
Add the integration provider seam design spec
jwrosewell Aug 27, 2026
12ad16c
Revise the integration seam spec to carry identity, geo and device as…
jwrosewell Aug 28, 2026
216596a
Record what implementing the integration seam found
jwrosewell Aug 28, 2026
62a01b6
Move the provider series design specs ahead of their implementation
jwrosewell Aug 30, 2026
4ee2ab1
Carve evidence interfaces out of the trait minimalism rule
jwrosewell Aug 30, 2026
a8bf675
Say create rather than mint throughout the provider specs
jwrosewell Aug 30, 2026
26f6954
Remove the reserved 51Degrees provider code row and apply spec house-…
jwrosewell Aug 31, 2026
115a88c
Finish the clause-punctuation sweep on the permission model spec
jwrosewell Aug 31, 2026
580081a
Finish the clause-punctuation sweep on the response-header-hook spec
jwrosewell Aug 31, 2026
47ef741
Restatus the unmerged provider specs and correct the seam spec counts
jwrosewell Aug 31, 2026
369dd23
Answer the PR #1084 review findings in the series specs
jwrosewell Sep 1, 2026
6718cbf
Qualify the completeness claim against the browser-side APS coupling
jwrosewell Sep 1, 2026
5386424
Format the provider specs for the docs Prettier gate and correct two …
jwrosewell Sep 1, 2026
fa1df47
Cite RFC 6454 for the resolve endpoint's origin comparison
jwrosewell Sep 1, 2026
48e6ade
Record the chosen page carrier for resolved permissions
jwrosewell Sep 1, 2026
60c9214
Replace an en dash in a section range with plain words
jwrosewell Sep 1, 2026
bb4f0f7
Align the provider specs with how permissions reach filters, provider…
jwrosewell Sep 1, 2026
760e49a
Record the permission rules tree in the design specs
jwrosewell Sep 1, 2026
52ab79f
Match the spec's jurisdiction values to the policy parser
jwrosewell Sep 1, 2026
5b27ceb
Record per-node jurisdiction and the retirement of the consent lists
jwrosewell Sep 1, 2026
742bb3f
Record the unknown jurisdiction on a failed geo lookup
jwrosewell Sep 1, 2026
fb7cf3e
Say precisely that geo is a provider and give migrated vendor crates …
jwrosewell Sep 1, 2026
687ea90
Record the transport evidence types as EdgeZero migration candidates
jwrosewell Sep 2, 2026
3f9bf12
Point the specs at the config/permissions sample location
jwrosewell Sep 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
324 changes: 324 additions & 0 deletions docs/superpowers/specs/2026-07-30-client-cycle-ec-resolve-design.md

Large diffs are not rendered by default.

1,265 changes: 1,265 additions & 0 deletions docs/superpowers/specs/2026-07-30-integration-response-header-hook-design.md

Large diffs are not rendered by default.

927 changes: 927 additions & 0 deletions docs/superpowers/specs/2026-07-30-permission-model-design.md

Large diffs are not rendered by default.

692 changes: 692 additions & 0 deletions docs/superpowers/specs/2026-07-30-pluggable-providers-design.md

Large diffs are not rendered by default.

535 changes: 535 additions & 0 deletions docs/superpowers/specs/2026-07-30-provider-migration-rollout-design.md

Large diffs are not rendered by default.

481 changes: 481 additions & 0 deletions docs/superpowers/specs/2026-08-27-integration-provider-seam-design.md

Large diffs are not rendered by default.

29 changes: 29 additions & 0 deletions docs/superpowers/specs/provider-code-registry.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Provider-code registry (normative, append-only, never reused)

Four-character codes (`[a-z0-9]`, zero-padded) that namespace Edge Cookie
identifiers. Every EC provider MUST allocate a code here before it can
exist, because the `EdgeCookieProvider::code()` trait method is mandatory, and core
applies the code as the `{code}~` prefix of every identifier the provider
creates, checks it at read-back, and keys the identity graph with it. A
provider only ever sees its own value part, so identifiers from different
providers can never collide in the cookie, the graph, or a withdrawal, and
every identifier records which provider created it.

Allocation is a reviewed commit to this file. Codes are immutable and never
recycled, including for retired providers. A leading digit is valid. The
tilde separator keeps parsing exact while pre-envelope identifiers remain
deployed, where a legacy bare identifier contains no tilde and dual-reads under
the built-in HMAC provider only.

The class of provider expected to grow this table is one that consumes a
web-browser-supplied unique identifier, arriving either as a new web
platform feature or from a user-installed extension, delivered to the edge
through the client-cycle resolve path and verified by the provider before
creating.

| Code | Provider | Allocated | Status |
| ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | -------------------------- |
| `hmac` | Built-in HMAC EC provider. Creates `hmac~<64 hex>.<6 alnum>`; dual-reads its pre-envelope bare form so deployed cookies keep working (retirement condition in `provider_owns_id`) | 2026-08-02 | active |
| `hs00` | Built-in host-signal EC provider (opt-in; TLS JA4 plus HTTP/2 signals plus client IP) | 2026-08-25 | active |
| `cfix` | Client-fixed demonstration provider (compiled only behind the `client-fixed-demo` cargo feature) | 2026-08-25 | active, test and demo only |
| `t0..` | Prefix family reserved for in-tree test providers (`t0cc`, `t0op`, and similar); never valid in configuration | 2026-08-25 | reserved |
Loading