AclEntry class
AclEntry
Constructors
-
AclEntry({required String subject, required String role, List<
String> ? scopes, List<String> ? allowedKeys, String? label, String? createdAt, String? createdBy, String? updatedAt, String? updatedBy, String? expiresAt, AclEntryStepUp? stepUp, AclEntryApprove? approve, Ext? ext}) -
const
-
AclEntry.fromJson(Map<
String, dynamic> json) -
Read this payload from a decoded JSON object.
factory
Properties
-
allowedKeys
→ List<
String> ? -
Key identifiers this subject may invoke the maintainer's signing oracle on.
INTERSECTS WITH
scopes— it can only narrow, never widen: a key named here that lies outside the entry's scopes remains unreachable, exactly as if it were not named. ABSENT means every key within the entry's scopes (the behaviour of entries that pre-date this member); explicitnullis equivalent to absent, and producers SHOULD omit the member instead. PRESENT-BUT-EMPTY means authorized on NO keys — the opposite of absent, and deliberately so: emptiness is never a wildcard (CONVENTIONS.md §5). A consumer MUST preserve and enforce the absent-vs-empty distinction end to end; collapsing the two (e.g. by testing emptiness alone) re-creates the empty-means-unrestricted class of privilege-escalation defect this family's conventions exist to prevent.final - approve → AclEntryApprove?
-
Approve-authority: what this subject may confer on others by ratifying an
approval, as distinct from
scopes, which is what it may exercise itself. The two axes are independent, and that independence is the point — it is what lets a maintainer configure a least-privilege approver who can authorize an operation in a scope it has no authority to perform. OMISSION MEANS NOTHING IS CONFERRED. An absentapprove, an absentall, and an emptyscopesare all equivalent to "this subject may ratify nothing". A consumer that does not implement this member therefore confers less than the producer intended rather than more, which is the direction a missed member has to fail in. A subject with approve-authority is NOT thereby authorized to act. Consumers MUST resolve the two axes separately: readingapproveto answer "may this party ratify X" andscopesto answer "may this party do X". Collapsing them grants an approver the ability to perform what it was only meant to sign off on.final - createdAt → String?
-
final
- createdBy → String?
-
VID of the party that originally added this entry.
final
- expiresAt → String?
-
Optional time after which the entry is no longer effective.
final
- ext → Ext?
-
Ecosystem-defined extension members per SPEC.md §4.5.1. Reverse-DNS-namespaced;
consumers MUST ignore unrecognized namespaces.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- label → String?
-
Optional human-readable label.
final
- role → String
-
Opaque role identifier interpreted by the ACL maintainer.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
scopes
→ List<
String> ? -
Opaque scope identifiers (e.g. contexts, domains, resource prefixes).
final
- stepUp → AclEntryStepUp?
-
Per-entry authentication step-up configuration, consumed by the ACL maintainer when
it gates an operation behind a step-up (see auth/step-up/policy/0.1).
ADDITIVE-ONLY: a per-entry setting MAY raise the assurance required of this subject
above the maintainer's system-wide floor, but MUST NOT lower it. The maintainer
resolves the effective requirement as the strictest of (system floor, this entry).
final
- subject → String
-
VID of the party in the ACL. Compared by exact string equality (SPEC.md §4.8);
producers SHOULD emit canonical form.
final
- updatedAt → String?
-
final
- updatedBy → String?
-
VID of the party that last modified this entry.
final
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toJson(
) → Map< String, dynamic> - Serialize to a JSON-encodable map, omitting absent members.
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited