Skip to content

Commit 94f5be4

Browse files
committed
fix(psp-1): definition for local availability, renamed 11.9 to extensibility, renamed 5.8 to TAP constraints, the renames avoid overloading "profiles" as a keyword
1 parent 800e643 commit 94f5be4

File tree

1 file changed

+26
-17
lines changed

1 file changed

+26
-17
lines changed

docs/reference/specifications/psp-1.mdx

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,13 @@ and only when, they appear in all capitals, as shown here.
101101
delegation chain to a resource domain.
102102
- **Access PoAR:** The Proof-of-Action receipt written by the enforcing CEP
103103
(defined in PSP-2).
104+
- **Local Availability:** An artifact (Grant, revocation state, lattice
105+
snapshot, comparator or other evaluation input) is "locally available" at
106+
enforcement if it can be accessed by the CEP without network I/O, within
107+
TAP-defined resource bounds, at the moment verification begins.
108+
Pre-enforcement resolution (governed by TAP) MAY populate local storage before
109+
verification starts. During Program evaluation, any missing required input
110+
MUST cause denial.
104111
- **TAP (Threat and Acceptance Policy):** The acceptance policy that governs
105112
time discipline, chain depth and anchoring requirements, resolver/mirroring
106113
allowances, replay defenses, and other deployment-specific constraints used by
@@ -536,14 +543,15 @@ action in A over any resource in R"). Use PairSet when the matrix is irregular.
536543
- CEPs MUST verify subset relations hop-by-hop along the delegation chain using
537544
the same normalization and comparators; failures or unknowns MUST cause deny.
538545

539-
### 5.8 Specification Profiles
546+
### 5.8 TAP constraints
540547

541-
This specification standardizes exactly three Declaration kinds: PairSet,
542-
ActionSet, ResourceSet. Specification Profiles MAY further constrain their usage
543-
(e.g., disallow ResourceSet for certain actions) or prescribe default
544-
comparators per scheme. A CEP MUST deny if a Program references a declaration
545-
kind not supported by the active profile or if a required comparator is not
546-
available.
548+
PSP-1 standardizes exactly three declaration kinds: PairSet, ActionSet and
549+
ResourceSet. Deployments may impose additional acceptance rules via their Threat
550+
& Acceptance Policy (TAP). For example, a TAP MAY disallow certain declaration
551+
kinds for particular actions or restrict which resource schemes are acceptable.
552+
When TAP forbids a declaration kind or a required scheme comparator is
553+
unavailable, the CEP MUST deny. These TAP constraints do not alter the semantics
554+
defined in this specification.
547555

548556
## 6. Semantic Pinning
549557

@@ -1245,16 +1253,17 @@ A CEP MUST deny if any of the following holds:
12451253
`{ ("secret:read","vault:.../team/*"), ("secret:derive","vault:.../svcX") }`
12461254
- Child PairSet = `{ ("secret:read","vault:.../team/appA") }` (valid subset).
12471255

1248-
### 11.9 Profiles
1249-
1250-
- Profiles MAY introduce additional declaration kinds or builtins, but MUST
1251-
preserve monotonicity, purity, bounded evaluation, and pinned semantics
1252-
(`builtinsId`) with chain-wide compatibility. When a profile introduces new
1253-
declaration kinds (e.g., a PolicyBundle), child bundles MUST be subsets of
1254-
parent bundles under the registry-defined comparator for that kind.
1255-
- Anchoring mechanics and acceptance policies are TAP-governed. PSP-1 is
1256-
agnostic to how anchors are established; CEPs enforce anchoring only when TAP
1257-
declares an applicable method for the resource domain.
1256+
### 11.9 Extensibility
1257+
1258+
Future Polykey Standard Proposals MAY introduce additional declaration kinds or
1259+
builtins. Such extensions MUST preserve the core invariants of PSP-1:
1260+
monotonicity, purity, bounded evaluation and pinned semantics (`builtinsId`)
1261+
with chain-wide compatibility. When a new specification introduces a declaration
1262+
kind (for example, a policy bundle), derived grants MUST ensure that child
1263+
bundles are subsets of parent bundles under the registry-defined comparator for
1264+
that kind. Anchoring mechanics and acceptance policies remain TAP-governed; this
1265+
specification remains agnostic to how anchors are established, and CEPs enforce
1266+
anchoring only when TAP declares an applicable method for the resource domain.
12581267

12591268
## 12. Revocation and Rotation
12601269

0 commit comments

Comments
 (0)