auth_bindings
Generated by the pinned ess generate --kind docs from ess. Structural validation establishes consistency; behaviour, storage and cross-record predicates remain implementation obligations.
Proposed host-private auth records and acknowledged lifecycle boundaries.
connectors.auth_bindings is one of connectors's bounded contexts. Back to the index.
Types
AcquisitionFailure
connectors.auth_bindings.AcquisitionFailure is one of rejected, exchange_unknown and expired.
AuthRequirement
connectors.auth_bindings.AuthRequirement is a record of two fields:
profile—Stringscopes—List<String>
BindingPublication
connectors.auth_bindings.BindingPublication is a record of six fields:
connection_ref—Stringexpected_publication_fence—Stringprofile_record_ref—Stringgeneration_id—Optional<connectors.credentials.CredentialGenerationId>, which may be absentcustody_version_ref—Optional<String>, which may be absentexternal_identity—Optional<connectors.credentials.ExternalIdentity>, which may be absent
CredentialSet
connectors.auth_bindings.CredentialSet is a record of three fields:
kind—Stringmaterial_handle—Stringsize_bytes—Integer
Decision
connectors.auth_bindings.Decision is one of allow, refuse and unknown.
LocalStaticProfile
connectors.auth_bindings.LocalStaticProfile is a record of six fields:
profile_id—Stringrevision—Stringpurpose—connectors.auth_access.Purposesubject—connectors.auth_access.Subjectminimum_scopes—List<String>evidence_lifetime_ms—Integer
ProfileDeclaration
connectors.auth_bindings.ProfileDeclaration is a record of 12 fields:
purpose—connectors.auth_access.Purposesubject—connectors.auth_access.Subjectscheme—connectors.auth_access.Schemeacquisition—connectors.auth_access.AcquisitionDeclarationscopes—connectors.auth_bindings.ScopeRequirementscapabilities—List<connectors.auth_access.CapabilityName>- evidence —
List<connectors.credential_evidence.CheckKind> evidence_requirements—connectors.connection_admission.EvidenceRequirementsidentity_mechanism_ref—Optional<String>, which may be absentrefresh_policy_ref—Optional<String>, which may be absentrevocation_binding_ref—Optional<String>, which may be absentsources—List<String>
ScopeRequirements
connectors.auth_bindings.ScopeRequirements is a record of two fields:
requestable—List<String>minimum—List<String>
Entities
An entity is what this context is about: something with an identity that outlives any one request, a shape, and a lifecycle. The lifecycle is exhaustive — a move that is not drawn below is a move this specification does not permit, and that is the only way it says so. Every move is labelled with the command that takes it, because a move nothing can trigger is refused rather than drawn.
Acquisition
connectors.auth_bindings.Acquisition.
An instance is identified by acquisition_ref, a String. The name is part of the model and not a convention: a view projects the identity under that name, so a projection inventing its own would disagree with the view.
It holds:
instance_id—Stringprofile_record_ref—Stringowner_scope—Stringadmitted_origin_ref—Stringregistration_binding_ref—Optional<String>, which may be absentprotected_correlation_ref—Stringexpires_at—Timestampexpected_publication_fence—Stringtarget_connection_ref—Stringrepair_connection_ref—Optional<String>, which may be absentresult_connection_ref—Optional<String>, which may be absentterminal_reason—Optional<connectors.auth_bindings.AcquisitionFailure>, which may be absentowner_token—Uuidcreated_at—Timestampconsumed_at—Optional<Timestamp>, which may be absentgeneration_id—connectors.credentials.CredentialGenerationIdcaptured_snapshot_ref—Stringcandidate_custody_version_ref—Optional<String>, which may be absent
It references at most one connectors.declarations.ServiceConfiguration, as instance, carried by Acquisition.instance_id. It references at most one AuthProfile, as auth_profile, carried by Acquisition.profile_record_ref. It references at most one Connection, as target_connection, carried by Acquisition.target_connection_ref. It references at most one Connection, as repair_target, carried by Acquisition.repair_connection_ref. It references at most one Connection, as result_connection, carried by Acquisition.result_connection_ref.
No invariant is declared, so nothing here constrains an instance at rest.
Its state is a connectors.auth_bindings.Acquisition.State, one of Completed, Completing, Expired, Failed and Pending. That enum is synthesised from the lifecycle rather than declared beside it, so the states a view's filter compares and the states drawn below cannot disagree.
An instance is created in Pending. Completed, Expired and Failed are terminal, so an instance may rest there forever. That is declared rather than inferred from having no way out: an entity that cannot leave a state is either finished or stuck, and only its author knows which.
Each move is taken by a declared command outcome, and a move nothing takes is refused as missing_causation rather than left as a state change nobody can trigger:
consume— taken byconnectors.auth_bindings.ConsumeAcquisitionon itsconsumedoutcomerecord_candidate— taken byconnectors.auth_bindings.RecordAcquisitionCandidateon itscandidate-recordedoutcomecomplete— taken byconnectors.auth_bindings.CompleteAcquisitionon itscompletedoutcomefail— taken byconnectors.auth_bindings.FailAcquisitionon itsfailedoutcomeexpire— taken byconnectors.auth_bindings.ExpireAcquisitionon itsexpiredoutcome
An instance is brought into existence by connectors.auth_bindings.BeginAcquisition on its pending outcome.
Illegal transitions are illegal by absence: no rule forbids them, there is simply no arrow, because a rule would be a second place for the same truth to live. A diagram cannot show an absence, so the pairs it does not connect are listed here, derived from the same transitions — anything named below is a move this specification does not permit.
Completedmay not becomeCompletingCompletedmay not becomeExpiredCompletedmay not becomeFailedCompletedmay not becomePendingCompletingmay not becomePendingExpiredmay not becomeCompletedExpiredmay not becomeCompletingExpiredmay not becomeFailedExpiredmay not becomePendingFailedmay not becomeCompletedFailedmay not becomeCompletingFailedmay not becomeExpiredFailedmay not becomePendingPendingmay not becomeCompleted
Two views project it: AcquisitionStates and Acquisitions.
AuthProfile
connectors.auth_bindings.AuthProfile.
An instance is identified by profile_record_ref, a String. The name is part of the model and not a convention: a view projects the identity under that name, so a projection inventing its own would disagree with the view.
It holds:
adapter_id—Stringprofile_id—Stringdeclaration_revision—Stringdeclaration—Optional<connectors.auth_bindings.ProfileDeclaration>, which may be absentlocal_static_profile—Optional<connectors.auth_bindings.LocalStaticProfile>, which may be absent
It references at most one connectors.declarations.AdapterSpecification, as adapter, carried by AuthProfile.adapter_id.
No invariant is declared, so nothing here constrains an instance at rest.
Its state is a connectors.auth_bindings.AuthProfile.State, one of Declared. That enum is synthesised from the lifecycle rather than declared beside it, so the states a view's filter compares and the states drawn below cannot disagree.
An instance is created in Declared. Declared is terminal, so an instance may rest there forever. That is declared rather than inferred from having no way out: an entity that cannot leave a state is either finished or stuck, and only its author knows which.
It declares no moves, so nothing changes its state once it exists.
It has one state, so there is no move to permit or to forbid.
One view projects it: AuthProfiles.
Connection
connectors.auth_bindings.Connection.
An instance is identified by connection_ref, a String. The name is part of the model and not a convention: a view projects the identity under that name, so a projection inventing its own would disagree with the view.
It holds:
instance_id—Stringprofile_record_ref—Stringprofile_ref—Stringowner_scope—Stringactor—Stringprovider_authority—Stringaccess_mode—connectors.auth_access.AccessModesemantic_revision—Stringpublication_fence—Stringenabled—Booleanpublished—Booleanexternal_identity—Optional<connectors.credentials.ExternalIdentity>, which may be absentparent_connection_ref—Optional<String>, which may be absentmediated_route—Optional<connectors.discovery.MediatedRouteBinding>, which may be absentactive_generation_id—Optional<connectors.credentials.CredentialGenerationId>, which may be absentbaseline_evidence—Optional<connectors.credential_evidence.EvidenceSnapshot>, which may be absentactive_custody_version_ref—Optional<String>, which may be absentsuperseded_custody_version_refs—List<String>created_at—Timestamprevoked_at—Optional<Timestamp>, which may be absentconfiguration_revision—Optional<String>, which may be absentrefused_configuration_revision—Optional<String>, which may be absentbegun_at_instance_revision—Optional<String>, which may be absentcredential_revision—Optional<String>, which may be absentexecutable_digest—Optional<String>, which may be absent
It references at most one connectors.declarations.ServiceConfiguration, as instance, carried by Connection.instance_id. It references at most one AuthProfile, as auth_profile, carried by Connection.profile_record_ref. It references at most one Connection, as parent, carried by Connection.parent_connection_ref. It references at most one connectors.credentials.CredentialGeneration, as active_generation, carried by Connection.active_generation_id. It references at most one CustodyVersion, as active_custody_version, carried by Connection.active_custody_version_ref. It references any number of CustodyVersion, as superseded_custody_versions, carried by Connection.superseded_custody_version_refs.
Every instance satisfies (defined(active_generation_id) or not (defined(active_custody_version_ref))) and (access_mode == credential or not ((defined(active_generation_id) or defined(active_custody_version_ref)))) — a predicate over this entity's own fields, checked against them rather than stored as a sentence, so an invariant reading something the entity does not have is refused instead of documented.
Its state is a connectors.auth_bindings.Connection.State, one of Live, Revoked and Stale. That enum is synthesised from the lifecycle rather than declared beside it, so the states a view's filter compares and the states drawn below cannot disagree.
An instance is created in Live. Revoked is terminal, so an instance may rest there forever. That is declared rather than inferred from having no way out: an entity that cannot leave a state is either finished or stuck, and only its author knows which.
Each move is taken by a declared command outcome, and a move nothing takes is refused as missing_causation rather than left as a state change nobody can trigger:
publish— taken byconnectors.auth_bindings.PublishBindingon itspublishedoutcomemark_stale— taken byconnectors.auth_bindings.MarkConnectionStaleon itsmarked-staleoutcomerecord_candidate— taken byconnectors.auth_bindings.RecordConnectionCandidateon itscandidate-recordedoutcomerevoke— taken byconnectors.auth_bindings.RevokeConnectionon itsrevokedoutcome
An instance is brought into existence by connectors.auth_bindings.AllocateConnection on its allocated outcome.
Illegal transitions are illegal by absence: no rule forbids them, there is simply no arrow, because a rule would be a second place for the same truth to live. A diagram cannot show an absence, so the pairs it does not connect are listed here, derived from the same transitions — anything named below is a move this specification does not permit.
Revokedmay not becomeLiveRevokedmay not becomeStale
Two views project it: ConnectionStates and Connections.
CustodyVersion
connectors.auth_bindings.CustodyVersion.
An instance is identified by version_ref, a String. The name is part of the model and not a convention: a view projects the identity under that name, so a projection inventing its own would disagree with the view.
It holds:
instance_id—Stringscope_ref—Stringstore_version—Stringcredential_set—Optional<connectors.auth_bindings.CredentialSet>, which may be absentretirement_fence—Optional<String>, which may be absentretire_not_before—Optional<Timestamp>, which may be absentconnection_ref—Stringacquisition_ref—Stringgeneration_id—connectors.credentials.CredentialGenerationIdacknowledged_at—Optional<Timestamp>, which may be absentinvalid_reason—Optional<String>, which may be absentbyte_size—Optional<Integer>, which may be absentretired_at—Optional<Timestamp>, which may be absent
It references at most one connectors.declarations.ServiceConfiguration, as instance, carried by CustodyVersion.instance_id.
Every instance satisfies (not (defined(byte_size)) or (byte_size >= 1 and byte_size <= 65536)) — a predicate over this entity's own fields, checked against them rather than stored as a sentence, so an invariant reading something the entity does not have is refused instead of documented.
Its state is a connectors.auth_bindings.CustodyVersion.State, one of Candidate, Deleted, Invalid, Retiring and Stored. That enum is synthesised from the lifecycle rather than declared beside it, so the states a view's filter compares and the states drawn below cannot disagree.
An instance is created in Candidate. Deleted is terminal, so an instance may rest there forever. That is declared rather than inferred from having no way out: an entity that cannot leave a state is either finished or stuck, and only its author knows which.
Each move is taken by a declared command outcome, and a move nothing takes is refused as missing_causation rather than left as a state change nobody can trigger:
acknowledge— taken byconnectors.auth_bindings.AcknowledgeCustodyWriteon itsstoredoutcomeinvalidate— taken byconnectors.auth_bindings.InvalidateCustodyVersionon itsinvalidatedoutcomeretire— taken byconnectors.auth_bindings.RetireCustodyVersionon itsretiringoutcomedelete— taken byconnectors.auth_bindings.AcknowledgeCustodyDeletionon itsdeletedoutcome
An instance is brought into existence by connectors.auth_bindings.RecordCustodyVersion on its candidate outcome.
Illegal transitions are illegal by absence: no rule forbids them, there is simply no arrow, because a rule would be a second place for the same truth to live. A diagram cannot show an absence, so the pairs it does not connect are listed here, derived from the same transitions — anything named below is a move this specification does not permit.
Candidatemay not becomeDeletedDeletedmay not becomeCandidateDeletedmay not becomeInvalidDeletedmay not becomeRetiringDeletedmay not becomeStoredInvalidmay not becomeCandidateInvalidmay not becomeDeletedInvalidmay not becomeStoredRetiringmay not becomeCandidateRetiringmay not becomeInvalidRetiringmay not becomeStoredStoredmay not becomeCandidateStoredmay not becomeDeleted
Two views project it: CustodyVersionStates and CustodyVersions.
Views
A view is what the outside world is promised it can observe. Each one says which instances it contains and how soon it reflects a command that has already returned, because "you can read this" without "how soon" is the promise every flaky suite is built on.
AcquisitionStates
connectors.auth_bindings.AcquisitionStates.
It reads Acquisition.
It contains every instance of that entity: no filter narrows it, which is a decision somebody made and not a line somebody omitted.
It exposes:
acquisition_ref—Stringstate—connectors.auth_bindings.Acquisition.State
It declares no order, so the rows come back in whatever order the implementation has, and two reads may disagree.
Read-your-writes: it is current the moment the command that changed it returns. A caller that has just created an invoice and cannot see it in here has been told a lie about what it did.
A generated scenario asserts it once, immediately after the command: a view promising this and not keeping the promise has to fail the suite rather than be retried until it passes.
Acquisitions
connectors.auth_bindings.Acquisitions.
It reads Acquisition.
It contains every instance of that entity: no filter narrows it, which is a decision somebody made and not a line somebody omitted.
It exposes:
acquisition_ref—Stringinstance_id—Stringprofile_record_ref—Stringtarget_connection_ref—Stringrepair_connection_ref—Optional<String>, which may be absentresult_connection_ref—Optional<String>, which may be absentterminal_reason—Optional<connectors.auth_bindings.AcquisitionFailure>, which may be absentexpires_at—Timestampstate—connectors.auth_bindings.Acquisition.State
It declares no order, so the rows come back in whatever order the implementation has, and two reads may disagree.
Read-your-writes: it is current the moment the command that changed it returns. A caller that has just created an invoice and cannot see it in here has been told a lie about what it did.
A generated scenario asserts it once, immediately after the command: a view promising this and not keeping the promise has to fail the suite rather than be retried until it passes.
AuthProfiles
connectors.auth_bindings.AuthProfiles.
It reads AuthProfile.
It contains every instance of that entity: no filter narrows it, which is a decision somebody made and not a line somebody omitted.
It exposes:
profile_record_ref—Stringadapter_id—Stringprofile_id—Stringdeclaration_revision—Stringstate—connectors.auth_bindings.AuthProfile.State
It declares no order, so the rows come back in whatever order the implementation has, and two reads may disagree.
Read-your-writes: it is current the moment the command that changed it returns. A caller that has just created an invoice and cannot see it in here has been told a lie about what it did.
A generated scenario asserts it once, immediately after the command: a view promising this and not keeping the promise has to fail the suite rather than be retried until it passes.
ConnectionStates
connectors.auth_bindings.ConnectionStates.
It reads Connection.
It contains every instance of that entity: no filter narrows it, which is a decision somebody made and not a line somebody omitted.
It exposes:
connection_ref—Stringstate—connectors.auth_bindings.Connection.State
It declares no order, so the rows come back in whatever order the implementation has, and two reads may disagree.
Read-your-writes: it is current the moment the command that changed it returns. A caller that has just created an invoice and cannot see it in here has been told a lie about what it did.
A generated scenario asserts it once, immediately after the command: a view promising this and not keeping the promise has to fail the suite rather than be retried until it passes.
Connections
connectors.auth_bindings.Connections.
It reads Connection.
It contains every instance of that entity: no filter narrows it, which is a decision somebody made and not a line somebody omitted.
It exposes:
connection_ref—Stringinstance_id—Stringprofile_record_ref—Stringowner_scope—Stringaccess_mode—connectors.auth_access.AccessModepublication_fence—Stringactive_generation_id—Optional<connectors.credentials.CredentialGenerationId>, which may be absentactive_custody_version_ref—Optional<String>, which may be absentstate—connectors.auth_bindings.Connection.State
It declares no order, so the rows come back in whatever order the implementation has, and two reads may disagree.
Read-your-writes: it is current the moment the command that changed it returns. A caller that has just created an invoice and cannot see it in here has been told a lie about what it did.
A generated scenario asserts it once, immediately after the command: a view promising this and not keeping the promise has to fail the suite rather than be retried until it passes.
CustodyVersionStates
connectors.auth_bindings.CustodyVersionStates.
It reads CustodyVersion.
It contains every instance of that entity: no filter narrows it, which is a decision somebody made and not a line somebody omitted.
It exposes:
version_ref—Stringstate—connectors.auth_bindings.CustodyVersion.State
It declares no order, so the rows come back in whatever order the implementation has, and two reads may disagree.
Read-your-writes: it is current the moment the command that changed it returns. A caller that has just created an invoice and cannot see it in here has been told a lie about what it did.
A generated scenario asserts it once, immediately after the command: a view promising this and not keeping the promise has to fail the suite rather than be retried until it passes.
CustodyVersions
connectors.auth_bindings.CustodyVersions.
It reads CustodyVersion.
It contains every instance of that entity: no filter narrows it, which is a decision somebody made and not a line somebody omitted.
It exposes:
version_ref—Stringinstance_id—Stringscope_ref—Stringstore_version—Stringbyte_size—Optional<Integer>, which may be absentacknowledged_at—Optional<Timestamp>, which may be absentinvalid_reason—Optional<String>, which may be absentretirement_fence—Optional<String>, which may be absentretired_at—Optional<Timestamp>, which may be absentretire_not_before—Optional<Timestamp>, which may be absentstate—connectors.auth_bindings.CustodyVersion.State
It declares no order, so the rows come back in whatever order the implementation has, and two reads may disagree.
Read-your-writes: it is current the moment the command that changed it returns. A caller that has just created an invoice and cannot see it in here has been told a lie about what it did.
A generated scenario asserts it once, immediately after the command: a view promising this and not keeping the promise has to fail the suite rather than be retried until it passes.
Commands
AcknowledgeCustodyDeletion
connectors.auth_bindings.AcknowledgeCustodyDeletion.
It takes:
decision—connectors.auth_bindings.Decisionversion_ref—String
It has four outcomes.
deleted — Taken when decision == allow holds of the input. It moves a connectors.auth_bindings.CustodyVersion from Retiring to Deleted, along the declared move delete. The instance is the one named by the input field version_ref. It emits connectors.auth_bindings.CustodyDeleted. A test reaches it by constructing an input that satisfies that condition.
unavailable — Taken when decision == unknown holds of the input. No entity in this specification changes. It reports connectors.auth_bindings.Unavailable, carrying reason. It emits nothing. A test reaches it by constructing an input that satisfies that condition.
refused — The default branch, taken when no other outcome's condition matched. No entity in this specification changes. It reports connectors.auth_bindings.Refused, carrying reason. It emits nothing. A test reaches it by constructing an input that satisfies no other outcome's condition.
wrong-state — Taken when the subject is resting in a state none of this command's moves start from — a connectors.auth_bindings.CustodyVersion in Candidate, Deleted, Invalid and Stored, which is what is left of the lifecycle once this command's own moves are taken away. The document lists none of it. No entity in this specification changes. It reports connectors.auth_bindings.CustodyStateConflict, carrying state. It emits nothing. A test reaches it by driving an instance into one of those states and then issuing the command, because no input selects this branch.
AcknowledgeCustodyWrite
connectors.auth_bindings.AcknowledgeCustodyWrite.
It takes:
decision—connectors.auth_bindings.Decisionversion_ref—Stringacknowledged_at—Timestamp
It has four outcomes.
stored — Taken when decision == allow holds of the input. It moves a connectors.auth_bindings.CustodyVersion from Candidate to Stored, along the declared move acknowledge. The instance is the one named by the input field version_ref. It emits connectors.auth_bindings.CustodyWritten. It sets acknowledged_at from input.acknowledged_at. A test reaches it by constructing an input that satisfies that condition.
unavailable — Taken when decision == unknown holds of the input. No entity in this specification changes. It reports connectors.auth_bindings.Unavailable, carrying reason. It emits nothing. A test reaches it by constructing an input that satisfies that condition.
refused — The default branch, taken when no other outcome's condition matched. No entity in this specification changes. It reports connectors.auth_bindings.Refused, carrying reason. It emits nothing. A test reaches it by constructing an input that satisfies no other outcome's condition.
wrong-state — Taken when the subject is resting in a state none of this command's moves start from — a connectors.auth_bindings.CustodyVersion in Deleted, Invalid, Retiring and Stored, which is what is left of the lifecycle once this command's own moves are taken away. The document lists none of it. No entity in this specification changes. It reports connectors.auth_bindings.CustodyStateConflict, carrying state. It emits nothing. A test reaches it by driving an instance into one of those states and then issuing the command, because no input selects this branch.
AllocateConnection
connectors.auth_bindings.AllocateConnection.
It takes:
decision—connectors.auth_bindings.Decisioninstance_id—Stringprofile_record_ref—Stringowner_scope—Stringaccess_mode—connectors.auth_access.AccessModepublication_fence—Stringheld_connection_ref—Optional<String>, which may be absent
It has four outcomes.
instance-connected — Taken when (decision == allow and defined(held_connection_ref)) holds of the input. No entity in this specification changes. It reports connectors.auth_bindings.InstanceConnected, carrying instance_id. It emits nothing. A test reaches it by constructing an input that satisfies that condition.
allocated — Taken when (decision == allow and not (defined(held_connection_ref))) holds of the input. It creates a connectors.auth_bindings.Connection, which starts in Live. The new instance's identity is published as connection_ref on connectors.auth_bindings.ConnectionAllocated. It emits connectors.auth_bindings.ConnectionAllocated. It sets instance_id from input.instance_id, profile_record_ref from input.profile_record_ref, owner_scope from input.owner_scope, access_mode from input.access_mode and publication_fence from input.publication_fence. A test reaches it by constructing an input that satisfies that condition.
unavailable — Taken when decision == unknown holds of the input. No entity in this specification changes. It reports connectors.auth_bindings.Unavailable, carrying reason. It emits nothing. A test reaches it by constructing an input that satisfies that condition.
refused — The default branch, taken when no other outcome's condition matched. No entity in this specification changes. It reports connectors.auth_bindings.Refused, carrying reason. It emits nothing. A test reaches it by constructing an input that satisfies no other outcome's condition.
BeginAcquisition
connectors.auth_bindings.BeginAcquisition.
It takes:
decision—connectors.auth_bindings.Decisioninstance_id—Stringprofile_record_ref—Stringtarget_connection_ref—Stringrepair_connection_ref—Optional<String>, which may be absentexpires_at—Timestamp
It has three outcomes.
pending — Taken when decision == allow holds of the input. It creates a connectors.auth_bindings.Acquisition, which starts in Pending. The new instance's identity is published as acquisition_ref on connectors.auth_bindings.AcquisitionBegan. It emits connectors.auth_bindings.AcquisitionBegan. It sets instance_id from input.instance_id, profile_record_ref from input.profile_record_ref, expires_at from input.expires_at, target_connection_ref from input.target_connection_ref and repair_connection_ref from input.repair_connection_ref. A test reaches it by constructing an input that satisfies that condition.
unavailable — Taken when decision == unknown holds of the input. No entity in this specification changes. It reports connectors.auth_bindings.Unavailable, carrying reason. It emits nothing. A test reaches it by constructing an input that satisfies that condition.
refused — The default branch, taken when no other outcome's condition matched. No entity in this specification changes. It reports connectors.auth_bindings.Refused, carrying reason. It emits nothing. A test reaches it by constructing an input that satisfies no other outcome's condition.
CompleteAcquisition
connectors.auth_bindings.CompleteAcquisition.
It takes:
decision—connectors.auth_bindings.Decisionacquisition_ref—Stringresult_connection_ref—Stringpublication—connectors.auth_bindings.BindingPublication
It has five outcomes.
result-mismatch — Taken when the existing subject's stored fields satisfy target_connection_ref != input.result_connection_ref. No entity in this specification changes. It reports connectors.auth_bindings.AcquisitionResultMismatch, carrying acquisition_ref. It emits nothing. A test establishes and independently observes the subject enum fact before selecting this branch.
completed — Taken when decision == allow holds of the input. It moves a connectors.auth_bindings.Acquisition from Completing to Completed, along the declared move complete. The instance is the one named by the input field acquisition_ref. It emits connectors.auth_bindings.AcquisitionCompleted. It sets result_connection_ref from input.result_connection_ref. A test reaches it by constructing an input that satisfies that condition.
unavailable — Taken when decision == unknown holds of the input. No entity in this specification changes. It reports connectors.auth_bindings.Unavailable, carrying reason. It emits nothing. A test reaches it by constructing an input that satisfies that condition.
refused — The default branch, taken when no other outcome's condition matched. No entity in this specification changes. It reports connectors.auth_bindings.Refused, carrying reason. It emits nothing. A test reaches it by constructing an input that satisfies no other outcome's condition.
wrong-state — Taken when the subject is resting in a state none of this command's moves start from — a connectors.auth_bindings.Acquisition in Completed, Expired, Failed and Pending, which is what is left of the lifecycle once this command's own moves are taken away. The document lists none of it. No entity in this specification changes. It reports connectors.auth_bindings.AcquisitionStateConflict, carrying state. It emits nothing. A test reaches it by driving an instance into one of those states and then issuing the command, because no input selects this branch.
ConsumeAcquisition
connectors.auth_bindings.ConsumeAcquisition.
It takes:
decision—connectors.auth_bindings.Decisionacquisition_ref—String
It has four outcomes.
consumed — Taken when decision == allow holds of the input. It moves a connectors.auth_bindings.Acquisition from Pending to Completing, along the declared move consume. The instance is the one named by the input field acquisition_ref. It emits connectors.auth_bindings.AcquisitionConsumed. A test reaches it by constructing an input that satisfies that condition.
unavailable — Taken when decision == unknown holds of the input. No entity in this specification changes. It reports connectors.auth_bindings.Unavailable, carrying reason. It emits nothing. A test reaches it by constructing an input that satisfies that condition.
refused — The default branch, taken when no other outcome's condition matched. No entity in this specification changes. It reports connectors.auth_bindings.Refused, carrying reason. It emits nothing. A test reaches it by constructing an input that satisfies no other outcome's condition.
wrong-state — Taken when the subject is resting in a state none of this command's moves start from — a connectors.auth_bindings.Acquisition in Completed, Completing, Expired and Failed, which is what is left of the lifecycle once this command's own moves are taken away. The document lists none of it. No entity in this specification changes. It reports connectors.auth_bindings.AcquisitionStateConflict, carrying state. It emits nothing. A test reaches it by driving an instance into one of those states and then issuing the command, because no input selects this branch.
ExpireAcquisition
connectors.auth_bindings.ExpireAcquisition.
It takes:
decision—connectors.auth_bindings.Decisionacquisition_ref—String
It has four outcomes.
expired — Taken when decision == allow holds of the input. It moves a connectors.auth_bindings.Acquisition from Completing and Pending to Expired, along the declared move expire. The instance is the one named by the input field acquisition_ref. It emits connectors.auth_bindings.AcquisitionExpired. It sets terminal_reason from "expired". A test reaches it by constructing an input that satisfies that condition.
unavailable — Taken when decision == unknown holds of the input. No entity in this specification changes. It reports connectors.auth_bindings.Unavailable, carrying reason. It emits nothing. A test reaches it by constructing an input that satisfies that condition.
refused — The default branch, taken when no other outcome's condition matched. No entity in this specification changes. It reports connectors.auth_bindings.Refused, carrying reason. It emits nothing. A test reaches it by constructing an input that satisfies no other outcome's condition.
wrong-state — Taken when the subject is resting in a state none of this command's moves start from — a connectors.auth_bindings.Acquisition in Completed, Expired and Failed, which is what is left of the lifecycle once this command's own moves are taken away. The document lists none of it. No entity in this specification changes. It reports connectors.auth_bindings.AcquisitionStateConflict, carrying state. It emits nothing. A test reaches it by driving an instance into one of those states and then issuing the command, because no input selects this branch.
FailAcquisition
connectors.auth_bindings.FailAcquisition.
It takes:
decision—connectors.auth_bindings.Decisionacquisition_ref—Stringreason—connectors.auth_bindings.AcquisitionFailure
It has four outcomes.
failed — Taken when decision == allow holds of the input. It moves a connectors.auth_bindings.Acquisition from Completing and Pending to Failed, along the declared move fail. The instance is the one named by the input field acquisition_ref. It emits connectors.auth_bindings.AcquisitionFailed. It sets terminal_reason from input.reason. A test reaches it by constructing an input that satisfies that condition.
unavailable — Taken when decision == unknown holds of the input. No entity in this specification changes. It reports connectors.auth_bindings.Unavailable, carrying reason. It emits nothing. A test reaches it by constructing an input that satisfies that condition.
refused — The default branch, taken when no other outcome's condition matched. No entity in this specification changes. It reports connectors.auth_bindings.Refused, carrying reason. It emits nothing. A test reaches it by constructing an input that satisfies no other outcome's condition.
wrong-state — Taken when the subject is resting in a state none of this command's moves start from — a connectors.auth_bindings.Acquisition in Completed, Expired and Failed, which is what is left of the lifecycle once this command's own moves are taken away. The document lists none of it. No entity in this specification changes. It reports connectors.auth_bindings.AcquisitionStateConflict, carrying state. It emits nothing. A test reaches it by driving an instance into one of those states and then issuing the command, because no input selects this branch.
InvalidateCustodyVersion
connectors.auth_bindings.InvalidateCustodyVersion.
It takes:
version_ref—Stringreason—String
It has two outcomes.
invalidated — The default branch, taken when no other outcome's condition matched. It moves a connectors.auth_bindings.CustodyVersion from Candidate and Stored to Invalid, along the declared move invalidate. The instance is the one named by the input field version_ref. It emits connectors.auth_bindings.CustodyInvalidated. It sets invalid_reason from input.reason. A test reaches it by constructing an input that satisfies no other outcome's condition.
wrong-state — Taken when the subject is resting in a state none of this command's moves start from — a connectors.auth_bindings.CustodyVersion in Deleted, Invalid and Retiring, which is what is left of the lifecycle once this command's own moves are taken away. The document lists none of it. No entity in this specification changes. It reports connectors.auth_bindings.CustodyStateConflict, carrying state. It emits nothing. A test reaches it by driving an instance into one of those states and then issuing the command, because no input selects this branch.
MarkConnectionStale
connectors.auth_bindings.MarkConnectionStale.
It takes:
connection_ref—String
It has two outcomes.
marked-stale — The default branch, taken when no other outcome's condition matched. It moves a connectors.auth_bindings.Connection from Live to Stale, along the declared move mark_stale. The instance is the one named by the input field connection_ref. It emits connectors.auth_bindings.ConnectionMarkedStale. A test reaches it by constructing an input that satisfies no other outcome's condition.
wrong-state — Taken when the subject is resting in a state none of this command's moves start from — a connectors.auth_bindings.Connection in Revoked and Stale, which is what is left of the lifecycle once this command's own moves are taken away. The document lists none of it. No entity in this specification changes. It reports connectors.auth_bindings.ConnectionStateConflict, carrying state. It emits nothing. A test reaches it by driving an instance into one of those states and then issuing the command, because no input selects this branch.
PublishBinding
connectors.auth_bindings.PublishBinding.
It takes:
decision—connectors.auth_bindings.Decisionconnection_ref—Stringpublication—connectors.auth_bindings.BindingPublication
It has five outcomes.
stale-fence — Taken when the existing subject's stored fields satisfy publication_fence != input.publication.expected_publication_fence. No entity in this specification changes. It reports connectors.auth_bindings.PublicationFenceConflict, carrying connection_ref. It emits nothing. A test establishes and independently observes the subject enum fact before selecting this branch.
published — Taken when decision == allow holds of the input. It moves a connectors.auth_bindings.Connection from Live and Stale to Live, along the declared move publish. The instance is the one named by the input field connection_ref. It emits connectors.auth_bindings.BindingPublished. It sets publication_fence from implementation-generated. A test reaches it by constructing an input that satisfies that condition.
unavailable — Taken when decision == unknown holds of the input. No entity in this specification changes. It reports connectors.auth_bindings.Unavailable, carrying reason. It emits nothing. A test reaches it by constructing an input that satisfies that condition.
refused — The default branch, taken when no other outcome's condition matched. No entity in this specification changes. It reports connectors.auth_bindings.Refused, carrying reason. It emits nothing. A test reaches it by constructing an input that satisfies no other outcome's condition.
wrong-state — Taken when the subject is resting in a state none of this command's moves start from — a connectors.auth_bindings.Connection in Revoked, which is what is left of the lifecycle once this command's own moves are taken away. The document lists none of it. No entity in this specification changes. It reports connectors.auth_bindings.ConnectionStateConflict, carrying state. It emits nothing. A test reaches it by driving an instance into one of those states and then issuing the command, because no input selects this branch.
RecordAcquisitionCandidate
connectors.auth_bindings.RecordAcquisitionCandidate.
It takes:
acquisition_ref—Stringcandidate_custody_version_ref—String
It has two outcomes.
candidate-recorded — The default branch, taken when no other outcome's condition matched. It moves a connectors.auth_bindings.Acquisition from Completing to Completing, along the declared move record_candidate. The instance is the one named by the input field acquisition_ref. It emits connectors.auth_bindings.AcquisitionCandidateRecorded. A test reaches it by constructing an input that satisfies no other outcome's condition.
wrong-state — Taken when the subject is resting in a state none of this command's moves start from — a connectors.auth_bindings.Acquisition in Completed, Expired, Failed and Pending, which is what is left of the lifecycle once this command's own moves are taken away. The document lists none of it. No entity in this specification changes. It reports connectors.auth_bindings.AcquisitionStateConflict, carrying state. It emits nothing. A test reaches it by driving an instance into one of those states and then issuing the command, because no input selects this branch.
RecordConnectionCandidate
connectors.auth_bindings.RecordConnectionCandidate.
It takes:
connection_ref—Stringcandidate_custody_version_ref—String
It has two outcomes.
candidate-recorded — The default branch, taken when no other outcome's condition matched. It moves a connectors.auth_bindings.Connection from Stale to Stale, along the declared move record_candidate. The instance is the one named by the input field connection_ref. It emits connectors.auth_bindings.ConnectionCandidateRecorded. A test reaches it by constructing an input that satisfies no other outcome's condition.
wrong-state — Taken when the subject is resting in a state none of this command's moves start from — a connectors.auth_bindings.Connection in Live and Revoked, which is what is left of the lifecycle once this command's own moves are taken away. The document lists none of it. No entity in this specification changes. It reports connectors.auth_bindings.ConnectionStateConflict, carrying state. It emits nothing. A test reaches it by driving an instance into one of those states and then issuing the command, because no input selects this branch.
RecordCustodyVersion
connectors.auth_bindings.RecordCustodyVersion.
It takes:
decision—connectors.auth_bindings.Decisioninstance_id—Stringscope_ref—Stringstore_version—Stringcredential_set—connectors.auth_bindings.CredentialSet
It has three outcomes.
candidate — Taken when decision == allow holds of the input. It creates a connectors.auth_bindings.CustodyVersion, which starts in Candidate. The new instance's identity is published as version_ref on connectors.auth_bindings.CustodyCandidateRecorded. It emits connectors.auth_bindings.CustodyCandidateRecorded. It sets instance_id from input.instance_id, scope_ref from input.scope_ref, store_version from input.store_version and credential_set from input.credential_set. A test reaches it by constructing an input that satisfies that condition.
unavailable — Taken when decision == unknown holds of the input. No entity in this specification changes. It reports connectors.auth_bindings.Unavailable, carrying reason. It emits nothing. A test reaches it by constructing an input that satisfies that condition.
refused — The default branch, taken when no other outcome's condition matched. No entity in this specification changes. It reports connectors.auth_bindings.Refused, carrying reason. It emits nothing. A test reaches it by constructing an input that satisfies no other outcome's condition.
RecordProfile
connectors.auth_bindings.RecordProfile.
It takes:
adapter_id—Stringprofile_id—Stringdeclaration_revision—Stringdeclaration—Optional<connectors.auth_bindings.ProfileDeclaration>, which may be absentlocal_static_profile—Optional<connectors.auth_bindings.LocalStaticProfile>, which may be absent
It has one outcome.
recorded — The default branch, taken when no other outcome's condition matched. It creates a connectors.auth_bindings.AuthProfile, which starts in Declared. The new instance's identity is published as profile_record_ref on connectors.auth_bindings.ProfileRecorded. It emits connectors.auth_bindings.ProfileRecorded. It sets adapter_id from input.adapter_id, profile_id from input.profile_id, declaration_revision from input.declaration_revision, declaration from input.declaration and local_static_profile from input.local_static_profile. A test reaches it by constructing an input that satisfies no other outcome's condition.
RetireCustodyVersion
connectors.auth_bindings.RetireCustodyVersion.
It takes:
version_ref—Stringretirement_fence—Stringretired_at—Timestampretire_not_before—Timestamp
It has two outcomes.
retiring — The default branch, taken when no other outcome's condition matched. It moves a connectors.auth_bindings.CustodyVersion from Candidate, Invalid and Stored to Retiring, along the declared move retire. The instance is the one named by the input field version_ref. It emits connectors.auth_bindings.CustodyRetiring. It sets retirement_fence from input.retirement_fence, retire_not_before from input.retire_not_before and retired_at from input.retired_at. A test reaches it by constructing an input that satisfies no other outcome's condition.
wrong-state — Taken when the subject is resting in a state none of this command's moves start from — a connectors.auth_bindings.CustodyVersion in Deleted and Retiring, which is what is left of the lifecycle once this command's own moves are taken away. The document lists none of it. No entity in this specification changes. It reports connectors.auth_bindings.CustodyStateConflict, carrying state. It emits nothing. A test reaches it by driving an instance into one of those states and then issuing the command, because no input selects this branch.
RevokeConnection
connectors.auth_bindings.RevokeConnection.
It takes:
decision—connectors.auth_bindings.Decisionconnection_ref—String
It has four outcomes.
revoked — Taken when decision == allow holds of the input. It moves a connectors.auth_bindings.Connection from Live and Stale to Revoked, along the declared move revoke. The instance is the one named by the input field connection_ref. It emits connectors.auth_bindings.ConnectionRevoked. A test reaches it by constructing an input that satisfies that condition.
unavailable — Taken when decision == unknown holds of the input. No entity in this specification changes. It reports connectors.auth_bindings.Unavailable, carrying reason. It emits nothing. A test reaches it by constructing an input that satisfies that condition.
refused — The default branch, taken when no other outcome's condition matched. No entity in this specification changes. It reports connectors.auth_bindings.Refused, carrying reason. It emits nothing. A test reaches it by constructing an input that satisfies no other outcome's condition.
wrong-state — Taken when the subject is resting in a state none of this command's moves start from — a connectors.auth_bindings.Connection in Revoked, which is what is left of the lifecycle once this command's own moves are taken away. The document lists none of it. No entity in this specification changes. It reports connectors.auth_bindings.ConnectionStateConflict, carrying state. It emits nothing. A test reaches it by driving an instance into one of those states and then issuing the command, because no input selects this branch.
Events
AcquisitionBegan
connectors.auth_bindings.AcquisitionBegan.
It carries:
acquisition_ref—String
Emitted by connectors.auth_bindings.BeginAcquisition on its pending outcome.
Nothing in this system reacts to it.
AcquisitionCandidateRecorded
connectors.auth_bindings.AcquisitionCandidateRecorded.
It carries:
acquisition_ref—Stringcandidate_custody_version_ref—String
Emitted by connectors.auth_bindings.RecordAcquisitionCandidate on its candidate-recorded outcome.
Nothing in this system reacts to it.
AcquisitionCompleted
connectors.auth_bindings.AcquisitionCompleted.
It carries:
acquisition_ref—Stringresult_connection_ref—String
Emitted by connectors.auth_bindings.CompleteAcquisition on its completed outcome.
Nothing in this system reacts to it.
AcquisitionConsumed
connectors.auth_bindings.AcquisitionConsumed.
It carries:
acquisition_ref—String
Emitted by connectors.auth_bindings.ConsumeAcquisition on its consumed outcome.
Nothing in this system reacts to it.
AcquisitionExpired
connectors.auth_bindings.AcquisitionExpired.
It carries:
acquisition_ref—String
Emitted by connectors.auth_bindings.ExpireAcquisition on its expired outcome.
Nothing in this system reacts to it.
AcquisitionFailed
connectors.auth_bindings.AcquisitionFailed.
It carries:
acquisition_ref—Stringreason—connectors.auth_bindings.AcquisitionFailure
Emitted by connectors.auth_bindings.FailAcquisition on its failed outcome.
Nothing in this system reacts to it.
BindingPublished
connectors.auth_bindings.BindingPublished.
It carries:
connection_ref—String
Emitted by connectors.auth_bindings.PublishBinding on its published outcome.
Nothing in this system reacts to it.
ConnectionAllocated
connectors.auth_bindings.ConnectionAllocated.
It carries:
connection_ref—String
Emitted by connectors.auth_bindings.AllocateConnection on its allocated outcome.
Nothing in this system reacts to it.
ConnectionCandidateRecorded
connectors.auth_bindings.ConnectionCandidateRecorded.
It carries:
connection_ref—Stringcandidate_custody_version_ref—String
Emitted by connectors.auth_bindings.RecordConnectionCandidate on its candidate-recorded outcome.
Nothing in this system reacts to it.
ConnectionMarkedStale
connectors.auth_bindings.ConnectionMarkedStale.
It carries:
connection_ref—String
Emitted by connectors.auth_bindings.MarkConnectionStale on its marked-stale outcome.
Nothing in this system reacts to it.
ConnectionRevoked
connectors.auth_bindings.ConnectionRevoked.
It carries:
connection_ref—String
Emitted by connectors.auth_bindings.RevokeConnection on its revoked outcome.
Nothing in this system reacts to it.
CustodyCandidateRecorded
connectors.auth_bindings.CustodyCandidateRecorded.
It carries:
version_ref—String
Emitted by connectors.auth_bindings.RecordCustodyVersion on its candidate outcome.
Nothing in this system reacts to it.
CustodyDeleted
connectors.auth_bindings.CustodyDeleted.
It carries:
version_ref—String
Emitted by connectors.auth_bindings.AcknowledgeCustodyDeletion on its deleted outcome.
Nothing in this system reacts to it.
CustodyInvalidated
connectors.auth_bindings.CustodyInvalidated.
It carries:
version_ref—Stringreason—String
Emitted by connectors.auth_bindings.InvalidateCustodyVersion on its invalidated outcome.
Nothing in this system reacts to it.
CustodyRetiring
connectors.auth_bindings.CustodyRetiring.
It carries:
version_ref—String
Emitted by connectors.auth_bindings.RetireCustodyVersion on its retiring outcome.
Nothing in this system reacts to it.
CustodyWritten
connectors.auth_bindings.CustodyWritten.
It carries:
version_ref—String
Emitted by connectors.auth_bindings.AcknowledgeCustodyWrite on its stored outcome.
Nothing in this system reacts to it.
ProfileRecorded
connectors.auth_bindings.ProfileRecorded.
It carries:
profile_record_ref—String
Emitted by connectors.auth_bindings.RecordProfile on its recorded outcome.
Nothing in this system reacts to it.
Errors
AcquisitionResultMismatch
It carries:
acquisition_ref—String
Reported by connectors.auth_bindings.CompleteAcquisition on its result-mismatch outcome.
AcquisitionStateConflict
It carries:
state—connectors.auth_bindings.Acquisition.State
Reported by connectors.auth_bindings.CompleteAcquisition on its wrong-state outcome.
Reported by connectors.auth_bindings.ConsumeAcquisition on its wrong-state outcome.
Reported by connectors.auth_bindings.ExpireAcquisition on its wrong-state outcome.
Reported by connectors.auth_bindings.FailAcquisition on its wrong-state outcome.
Reported by connectors.auth_bindings.RecordAcquisitionCandidate on its wrong-state outcome.
ConnectionStateConflict
It carries:
state—connectors.auth_bindings.Connection.State
Reported by connectors.auth_bindings.MarkConnectionStale on its wrong-state outcome.
Reported by connectors.auth_bindings.PublishBinding on its wrong-state outcome.
Reported by connectors.auth_bindings.RecordConnectionCandidate on its wrong-state outcome.
Reported by connectors.auth_bindings.RevokeConnection on its wrong-state outcome.
CustodyStateConflict
It carries:
state—connectors.auth_bindings.CustodyVersion.State
Reported by connectors.auth_bindings.AcknowledgeCustodyDeletion on its wrong-state outcome.
Reported by connectors.auth_bindings.AcknowledgeCustodyWrite on its wrong-state outcome.
Reported by connectors.auth_bindings.InvalidateCustodyVersion on its wrong-state outcome.
Reported by connectors.auth_bindings.RetireCustodyVersion on its wrong-state outcome.
InstanceConnected
It carries:
instance_id—String
Reported by connectors.auth_bindings.AllocateConnection on its instance-connected outcome.
PublicationFenceConflict
It carries:
connection_ref—String
Reported by connectors.auth_bindings.PublishBinding on its stale-fence outcome.
Refused
It carries:
reason—String
Reported by connectors.auth_bindings.AcknowledgeCustodyDeletion on its refused outcome.
Reported by connectors.auth_bindings.AcknowledgeCustodyWrite on its refused outcome.
Reported by connectors.auth_bindings.AllocateConnection on its refused outcome.
Reported by connectors.auth_bindings.BeginAcquisition on its refused outcome.
Reported by connectors.auth_bindings.CompleteAcquisition on its refused outcome.
Reported by connectors.auth_bindings.ConsumeAcquisition on its refused outcome.
Reported by connectors.auth_bindings.ExpireAcquisition on its refused outcome.
Reported by connectors.auth_bindings.FailAcquisition on its refused outcome.
Reported by connectors.auth_bindings.PublishBinding on its refused outcome.
Reported by connectors.auth_bindings.RecordCustodyVersion on its refused outcome.
Reported by connectors.auth_bindings.RevokeConnection on its refused outcome.
Unavailable
It carries:
reason—String
Reported by connectors.auth_bindings.AcknowledgeCustodyDeletion on its unavailable outcome.
Reported by connectors.auth_bindings.AcknowledgeCustodyWrite on its unavailable outcome.
Reported by connectors.auth_bindings.AllocateConnection on its unavailable outcome.
Reported by connectors.auth_bindings.BeginAcquisition on its unavailable outcome.
Reported by connectors.auth_bindings.CompleteAcquisition on its unavailable outcome.
Reported by connectors.auth_bindings.ConsumeAcquisition on its unavailable outcome.
Reported by connectors.auth_bindings.ExpireAcquisition on its unavailable outcome.
Reported by connectors.auth_bindings.FailAcquisition on its unavailable outcome.
Reported by connectors.auth_bindings.PublishBinding on its unavailable outcome.
Reported by connectors.auth_bindings.RecordCustodyVersion on its unavailable outcome.
Reported by connectors.auth_bindings.RevokeConnection on its unavailable outcome.
Actors
An actor is who may ask this context for something. Every grant below points at a command this specification declares — a grant is a resolved reference, so "may invoke" something nobody wrote is not a permission this model can express, and an authorisation that authorises nothing cannot ship quietly.
LocalHost
connectors.auth_bindings.LocalHost.
It may invoke AcknowledgeCustodyDeletion, AcknowledgeCustodyWrite, AllocateConnection, BeginAcquisition, CompleteAcquisition, ConsumeAcquisition, ExpireAcquisition, FailAcquisition, InvalidateCustodyVersion, MarkConnectionStale, PublishBinding, RecordAcquisitionCandidate, RecordConnectionCandidate, RecordCustodyVersion, RecordProfile, RetireCustodyVersion and RevokeConnection.
Generated from connectors v1 · model digest e1e1672d0af4753cb8f2da6c0b22a7f6ae8ce9f7abc168f86169babdf1325787 · contract digest slice-sha256/2:2523c87c32b3b6d5009f9bfb878bbb033d2a4cf843ba3b7dde0d9d79c74b2b01. Do not edit this file; change the specification and regenerate it with ess generate.