Link Intent V2 and the roadmap Intent API
Two different concepts have historically been called “intent.” Link Intent V2 is a private evaluation candidate, not a public production onboarding surface:
| Concept | Status | Purpose |
|---|---|---|
| Phosra Link Intent V2 | Private evaluation candidate in @phosra/link 0.7.10 and @phosra/gatekeeper 0.8.7 | A proposed short-lived signed authorization request for one synthetic ceremony. |
| Generalized OCSS policy-resolution API | Roadmap | A future service that could resolve context such as age and jurisdiction into applicable rule categories. |
Private evaluation: Phosra Link Intent V2
The candidate packages are not public npm releases. Hosted decision routing, production credential issuance, and a production receipt rail remain roadmap. Do not treat the code below as public self-service production onboarding.
The Golden provider server creates Intent V2 after it has:
- authenticated the parent;
- resolved the child inside that parent's tenant boundary;
- obtained the child's stable provider-local
householdRef; - verified the target platform and current policy facts; and
- created a time-limited ceremony with PKCE and replay protection.
Intent V2 adds a platform-scoped digest of the authenticated household authority.
The raw householdRef does not cross the boundary. This enables independently
authorized child memberships to converge on a shared platform target without
using names, emails, or raw family IDs as correlation keys.
Applications using the Golden server do not sign, parse, or transport the intent themselves:
const server = await createGoldenLinkServer({
credential: process.env.PHOSRA_CREDENTIAL!,
database,
authenticate,
children: {
resolve: async ({ principal, childRef }) => {
const child = await findOwnedChild(principal.parentID, childRef)
return child && {
id: child.id,
displayName: child.name,
ageBand: child.ageBand,
householdRef: child.familyId,
}
},
},
policy,
})The compact signed artifact is protocol material. Do not log it, expose it to
analytics, modify its claims, or reconstruct it from browser state. Advanced
conformance implementations can use the explicit @phosra/link/link-intent
subpath; product applications should use the Golden server.
Signed writes and platform evidence
A signed Link intent is authorization to begin a ceremony. It is not evidence that controls were applied.
The lifecycle produces distinct artifacts:
- a durable binding proves the connection exists;
- a signed rule write/receipt proves the requested policy was recorded;
- a verified platform profile proves what Gatekeeper was instructed to apply;
- signed platform events report concrete per-rule results; and
- a signed release lifecycle proves revocation and eventual removal.
Parent-facing success must follow those evidence levels. An intent, OAuth code, or delivery acknowledgement alone never means “enforcement confirmed.”
Roadmap: generalized policy-resolution API
There is no public /api/v1/intent/resolve endpoint and no published request or
response schema. Do not build an integration against examples from older roadmap
documents.
A future generalized resolver may accept verified child context, jurisdiction, platform capabilities, and consent standing, then return applicable OCSS rule categories and typed defaults. That work is distinct from Link Intent V2:
- Link Intent V2 authorizes one concrete linking ceremony.
- A generalized resolver would help an issuer decide which policy facts apply.
- Any future resolver output would still need standing, signed writes, platform enforcement, and evidence; resolution would not prove application.
Rule categories remain the normative OCSS vocabulary. Product catalog IDs, platform title IDs, profile IDs, and other vendor-specific database identifiers are not normative OCSS rule values.
Integration guidance
- Use
createGoldenLinkServer(...)for new provider applications. - Return
householdRefonly from an authenticated server-side child resolver. - Let Link create Intent V2 and let Gatekeeper verify it.
- Treat generalized intent resolution as roadmap until an endpoint and schema are published.
- Keep policy resolution, policy recording, and platform evidence as separate states.
See the Provider quickstart,
@phosra/link, and the Platform quickstart.