Documentation
¶
Overview ¶
Package postgres supplies organization persistence through identity's one coordinator. Repositories never own a coordinator, transaction or registry.
Index ¶
- func OrganizationAuthorityScope(tenant identity.TenantID, org organization.ID, user identity.UserID) (authority.AuthorityScope, error)
- type Config
- type Contributor
- func (p *Contributor) ApplyFeature(ctx context.Context, w kernel.Work, command identity.Command) (identity.FeatureReceipt, error)
- func (p *Contributor) CheckFeatureCommit(ctx context.Context, w kernel.Work, command identity.Command) error
- func (*Contributor) Descriptor() kernel.ContributorDescriptor
- func (p *Contributor) FeatureOperations() []identity.FeatureOperation
- func (p *Contributor) MapCommand(c organization.Command) (identity.Command, error)
- func (p *Contributor) PrepareRequestKey(ctx context.Context, b kernel.RequestKeyPreparationBinding, ...) ([]byte, error)
- func (p *Contributor) RecoverParticipant(ctx context.Context, w kernel.RecoveryWork) (kernel.RecoveryStatus, error)
- func (p *Contributor) RestoreRequestKey(ctx context.Context, b kernel.RequestKeyPreparationBinding, wire []byte) (identity.CommandBinding, error)
- func (p *Contributor) ValidateFeatureCommand(command identity.Command, plan kernel.CommandPlan) error
- type ContributorConfig
- type DomainClaimMigrationSource
- type DomainEvidenceMigrationSource
- type DomainEvidenceService
- func (s *DomainEvidenceService) ApplyDomainEvidence(ctx context.Context, c organization.DomainEvidenceCommand) (organization.DomainEvidenceResult, error)
- func (*DomainEvidenceService) Format(s fmt.State, _ rune)
- func (s *DomainEvidenceService) GetDomainProof(ctx context.Context, key organization.DomainProofKey) (organization.DomainProof, error)
- func (*DomainEvidenceService) MarshalJSON() ([]byte, error)
- func (*DomainEvidenceService) MarshalText() ([]byte, error)
- func (s *DomainEvidenceService) Prepare(ctx context.Context, r organization.DomainEvidenceRequest) (organization.DomainEvidenceCommand, error)
- func (s *DomainEvidenceService) PrepareRevocation(ctx context.Context, r organization.DomainEvidenceRequest, ...) (organization.DomainEvidenceCommand, error)
- func (s *DomainEvidenceService) RecoverDomainEvidence(ctx context.Context, id identity.CommandID) (organization.DomainEvidenceResult, error)
- type DomainEvidenceSource
- type DynamicRoleDeleteOperationLookupMigrationSource
- type DynamicRoleMigrationSource
- type InvitationCancelOperationMigrationSource
- type InvitationCancellationMigrationSource
- type InvitationCapabilityMigrationSource
- type InvitationDeliveryConfig
- type InvitationDeliveryStatus
- type InvitationExpireOperationMigrationSource
- type InvitationExpiryMigrationSource
- type InvitationMigrationSource
- type InvitationOperationService
- func (InvitationOperationService) Format(s fmt.State, _ rune)
- func (InvitationOperationService) MarshalJSON() ([]byte, error)
- func (InvitationOperationService) MarshalText() ([]byte, error)
- func (s *InvitationOperationService) Resend(ctx context.Context, r organization.InvitationResendOperationRequest, ...) (out organization.InvitationResendOperationResult, err error)
- func (s *InvitationOperationService) Send(ctx context.Context, r organization.InvitationSendOperationRequest, ...) (out organization.StoreResult, err error)
- type InvitationOperationServiceConfig
- type InvitationRecipientIndexMigrationSource
- type InvitationRecipientIndexTransactionalMigrationSource
- type InvitationRecovery
- type InvitationRejectOperationMigrationSource
- type InvitationRejectionMigrationSource
- type InvitationRepository
- func (r *InvitationRepository) ListInvitations(ctx context.Context, q organization.InvitationQuery) (organization.InvitationPage, error)
- func (r *InvitationRepository) ReadInvitation(ctx context.Context, q organization.InvitationQuery) (organization.InvitationSnapshot, error)
- func (r *InvitationRepository) ReadInvitationsMine(ctx context.Context, q organization.InvitationListMineQuery) (organization.InvitationListMineSnapshot, error)
- type InvitationRepositoryConfig
- type InvitationResendMigrationSource
- type InvitationResendResult
- type InvitationService
- func (s *InvitationService) Accept(ctx context.Context, r organization.InvitationAcceptRequest, network string, ...) (organization.StoreResult, error)
- func (s *InvitationService) Cancel(ctx context.Context, r organization.InvitationCancelOperationRequest, ...) (out organization.StoreResult, err error)
- func (s *InvitationService) Execute(ctx context.Context, p PreparedInvitation) (organization.StoreResult, error)
- func (s *InvitationService) ExecuteResend(ctx context.Context, p PreparedInvitation) (InvitationResendResult, error)
- func (s *InvitationService) Expire(ctx context.Context, r organization.InvitationExpireOperationRequest, ...) (out organization.StoreResult, err error)
- func (InvitationService) Format(s fmt.State, _ rune)
- func (s *InvitationService) Get(ctx context.Context, r organization.InvitationReadRequest) (organization.InvitationDelivery, error)
- func (s *InvitationService) List(ctx context.Context, r organization.InvitationReadRequest) (organization.InvitationPage, error)
- func (s *InvitationService) ListMine(ctx context.Context, r organization.InvitationListMineRequest) (organization.InvitationListMineResult, error)
- func (InvitationService) MarshalJSON() ([]byte, error)
- func (InvitationService) MarshalText() ([]byte, error)
- func (s *InvitationService) PrepareAccept(ctx context.Context, r organization.InvitationAcceptRequest, network string) (PreparedInvitation, error)
- func (s *InvitationService) PrepareAcceptance(ctx context.Context, r organization.InvitationAcceptRequest, network string) (organization.PreparedInvitationAcceptance, error)
- func (s *InvitationService) PrepareCancel(ctx context.Context, r organization.InvitationCancelRequest, network string) (PreparedInvitation, error)
- func (s *InvitationService) PrepareExpire(ctx context.Context, r organization.InvitationExpireRequest, network string) (PreparedInvitation, error)
- func (s *InvitationService) PrepareReject(ctx context.Context, r organization.InvitationRejectRequest, network string) (PreparedInvitation, error)
- func (s *InvitationService) PrepareResend(ctx context.Context, r organization.InvitationResendRequest, network string) (PreparedInvitation, error)
- func (s *InvitationService) PrepareSend(ctx context.Context, r organization.InvitationSendRequest, network string) (PreparedInvitation, error)
- func (s *InvitationService) Recover(ctx context.Context, a organization.Authentication, ...) (organization.StoreResult, error)
- func (s *InvitationService) RecoverAccept(ctx context.Context, r organization.InvitationAcceptRecoveryRequest) (organization.StoreResult, error)
- func (s *InvitationService) RecoverResend(ctx context.Context, a organization.Authentication, ...) (InvitationResendResult, error)
- func (s *InvitationService) Reject(ctx context.Context, r organization.InvitationRejectOperationRequest, ...) (out organization.StoreResult, err error)
- type InvitationServiceConfig
- type LeaveOperationLookupMigrationSource
- type LeaveOperationLookupTransactionalMigrationSource
- type LifecycleMigrationSource
- type MigrationSource
- type OperationCustodyConfig
- type OperationLookupMigrationSource
- type OperationLookupTransactionalMigrationSource
- type OperationService
- func (s *OperationService) AddMember(ctx context.Context, r organization.AddMemberOperationRequest, network string) (organization.StoreResult, error)
- func (s *OperationService) AddTeamMember(ctx context.Context, r organization.AddTeamMemberOperationRequest, ...) (organization.StoreResult, error)
- func (s *OperationService) Archive(ctx context.Context, r organization.LifecycleOperationRequest, network string) (organization.StoreResult, error)
- func (s *OperationService) AssignDynamicRole(ctx context.Context, r organization.AssignDynamicRoleOperationRequest, ...) (organization.StoreResult, error)
- func (s *OperationService) AssignTeamDynamicRole(ctx context.Context, r organization.AssignTeamDynamicRoleOperationRequest, ...) (organization.StoreResult, error)
- func (s *OperationService) CheckPermission(ctx context.Context, r organization.PermissionCheckRequest) (authorization.Decision, error)
- func (s *OperationService) Create(ctx context.Context, r organization.CreateOperationRequest, network string) (organization.StoreResult, error)
- func (s *OperationService) CreateDynamicRole(ctx context.Context, r organization.CreateDynamicRoleOperationRequest, ...) (organization.StoreResult, error)
- func (s *OperationService) CreateTeam(ctx context.Context, r organization.CreateTeamOperationRequest, network string) (organization.StoreResult, error)
- func (s *OperationService) DeleteDynamicRole(ctx context.Context, r organization.DeleteDynamicRoleOperationRequest, ...) (out organization.StoreResult, err error)
- func (s *OperationService) DeleteTeam(ctx context.Context, r organization.DeleteTeamOperationRequest, network string) (out organization.StoreResult, err error)
- func (OperationService) Format(s fmt.State, _ rune)
- func (s *OperationService) Get(ctx context.Context, r organization.ReadRequest) (organization.View, error)
- func (s *OperationService) GetActiveOrganization(ctx context.Context, r organization.ActiveOrganizationReadRequest) (organization.ActiveOrganizationView, error)
- func (s *OperationService) GetDynamicRole(ctx context.Context, r organization.DynamicRoleReadRequest) (organization.View, error)
- func (s *OperationService) GetTeam(ctx context.Context, r organization.TeamReadRequest) (organization.View, error)
- func (s *OperationService) LeaveMember(ctx context.Context, r organization.LeaveMemberOperationRequest, ...) (out organization.StoreResult, err error)
- func (s *OperationService) ListDynamicRoles(ctx context.Context, r organization.DynamicRoleReadRequest) (organization.View, error)
- func (s *OperationService) ListMembers(ctx context.Context, r organization.ReadRequest) (organization.View, error)
- func (s *OperationService) ListMyTeams(ctx context.Context, r organization.TeamReadRequest) (organization.View, error)
- func (s *OperationService) ListOrganizations(ctx context.Context, request organization.ListOrganizationsRequest) (organization.ListOrganizationsResult, error)
- func (s *OperationService) ListTeamMembers(ctx context.Context, r organization.TeamReadRequest) (organization.View, error)
- func (OperationService) MarshalJSON() ([]byte, error)
- func (OperationService) MarshalText() ([]byte, error)
- func (s *OperationService) OwnerTransfer(ctx context.Context, r organization.OwnerTransferOperationRequest, ...) (organization.StoreResult, error)
- func (s *OperationService) RecoverOperation(ctx context.Context, r organization.OperationRecoveryRequest) (organization.StoreResult, error)
- func (s *OperationService) RemoveMember(ctx context.Context, r organization.RemoveMemberOperationRequest, ...) (out organization.StoreResult, err error)
- func (s *OperationService) RemoveTeamMember(ctx context.Context, r organization.RemoveTeamMemberOperationRequest, ...) (out organization.StoreResult, err error)
- func (s *OperationService) Restore(ctx context.Context, r organization.LifecycleOperationRequest, network string) (organization.StoreResult, error)
- func (s *OperationService) RevokeDynamicRole(ctx context.Context, r organization.RevokeDynamicRoleOperationRequest, ...) (out organization.StoreResult, err error)
- func (s *OperationService) RevokeTeamDynamicRole(ctx context.Context, r organization.RevokeTeamDynamicRoleOperationRequest, ...) (out organization.StoreResult, err error)
- func (s *OperationService) SetActiveOrganization(ctx context.Context, r organization.ActiveOrganizationOperationRequest, ...) (organization.StoreResult, error)
- func (s *OperationService) SlugAvailable(ctx context.Context, request organization.SlugAvailableRequest) (organization.SlugAvailableResult, error)
- func (s *OperationService) Update(ctx context.Context, r organization.UpdateOperationRequest, network string) (organization.StoreResult, error)
- func (s *OperationService) UpdateDynamicRole(ctx context.Context, r organization.UpdateDynamicRoleOperationRequest, ...) (organization.StoreResult, error)
- func (s *OperationService) UpdateMember(ctx context.Context, r organization.UpdateMemberOperationRequest, ...) (organization.StoreResult, error)
- func (s *OperationService) UpdateTeam(ctx context.Context, r organization.UpdateTeamOperationRequest, network string) (organization.StoreResult, error)
- type OperationServiceConfig
- type PreparedCommand
- type PreparedInvitation
- type Recovery
- type Repository
- func (r *Repository) GetDomainProof(ctx context.Context, key organization.DomainProofKey) (organization.DomainProof, error)
- func (r *Repository) ObserveOrganizationSession(ctx context.Context, record session.Session) (sessionpg.OrganizationSessionAuthorityObservation, error)
- func (r *Repository) Read(ctx context.Context, q organization.Query) (organization.View, error)
- func (r *Repository) ReadOrganizationSlug(ctx context.Context, query organization.OrganizationSlugQuery) (organization.OrganizationSlugAvailability, error)
- func (r *Repository) ReadOrganizations(ctx context.Context, query organization.OrganizationListQuery) ([]organization.OrganizationListEntry, error)
- func (r *Repository) RequireOrganizationSession(ctx context.Context, w kernel.Work, owner kernel.FeatureExecutionContributor, ...) error
- type RoleBindingRevokeOperationLookupMigrationSource
- type Service
- func (s *Service) CheckPermission(ctx context.Context, r organization.PermissionCheckRequest) (authorization.Decision, error)
- func (s *Service) DomainEvidence(a organization.Authentication, network string, recovery ...Recovery) (*DomainEvidenceService, error)
- func (s *Service) Execute(ctx context.Context, p PreparedCommand) (organization.StoreResult, error)
- func (s *Service) Get(ctx context.Context, r organization.ReadRequest) (organization.View, error)
- func (s *Service) GetActiveOrganization(ctx context.Context, r organization.ActiveOrganizationReadRequest) (organization.ActiveOrganizationView, error)
- func (s *Service) GetDomainClaim(ctx context.Context, r organization.DomainClaimReadRequest) (organization.View, error)
- func (s *Service) GetDynamicRole(ctx context.Context, r organization.DynamicRoleReadRequest) (organization.View, error)
- func (s *Service) GetLifecycle(ctx context.Context, r organization.ReadRequest) (organization.View, error)
- func (s *Service) GetTeam(ctx context.Context, r organization.TeamReadRequest) (organization.View, error)
- func (s *Service) ListDynamicRoles(ctx context.Context, r organization.DynamicRoleReadRequest) (organization.View, error)
- func (s *Service) ListMembers(ctx context.Context, r organization.ReadRequest) (organization.View, error)
- func (s *Service) ListMyTeams(ctx context.Context, r organization.TeamReadRequest) (organization.View, error)
- func (s *Service) ListOrganizations(ctx context.Context, request organization.ListOrganizationsRequest) (organization.ListOrganizationsResult, error)
- func (s *Service) ListTeamMembers(ctx context.Context, r organization.TeamReadRequest) (organization.View, error)
- func (s *Service) ListTeams(ctx context.Context, r organization.TeamReadRequest) (organization.View, error)
- func (s *Service) PrepareActiveOrganization(ctx context.Context, r organization.ActiveOrganizationRequest, network string) (PreparedCommand, error)
- func (s *Service) PrepareAddMember(ctx context.Context, r organization.MemberRequest, network string) (PreparedCommand, error)
- func (s *Service) PrepareAddTeamMember(ctx context.Context, r organization.TeamMemberRequest, network string) (PreparedCommand, error)
- func (s *Service) PrepareArchive(ctx context.Context, r organization.LifecycleRequest, network string) (PreparedCommand, error)
- func (s *Service) PrepareAssignDynamicRole(ctx context.Context, r organization.RoleBindingRequest, network string) (PreparedCommand, error)
- func (s *Service) PrepareAssignTeamDynamicRole(ctx context.Context, r organization.TeamRoleBindingRequest, network string) (PreparedCommand, error)
- func (s *Service) PrepareCreate(ctx context.Context, r organization.CreateRequest, network string) (PreparedCommand, error)
- func (s *Service) PrepareCreateDynamicRole(ctx context.Context, r organization.DynamicRoleRequest, network string) (PreparedCommand, error)
- func (s *Service) PrepareCreateTeam(ctx context.Context, r organization.CreateTeamRequest, network string) (PreparedCommand, error)
- func (s *Service) PrepareDeleteDynamicRole(ctx context.Context, r organization.DynamicRoleRequest, network string) (PreparedCommand, error)
- func (s *Service) PrepareDeleteTeam(ctx context.Context, r organization.DeleteTeamRequest, network string) (PreparedCommand, error)
- func (s *Service) PrepareLeaveMember(ctx context.Context, r organization.LeaveRequest, network string) (PreparedCommand, error)
- func (s *Service) PrepareOwnerTransfer(ctx context.Context, r organization.OwnerTransferRequest, network string) (PreparedCommand, error)
- func (s *Service) PrepareRemoveMember(ctx context.Context, r organization.MemberRequest, network string) (PreparedCommand, error)
- func (s *Service) PrepareRemoveTeamMember(ctx context.Context, r organization.TeamMemberRequest, network string) (PreparedCommand, error)
- func (s *Service) PrepareReserveDomain(ctx context.Context, r organization.DomainClaimRequest, network string) (PreparedCommand, error)
- func (s *Service) PrepareRestore(ctx context.Context, r organization.LifecycleRequest, network string) (PreparedCommand, error)
- func (s *Service) PrepareRevokeDynamicRole(ctx context.Context, r organization.RoleBindingRequest, network string) (PreparedCommand, error)
- func (s *Service) PrepareRevokeTeamDynamicRole(ctx context.Context, r organization.TeamRoleBindingRequest, network string) (PreparedCommand, error)
- func (s *Service) PrepareUpdate(ctx context.Context, r organization.UpdateRequest, network string) (PreparedCommand, error)
- func (s *Service) PrepareUpdateDynamicRole(ctx context.Context, r organization.DynamicRoleRequest, network string) (PreparedCommand, error)
- func (s *Service) PrepareUpdateMember(ctx context.Context, r organization.MemberRequest, network string) (PreparedCommand, error)
- func (s *Service) PrepareUpdateTeam(ctx context.Context, r organization.UpdateTeamRequest, network string) (PreparedCommand, error)
- func (s *Service) PrepareWithdrawDomain(ctx context.Context, r organization.DomainClaimRequest, network string) (PreparedCommand, error)
- func (s *Service) Recover(ctx context.Context, a organization.Authentication, r Recovery) (organization.StoreResult, error)
- func (s *Service) SlugAvailable(ctx context.Context, request organization.SlugAvailableRequest) (organization.SlugAvailableResult, error)
- type ServiceConfig
- type TeamDeleteOperationLookupMigrationSource
- type TeamLifecycleMigrationSource
- type TeamMemberOperationLookupMigrationSource
- type TeamMigrationSource
- type TeamRoleBindingMigrationSource
- type TeamRoleBindingRevokeOperationLookupMigrationSource
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func OrganizationAuthorityScope ¶
func OrganizationAuthorityScope(tenant identity.TenantID, org organization.ID, user identity.UserID) (authority.AuthorityScope, error)
OrganizationAuthorityScope binds target authorization to one organization, not the session/global user namespace. The length-framed, domain-separated digest keeps a full canonical 128-byte organization ID inside the owner's bounded namespace. It supplies no authority or freshness on its own.
Types ¶
type Config ¶
Config borrows an already migrated PRIMARY pool with a positive read budget no greater than five seconds. There are no defaults, caches or background jobs.
type Contributor ¶
type Contributor struct {
// contains filtered or unexported fields
}
Contributor is an immutable open registered participant, not a coordinator or permission engine. It only operates on the original serial invocation's Work. Separate invocations may execute concurrently; it retains no per-call state.
func NewContributor ¶
func NewContributor(repository *Repository, c ContributorConfig) (*Contributor, error)
func (*Contributor) ApplyFeature ¶
func (p *Contributor) ApplyFeature(ctx context.Context, w kernel.Work, command identity.Command) (identity.FeatureReceipt, error)
func (*Contributor) CheckFeatureCommit ¶
func (*Contributor) Descriptor ¶
func (*Contributor) Descriptor() kernel.ContributorDescriptor
func (*Contributor) FeatureOperations ¶
func (p *Contributor) FeatureOperations() []identity.FeatureOperation
func (*Contributor) MapCommand ¶
func (p *Contributor) MapCommand(c organization.Command) (identity.Command, error)
MapCommand freezes every domain option and the native session owner's complete original fields. Bearer custody remains in identity.NewFeatureSessionCommand, never in scalar metadata, persistence results or audit/outbox payloads. OwnerTransfer requires Service.PrepareOwnerTransfer's authenticated password admission and is rejected here rather than mapped without its proof owner.
func (*Contributor) PrepareRequestKey ¶
func (p *Contributor) PrepareRequestKey(ctx context.Context, b kernel.RequestKeyPreparationBinding, intent identity.RequestIntent) ([]byte, error)
PrepareRequestKey is the existing kernel's original-input hook. Only an isolated exact contributor created by OperationService has invocation input; ordinary native participants reject this optional callback. No risk debit, protected mutation or bearer persistence occurs in this preparation phase.
func (*Contributor) RecoverParticipant ¶
func (p *Contributor) RecoverParticipant(ctx context.Context, w kernel.RecoveryWork) (kernel.RecoveryStatus, error)
RecoverParticipant reads this owner's exact retained effect binding only. Absence under the coordinator's recovery fence proves no domain effect; committed evidence beside a pending journal is left for the sole coordinator to classify as conflicting/unknown, never reconstructed as a fresh success.
func (*Contributor) RestoreRequestKey ¶
func (p *Contributor) RestoreRequestKey(ctx context.Context, b kernel.RequestKeyPreparationBinding, wire []byte) (identity.CommandBinding, error)
RestoreRequestKey implements only the kernel's opt-in original-mapping recovery decoder. It authenticates native ciphertext and complete original scope without preparation, owner reads, entropy, deadline renewal or effects. Ordinary native contributors reject it and preserve generic recovery privacy.
func (*Contributor) ValidateFeatureCommand ¶
func (p *Contributor) ValidateFeatureCommand(command identity.Command, plan kernel.CommandPlan) error
type ContributorConfig ¶
type ContributorConfig struct {
Session sessionpg.Config
Profile sessionpg.IdentifierAdmissionConfig
LookupKeys map[uint32]session.DigestKey
PolicyID string
PolicyVersion uint64
MaximumMembers, MaximumPerUser, MaximumPerTenant uint64
Teams organization.TeamConfig
Domains organization.DomainConfig
DomainEvidence *DomainEvidenceSource
DynamicRoles organization.DynamicRoleConfig
Lifecycle organization.LifecycleConfig
// Both signed primary sources are required for opt-in archive/restore.
ArchivePrimary, RestorePrimary *passwordpg.ActionPrimarySource
// OwnerTransferPrimary explicitly enables the operation-bound password
// profile. Omission preserves the original operation set and command bytes.
OwnerTransferPrimary *passwordpg.ActionPrimarySource
// ActiveOrganization explicitly enables exact-session password/bearer
// selection through the session owner's effect. Install that owner's
// OrganizationSelectionMigrationSource and compose its selected reader
// with this Repository as OrganizationSessionAuthority before use.
ActiveOrganization bool
}
ContributorConfig fixes the one password/bearer profile and immutable limits. LookupKeys maps the original retained version to opaque session-owned keys. Keys, pool and owner lifetimes remain caller-owned; no key may be retired while a supported original session or pending command requires it. PolicyNamespace in Profile belongs to session authentication, not organization membership.
func (ContributorConfig) MarshalJSON ¶
func (ContributorConfig) MarshalJSON() ([]byte, error)
func (ContributorConfig) MarshalText ¶
func (ContributorConfig) MarshalText() ([]byte, error)
type DomainClaimMigrationSource ¶
type DomainClaimMigrationSource struct{ Version migrations.Version }
DomainClaimMigrationSource adds reservation custody after MigrationSource. Apply before selecting DomainConfig. Existing migration bytes and existing organization/member rows are unchanged. No ownership proof or routing exists.
func (DomainClaimMigrationSource) Load ¶
func (s DomainClaimMigrationSource) Load(ctx context.Context) ([]migrations.Migration, error)
type DomainEvidenceMigrationSource ¶
type DomainEvidenceMigrationSource struct{ Version migrations.Version }
DomainEvidenceMigrationSource adds immutable authoritative proof history after DomainClaimMigrationSource. Existing reservation bytes remain unchanged. Install before configuring DomainEvidenceSource. The identity coordinator is still the only command journal; these rows contain domain results, not retries.
func (DomainEvidenceMigrationSource) Load ¶
func (s DomainEvidenceMigrationSource) Load(ctx context.Context) ([]migrations.Migration, error)
type DomainEvidenceService ¶
type DomainEvidenceService struct {
// contains filtered or unexported fields
}
DomainEvidenceService binds private current human authentication to the exact argument-free recovery contract. Each call reauthenticates and rechecks current primary membership/policy; neither command IDs nor proof values confer access. Borrowed Service and observer must outlive calls. It starts no goroutines. Do not copy after first use; independent commands use independent facades.
func (*DomainEvidenceService) ApplyDomainEvidence ¶
func (s *DomainEvidenceService) ApplyDomainEvidence(ctx context.Context, c organization.DomainEvidenceCommand) (organization.DomainEvidenceResult, error)
ApplyDomainEvidence attempts only this facade's immutable prepared command. Replay retains its original counter plan and never calls the observer again.
func (*DomainEvidenceService) GetDomainProof ¶
func (s *DomainEvidenceService) GetDomainProof(ctx context.Context, key organization.DomainProofKey) (organization.DomainProof, error)
GetDomainProof requires exact current primary proof and current management, membership, organization and authenticated-session authority before release.
func (*DomainEvidenceService) MarshalJSON ¶
func (*DomainEvidenceService) MarshalJSON() ([]byte, error)
func (*DomainEvidenceService) MarshalText ¶
func (*DomainEvidenceService) MarshalText() ([]byte, error)
func (*DomainEvidenceService) Prepare ¶
func (s *DomainEvidenceService) Prepare(ctx context.Context, r organization.DomainEvidenceRequest) (organization.DomainEvidenceCommand, error)
Prepare freezes one external observation without opening a transaction. Save Command().Input().Binding as safe recovery scope; preserve CommandID on retry.
func (*DomainEvidenceService) PrepareRevocation ¶
func (s *DomainEvidenceService) PrepareRevocation(ctx context.Context, r organization.DomainEvidenceRequest, key organization.DomainProofKey) (organization.DomainEvidenceCommand, error)
PrepareRevocation freezes the exact original proof for terminal revocation.
func (*DomainEvidenceService) RecoverDomainEvidence ¶
func (s *DomainEvidenceService) RecoverDomainEvidence(ctx context.Context, id identity.CommandID) (organization.DomainEvidenceResult, error)
RecoverDomainEvidence reauthenticates the current original actor and queries the sole coordinator; historical proof is returned only when committed.
type DomainEvidenceSource ¶
type DomainEvidenceSource struct {
// contains filtered or unexported fields
}
DomainEvidenceSource selects the trusted external observer and authenticates its organization-issued observation across the public contributor boundary. Keep the key secret and stable while prepared commands may execute. Recovery needs neither the key nor another observation; it reads retained primary proof.
func NewDomainEvidenceSource ¶
func NewDomainEvidenceSource(observer organization.DomainEvidenceObserver, key [32]byte) (*DomainEvidenceSource, error)
NewDomainEvidenceSource selects a trusted observer and secret admission key. Zero/nil inputs are invalid; callers supply cryptographically random key bytes.
func (DomainEvidenceSource) MarshalJSON ¶
func (DomainEvidenceSource) MarshalJSON() ([]byte, error)
func (DomainEvidenceSource) MarshalText ¶
func (DomainEvidenceSource) MarshalText() ([]byte, error)
type DynamicRoleDeleteOperationLookupMigrationSource ¶
type DynamicRoleDeleteOperationLookupMigrationSource struct{ Version migrations.Version }
DynamicRoleDeleteOperationLookupMigrationSource adds nullable exact original delete selectors to existing command effects after DynamicRoleMigrationSource, at an unused permanent version. Legacy effects remain NULL; terminal role rows cannot backfill original intent. Raw explicit writers remain compatible without this optional schema. The transactional index build blocks writes: activate in a bounded maintenance window with lock/transaction timeouts. No new journal, permission source or backfill is introduced.
func (DynamicRoleDeleteOperationLookupMigrationSource) Load ¶
func (s DynamicRoleDeleteOperationLookupMigrationSource) Load(ctx context.Context) ([]migrations.Migration, error)
Load returns one atomic forward migration without IO or partial results.
type DynamicRoleMigrationSource ¶
type DynamicRoleMigrationSource struct{ Version migrations.Version }
DynamicRoleMigrationSource adds direct custom roles and membership-bound role assignments without changing installed migration bytes or existing roles. Install after MigrationSource, before enabling DynamicRoleConfig. Deleted role rows remain bounded tombstones and are never recreated or reassigned.
func (DynamicRoleMigrationSource) Load ¶
func (s DynamicRoleMigrationSource) Load(ctx context.Context) ([]migrations.Migration, error)
type InvitationCancelOperationMigrationSource ¶
type InvitationCancelOperationMigrationSource struct{ Version migrations.Version }
InvitationCancelOperationMigrationSource adds exact natural-repeat correlation to existing cancellation effects after all installed invitation migrations. Allocate one unused permanent version. Existing effects remain unchanged and nullable: their original organization epoch cannot be reconstructed safely. Raw explicit cancellation stays compatible with old and new installations.
The transactional index build blocks table writes. Apply it in a bounded operator maintenance window with configured transaction/lock timeouts, before enabling Cancel; this is not automatic runtime activation or a new journal.
func (InvitationCancelOperationMigrationSource) Load ¶
func (s InvitationCancelOperationMigrationSource) Load(ctx context.Context) ([]migrations.Migration, error)
Load returns one forward-only migration without IO. Invalid versions and nil/cancelled contexts fail without returning a partial migration.
type InvitationCancellationMigrationSource ¶
type InvitationCancellationMigrationSource struct{ Version migrations.Version }
InvitationCancellationMigrationSource extends the installed invitation lifecycle without rewriting either prior migration. Allocate a permanent later version after all installed organization migrations. Existing pending and accepted rows retain their exact identity, proof custody and versions.
func (InvitationCancellationMigrationSource) Load ¶
func (s InvitationCancellationMigrationSource) Load(ctx context.Context) ([]migrations.Migration, error)
Load returns one forward migration, honoring cancellation without IO.
type InvitationCapabilityMigrationSource ¶
type InvitationCapabilityMigrationSource struct{ Version migrations.Version }
InvitationCapabilityMigrationSource adds private original issuance identity after InvitationMigrationSource. Existing metadata-only rows remain paired NULL and cannot authorize acceptance; no bearer is persisted or backfilled. Allocate a permanent later Version. Old readers use explicit column lists.
func (InvitationCapabilityMigrationSource) Load ¶
func (s InvitationCapabilityMigrationSource) Load(ctx context.Context) ([]migrations.Migration, error)
type InvitationDeliveryConfig ¶
type InvitationDeliveryConfig struct {
Owner *deliverypg.Contributor
Status *deliverypg.EnqueueService
Renderer *delivery.TemplateRenderer
Policy delivery.Config
PolicyVersion, ProviderVersion uint64
// StatusPolicyVersion is EnqueueConfig.PolicyVersion (authorization), not
// the provider's retained delivery Config profile selected by PolicyVersion.
StatusPolicyVersion uint64
TemplateID string
TemplateVersion uint32
LocaleChain []string
Endpoint string
ScopeKey [32]byte
}
InvitationDeliveryConfig borrows actual encrypted delivery/status owners and selects their exact retained provider/policy/template profile. Policy dedupe must cover invitation lifetime+24h. Endpoint is an HTTPS origin/path with no query, userinfo or fragment; the sole token parameter is generated privately. LocaleChain is copied. No sender or provider call occurs before commitment.
func (InvitationDeliveryConfig) Format ¶
func (InvitationDeliveryConfig) Format(s fmt.State, _ rune)
func (InvitationDeliveryConfig) MarshalJSON ¶
func (InvitationDeliveryConfig) MarshalJSON() ([]byte, error)
func (InvitationDeliveryConfig) MarshalText ¶
func (InvitationDeliveryConfig) MarshalText() ([]byte, error)
type InvitationDeliveryStatus ¶
type InvitationDeliveryStatus struct {
EffectID delivery.IntentID
State delivery.DeliveryState
}
InvitationDeliveryStatus observes the original resend command's delivery effect, never the invitation's latest effect. State is delivery-owned metadata, not proof of receipt or permission to redeliver. No address or proof is exposed.
type InvitationExpireOperationMigrationSource ¶
type InvitationExpireOperationMigrationSource struct{ Version migrations.Version }
InvitationExpireOperationMigrationSource adds natural-repeat correlation to existing expiry effects after the selected invitation migrations. Allocate one unused permanent version. Existing effects remain NULL: neither today's organization version nor terminal reason proves their original admission. Raw PrepareExpire/Execute remains independent of this optional migration.
The transactional index build blocks writes. Apply it in a bounded operator maintenance window with transaction/lock timeouts before enabling Expire. The partial index enforces a single terminal effect for an invitation epoch; it is not a separate journal or automatic runtime activation.
func (InvitationExpireOperationMigrationSource) Load ¶
func (s InvitationExpireOperationMigrationSource) Load(ctx context.Context) ([]migrations.Migration, error)
Load returns one forward-only migration without IO. Invalid versions and nil/cancelled contexts fail without returning partial work.
type InvitationExpiryMigrationSource ¶
type InvitationExpiryMigrationSource struct{ Version migrations.Version }
InvitationExpiryMigrationSource follows the rejection migration at an unused permanent version. It preserves old rows, proof custody and migration bytes. Install before enabling explicit expiry; old readers fail closed on the new terminal state. Natural expiry remains a pending/version1 projection.
func (InvitationExpiryMigrationSource) Load ¶
func (s InvitationExpiryMigrationSource) Load(ctx context.Context) ([]migrations.Migration, error)
Load returns a forward-only atomic lifecycle extension without IO.
type InvitationMigrationSource ¶
type InvitationMigrationSource struct{ Version migrations.Version }
InvitationMigrationSource adds only the selected existing-recipient, member-grant invitation profile. Allocate Version permanently after this owner's original membership migration and the shared delivery migrations. The original migration remains byte-for-byte unchanged for installed users.
func (InvitationMigrationSource) Load ¶
func (s InvitationMigrationSource) Load(ctx context.Context) ([]migrations.Migration, error)
type InvitationOperationService ¶
type InvitationOperationService struct {
// contains filtered or unexported fields
}
InvitationOperationService admits one original initiating key through the existing kernel mapping and invitation engine. It starts no goroutines and borrows all native owners. Retries only recover/classify original metadata; they never rebuild execution authority or disclose/redeliver invitation proof.
func NewInvitationOperationService ¶
func NewInvitationOperationService(source *InvitationService, config InvitationOperationServiceConfig) (*InvitationOperationService, error)
NewInvitationOperationService validates composition without SQL or callbacks. Install request-key, original preparation and exact expiry migrations first.
func (InvitationOperationService) Format ¶
func (InvitationOperationService) Format(s fmt.State, _ rune)
func (InvitationOperationService) MarshalJSON ¶
func (InvitationOperationService) MarshalJSON() ([]byte, error)
func (InvitationOperationService) MarshalText ¶
func (InvitationOperationService) MarshalText() ([]byte, error)
func (*InvitationOperationService) Resend ¶
func (s *InvitationOperationService) Resend(ctx context.Context, r organization.InvitationResendOperationRequest, network string) (out organization.InvitationResendOperationResult, err error)
Resend admits one original initiating key for the exact pending invitation and versions. The existing native owner preserves its recipient, role and exclusive expiry and atomically supersedes its proof with one delivery intent. Matching keys only reconcile the original command under current manager and recipient authority; they never prepare, sign, send or renew authority again. Network is the transport's trusted canonical full client address. The result projects authorized original delivery state, never proof or effect identity.
func (*InvitationOperationService) Send ¶
func (s *InvitationOperationService) Send(ctx context.Context, r organization.InvitationSendOperationRequest, network string) (out organization.StoreResult, err error)
Send selects an exact existing verified recipient and current owner. Network is the transport's trusted canonical full client address. An absent original claim remains Unknown before its immutable deadline; after primary expiry the sole kernel can irreversibly refuse that ID and return metadata-only noncommit. No classification permits retrying effects under the same key or command ID.
type InvitationOperationServiceConfig ¶
type InvitationOperationServiceConfig struct {
ConfigurationID string
RequestKeys kernel.RequestKeyConfig
Custody OperationCustodyConfig
NewInvitationID func(context.Context) (organization.ID, error)
}
InvitationOperationServiceConfig selects original-key send on the borrowed native invitation service. ConfigurationID names the immutable deployment policy, including borrowed callback/owner configuration. Change it for material profile changes and retain the original profile and custody keys for recovery. NewInvitationID is bounded and concurrency-safe; races may discard candidates. It runs outside SQL and must not perform domain mutation or proof generation.
func (InvitationOperationServiceConfig) Format ¶
func (InvitationOperationServiceConfig) Format(s fmt.State, _ rune)
func (InvitationOperationServiceConfig) MarshalJSON ¶
func (InvitationOperationServiceConfig) MarshalJSON() ([]byte, error)
func (InvitationOperationServiceConfig) MarshalText ¶
func (InvitationOperationServiceConfig) MarshalText() ([]byte, error)
type InvitationRecipientIndexMigrationSource ¶
type InvitationRecipientIndexMigrationSource struct{ Version migrations.Version }
InvitationRecipientIndexMigrationSource adds the exact recipient/verified-ID keyset access path. Allocate a later permanent version after installed owner migrations and install before selecting ListMine. It changes no rows or old migration bytes. PostgreSQL builds concurrently outside a transaction; an interrupted/invalid build must be reconciled, never silently skipped.
func (InvitationRecipientIndexMigrationSource) Load ¶
func (s InvitationRecipientIndexMigrationSource) Load(ctx context.Context) ([]migrations.Migration, error)
Load returns one nontransactional forward index migration without IO.
type InvitationRecipientIndexTransactionalMigrationSource ¶
type InvitationRecipientIndexTransactionalMigrationSource struct{ Version migrations.Version }
InvitationRecipientIndexTransactionalMigrationSource explicitly selects a blocking, transactional build of InvitationRecipientIndexMigrationSource's exact recipient keyset index. Choose one source at the allocated version, never both variants or a replacement for already installed concurrent history. PostgreSQL blocks writes during this build; apply only in an explicit bounded operator window with transaction/lock timeouts, not automatic runtime DML.
func (InvitationRecipientIndexTransactionalMigrationSource) Load ¶
func (s InvitationRecipientIndexTransactionalMigrationSource) Load(ctx context.Context) ([]migrations.Migration, error)
Load preserves the native source's version/context validation and returns one detached forward-only transactional migration without IO or mutation.
type InvitationRecovery ¶
type InvitationRecovery struct {
Binding identity.CommandBinding
OrganizationID organization.ID
}
InvitationRecovery is persistable safe correlation, never authority. Binding names the invitation; OrganizationID must match the original frozen send declaration or the accepting/cancelled invitation's durable owning record. It contains no session, proof, output ciphertext or renewable execution lease.
type InvitationRejectOperationMigrationSource ¶
type InvitationRejectOperationMigrationSource struct{ Version migrations.Version }
InvitationRejectOperationMigrationSource adds exact natural-repeat correlation to existing rejection effects after the selected invitation migrations. It does not require the optional cancellation-operation migration. Allocate one unused permanent version. Existing effects retain NULL correlation because today's organization epoch cannot reconstruct their original admission. Raw explicit rejection remains independent of this optional migration.
The transactional index build blocks writes. Apply it in an explicit bounded operator maintenance window with transaction/lock timeouts before enabling Reject, not as automatic runtime activation. This introduces no new journal.
func (InvitationRejectOperationMigrationSource) Load ¶
func (s InvitationRejectOperationMigrationSource) Load(ctx context.Context) ([]migrations.Migration, error)
Load returns one forward-only migration without IO. Invalid versions and nil/cancelled contexts fail without returning a partial migration.
type InvitationRejectionMigrationSource ¶
type InvitationRejectionMigrationSource struct{ Version migrations.Version }
InvitationRejectionMigrationSource extends the existing cancellation schema. Install at a permanent later version. No prior migration, pending capability, accepted membership or cancellation is rewritten. Older binaries fail closed on the new terminal state; apply this schema before enabling rejection.
func (InvitationRejectionMigrationSource) Load ¶
func (s InvitationRejectionMigrationSource) Load(ctx context.Context) ([]migrations.Migration, error)
Load returns a forward-only lifecycle extension without IO.
type InvitationRepository ¶
type InvitationRepository struct {
// contains filtered or unexported fields
}
InvitationRepository reads this owner's primary tables and borrows existing identity and delivery owners for their projections. It owns no coordinator, transaction, cache, provider or shutdown. Initialize/migrate its borrowed owners before use. Concurrent independent reads honor one enclosing budget.
func NewInvitationRepository ¶
func NewInvitationRepository(base *Repository, status *deliverypg.EnqueueService, c InvitationRepositoryConfig) (*InvitationRepository, error)
NewInvitationRepository constructs the selected read/preparation port without IO. The caller retains pool, delivery owner and key lifetimes.
func (*InvitationRepository) ListInvitations ¶
func (r *InvitationRepository) ListInvitations(ctx context.Context, q organization.InvitationQuery) (organization.InvitationPage, error)
ListInvitations closes primary rows before invoking the existing delivery status owner. The1..100 bound also bounds per-item owner reads/callbacks; one outer budget rejects an incomplete page instead of releasing partial data.
func (*InvitationRepository) ReadInvitation ¶
func (r *InvitationRepository) ReadInvitation(ctx context.Context, q organization.InvitationQuery) (organization.InvitationSnapshot, error)
func (*InvitationRepository) ReadInvitationsMine ¶
func (r *InvitationRepository) ReadInvitationsMine(ctx context.Context, q organization.InvitationListMineQuery) (organization.InvitationListMineSnapshot, error)
ReadInvitationsMine is a trusted storage port, not authentication by claimed recipient ID. The public service derives this scope from its genuine session. The native directory owns complete current verified identifier decoding and its epoch. Only safe identifier projections leave that owner read.
type InvitationRepositoryConfig ¶
type InvitationRepositoryConfig struct{ DeliveryPolicyVersion uint64 }
InvitationRepositoryConfig selects the status owner's authorization revision (delivery/postgres.EnqueueConfig.PolicyVersion), not a retained delivery.Config profile version from EnqueueConfig.Policies. It must match that owner; no delivery permission is inferred from an invitation ID or recipient metadata.
type InvitationResendMigrationSource ¶
type InvitationResendMigrationSource struct{ Version migrations.Version }
InvitationResendMigrationSource follows InvitationExpiryMigrationSource at an unused permanent version, before selecting resend. Existing version1/2 rows and previous migration bytes remain unchanged. One issued version may terminalize once; replacing a pending proof advances only its issued version. The original-command delivery ID is immutable history, not a second journal.
func (InvitationResendMigrationSource) Load ¶
func (s InvitationResendMigrationSource) Load(ctx context.Context) ([]migrations.Migration, error)
type InvitationResendResult ¶
type InvitationResendResult struct {
organization.StoreResult
Delivery *InvitationDeliveryStatus
}
InvitationResendResult preserves the command outcome even when a subsequent metadata read fails. Delivery is nil for errors/unknown/noncommitted outcomes; it is never synthesized as queued. Replayed/recovered receipts describe the original transition and original delivery, not a new invitation or new send.
type InvitationService ¶
type InvitationService struct {
// contains filtered or unexported fields
}
InvitationService owns native invitation composition, never another token engine, journal, provider or authentication authority. It starts no goroutine. Configuration is immutable; independent preparations may run concurrently, while each PreparedInvitation is serial-use and preserves original custody.
func NewInvitationService ¶
func NewInvitationService(repository *Repository, c InvitationServiceConfig) (*InvitationService, error)
NewInvitationService validates the exact owned graph without SQL or signing. It borrows the primary, session/policy/risk/delivery owners and creates only the existing native owners' immutable cryptographic composition.
func (*InvitationService) Accept ¶
func (s *InvitationService) Accept(ctx context.Context, r organization.InvitationAcceptRequest, network string, admit organization.InvitationAcceptAdmitter) (organization.StoreResult, error)
Accept performs once-only invitation acceptance using the caller's original CommandID, exact versions and privately held proof. It prepares through the existing native owner, calls admit synchronously outside SQL with authenticated original rate facts, then executes that same preparation. A nil gate is invalid; gate errors are returned unchanged, panic fails unavailable, and cancellation denies execution. The callback must honor its bounded context. No request key, command allocation, automatic recovery or renewed observation is introduced. Independent calls may run concurrently; no preparation is shared between them.
func (*InvitationService) Cancel ¶
func (s *InvitationService) Cancel(ctx context.Context, r organization.InvitationCancelOperationRequest, network string) (out organization.StoreResult, err error)
Cancel initiates a naturally repeatable exact-version invitation cancellation. It allocates the command internally, uses the existing native preparation and execution once, and needs no recipient credential, current email or proof. Install InvitationCancelOperationMigrationSource before selecting this API. Network is the transport's trusted canonical full client address.
Reconstructed matching committed requests return the actual original receipt under the original actor's current manager/session authority. CorrelationID is diagnostic only. A terminal/absent row is never success; legacy effects without original organization-version correlation fail closed. Unknown execution is returned immediately without another attempt. Retain its original receipt binding for the existing Recover API; an effect lookup cannot identify an unattached or uncommitted original command from natural request syntax alone.
func (*InvitationService) Execute ¶
func (s *InvitationService) Execute(ctx context.Context, p PreparedInvitation) (organization.StoreResult, error)
Execute preserves original expiry and opaque command identity. It exposes only metadata even on successful replay; no capability is redelivered.
func (*InvitationService) ExecuteResend ¶
func (s *InvitationService) ExecuteResend(ctx context.Context, p PreparedInvitation) (InvitationResendResult, error)
ExecuteResend executes only an original prepared resend and observes its bounded delivery state under current authority. Generic Execute remains compatible but supplies only the unchanged core receipt/IDs contract. Preserve the original preparation and Recovery handle for exact retries.
func (*InvitationService) Expire ¶
func (s *InvitationService) Expire(ctx context.Context, r organization.InvitationExpireOperationRequest, network string) (out organization.StoreResult, err error)
Expire initiates a naturally repeatable exact-version invitation expiration. It allocates the command internally, uses the existing native preparation and execution once, and needs no recipient credential, current email or proof. Install InvitationExpireOperationMigrationSource before selecting this API. Network is the transport's trusted canonical full client address.
Reconstructed matching committed requests return the actual original receipt under the original actor's current manager/session authority. CorrelationID is diagnostic only. A terminal/absent row is never success; legacy effects without original organization-version correlation fail closed. Unknown execution is returned immediately without another attempt. Retain its original receipt binding for the existing Recover API; an effect lookup cannot identify an unattached or uncommitted original command from natural request syntax alone.
func (*InvitationService) Get ¶
func (s *InvitationService) Get(ctx context.Context, r organization.InvitationReadRequest) (organization.InvitationDelivery, error)
func (*InvitationService) List ¶
func (s *InvitationService) List(ctx context.Context, r organization.InvitationReadRequest) (organization.InvitationPage, error)
func (*InvitationService) ListMine ¶
func (s *InvitationService) ListMine(ctx context.Context, r organization.InvitationListMineRequest) (organization.InvitationListMineResult, error)
ListMine returns current recipient-owned safe metadata through the actual session, directory and self-list policy owners, without organization-member admission or the administrator delivery-status projection.
func (InvitationService) MarshalJSON ¶
func (InvitationService) MarshalJSON() ([]byte, error)
func (InvitationService) MarshalText ¶
func (InvitationService) MarshalText() ([]byte, error)
func (*InvitationService) PrepareAccept ¶
func (s *InvitationService) PrepareAccept(ctx context.Context, r organization.InvitationAcceptRequest, network string) (PreparedInvitation, error)
PrepareAccept verifies the original retained issued envelope and replay-key identity, not a fingerprint inferred from presented proof. It does not consume or grant membership; the sole native transaction owns those effects.
func (*InvitationService) PrepareAcceptance ¶
func (s *InvitationService) PrepareAcceptance(ctx context.Context, r organization.InvitationAcceptRequest, network string) (organization.PreparedInvitationAcceptance, error)
PrepareAcceptance retains one actual native preparation and authentic original rate facts before handler middleware. It performs only existing read-only preparation/verification: no reservation, proof consumption or execution. The opaque serial-use handle starts no work and owns no resource to close; discard it on a later admission/middleware denial. Execute never prepares again or renews the original observation, session or invitation deadline.
func (*InvitationService) PrepareCancel ¶
func (s *InvitationService) PrepareCancel(ctx context.Context, r organization.InvitationCancelRequest, network string) (PreparedInvitation, error)
PrepareCancel selects a current owner/administrator and exact pending row. It neither resolves the recipient's current email nor consumes a capability.
func (*InvitationService) PrepareExpire ¶
func (s *InvitationService) PrepareExpire(ctx context.Context, r organization.InvitationExpireRequest, network string) (PreparedInvitation, error)
PrepareExpire freezes the current owner/administrator, exact pending row and registered reason. It needs no recipient proof and makes no provider call. Install InvitationExpiryMigrationSource before execution. The actual risk owner must classify expiry as Privileged; an unsupported profile fails closed.
func (*InvitationService) PrepareReject ¶
func (s *InvitationService) PrepareReject(ctx context.Context, r organization.InvitationRejectRequest, network string) (PreparedInvitation, error)
PrepareReject admits the exact authenticated verified recipient, not an organization administrator or invitation bearer. Execute atomically denies later acceptance through the existing invitation-row version fence.
func (*InvitationService) PrepareResend ¶
func (s *InvitationService) PrepareResend(ctx context.Context, r organization.InvitationResendRequest, network string) (PreparedInvitation, error)
PrepareResend freezes the genuine owner/administrator and exact original recipient, role, deadline and pending version. Install InvitationResendMigrationSource first. Only acknowledged Execute preparation may generate a successor, using the existing kernel/issuer/delivery owners.
func (*InvitationService) PrepareSend ¶
func (s *InvitationService) PrepareSend(ctx context.Context, r organization.InvitationSendRequest, network string) (PreparedInvitation, error)
PrepareSend freezes the genuine owner and exact existing verified recipient. Signing and encrypted delivery generation occur only in acknowledged native protected preparation when Execute is called, never in this method.
func (*InvitationService) Recover ¶
func (s *InvitationService) Recover(ctx context.Context, a organization.Authentication, recovery InvitationRecovery) (organization.StoreResult, error)
Recover authenticates a current genuine session for the original actor and rechecks current organization/recipient policy before asking the sole native coordinator for historical metadata. Execution expiry is not query authority: expired invitations may be queried but never renewed, executed or redelivered. The safe handle works on a new service instance without original proof or PreparedInvitation. Missing durable organization correlation fails closed.
func (*InvitationService) RecoverAccept ¶
func (s *InvitationService) RecoverAccept(ctx context.Context, r organization.InvitationAcceptRecoveryRequest) (organization.StoreResult, error)
RecoverAccept discloses only the exact original acceptance under current genuine recipient/session policy. It delegates to the existing native recovery owner, preserving outcomes and errors, including NotCommitted and Unknown. Save the full admission/result Binding and owning OrganizationID; a bare ID, current membership or absent row cannot infer historical success. This method neither prepares nor executes, consumes proof, sends delivery or renews expiry.
func (*InvitationService) RecoverResend ¶
func (s *InvitationService) RecoverResend(ctx context.Context, a organization.Authentication, recovery InvitationRecovery) (InvitationResendResult, error)
RecoverResend uses the sole existing recovery authority and a current genuine session. It never prepares, signs or enqueues. After later resends/acceptance, it still observes only this original command's delivery effect.
func (*InvitationService) Reject ¶
func (s *InvitationService) Reject(ctx context.Context, r organization.InvitationRejectOperationRequest, network string) (out organization.StoreResult, err error)
Reject initiates a naturally repeatable exact-version invitation rejection. It allocates the command internally and uses the existing native preparation and execution once. The current verified intended recipient needs neither membership, manager/Get permission nor an invitation proof. Network is the transport's trusted canonical full client address. Install the optional InvitationRejectOperationMigrationSource before selecting this API.
Reconstructed matching committed requests return the actual original receipt under current recipient/session authority. CorrelationID is diagnostic only; a rejected/absent row or legacy NULL correlation is never historical success. Unknown execution returns immediately without another attempt. Retain its receipt binding for existing Recover: a committed-effect lookup cannot identify an unattached or uncommitted original from natural request syntax alone.
type InvitationServiceConfig ¶
type InvitationServiceConfig struct {
Core organization.Config
Invitation organization.InvitationConfig
Admission ContributorConfig
Sessions *session.SessionService
Authorization authorization.Service
Coordinator kernel.CoordinatorConfig
Risk *riskpg.Repository
Issuer issuerpg.IssuerConfig
Preparation issuerpg.IssuancePreparationConfig
Delivery InvitationDeliveryConfig
}
InvitationServiceConfig selects the finite genuine-password-session profile. Coordinator is the existing kernel's configuration, not an application UOW; each immutable prepared invocation enlists its native phase in that sole kernel with actual capability, audit, risk and paired-lifecycle owners. Session/issuer/envelope keys and borrowed owners must outlive pending work. Install membership, invitation-read, invitation-capability and (for cancel) invitation-cancellation, (for reject) invitation-rejection and (for expire) invitation-expiry and (for resend) invitation-resend migrations plus all selected shared owner migrations before invoking this service.
func (InvitationServiceConfig) MarshalJSON ¶
func (InvitationServiceConfig) MarshalJSON() ([]byte, error)
func (InvitationServiceConfig) MarshalText ¶
func (InvitationServiceConfig) MarshalText() ([]byte, error)
type LeaveOperationLookupMigrationSource ¶
type LeaveOperationLookupMigrationSource struct{ Version migrations.Version }
LeaveOperationLookupMigrationSource installs the exact-epoch natural self- leave lookup. Allocate a new version, or use a separate migration namespace; do not insert this step into previously installed invitation history. The existing organization lock permits only one committed leave per epoch. This partial unique index adds one narrow index entry per committed leave, not a new journal. Concurrent builds run outside transactions; interrupted/invalid indexes require explicit operator reconciliation before enabling the facade.
func (LeaveOperationLookupMigrationSource) Load ¶
func (s LeaveOperationLookupMigrationSource) Load(ctx context.Context) ([]migrations.Migration, error)
Load returns a detached forward-only concurrent index migration without IO.
type LeaveOperationLookupTransactionalMigrationSource ¶
type LeaveOperationLookupTransactionalMigrationSource struct{ Version migrations.Version }
LeaveOperationLookupTransactionalMigrationSource selects a blocking atomic build of the same partial index instead of the concurrent source, never after or alongside it. Its distinct checksum cannot adopt concurrent history. Select bounded transaction/lock timeouts and a maintenance window: PostgreSQL blocks command-effect writes during this build. It is not runtime DML setup.
func (LeaveOperationLookupTransactionalMigrationSource) Load ¶
func (s LeaveOperationLookupTransactionalMigrationSource) Load(ctx context.Context) ([]migrations.Migration, error)
Load preserves native version/context validation and the exact index shape.
type LifecycleMigrationSource ¶
type LifecycleMigrationSource struct{ Version migrations.Version }
LifecycleMigrationSource follows installed organization migrations, including InvitationResendMigrationSource when invitations are installed. It preserves child identities and permits truthful system cancellation after natural expiry; an archive must not invent a cancellation timestamp before its actual commit.
func (LifecycleMigrationSource) Load ¶
func (s LifecycleMigrationSource) Load(ctx context.Context) ([]migrations.Migration, error)
type MigrationSource ¶
type MigrationSource struct{ Version migrations.Version }
MigrationSource installs only this owner's forward-only schema. Version must be permanently allocated after the identity and authorization owner migrations in the composition's one migration history. Existing unmanaged objects fail.
func (MigrationSource) Load ¶
func (s MigrationSource) Load(ctx context.Context) ([]migrations.Migration, error)
type OperationCustodyConfig ¶
type OperationCustodyConfig struct {
// contains filtered or unexported fields
}
OperationCustodyConfig is closed native encryption configuration for safe original request correlation. Keys are copied and have no public projection. Keep retained envelope keys while any original mapping needs recovery; active key rotation must not discard them. Zero configuration is invalid.
func NewOperationCustodyConfig ¶
func NewOperationCustodyConfig(active string, keys map[string][]byte) (OperationCustodyConfig, error)
NewOperationCustodyConfig validates one selected AES-256 envelope key and up to sixteen retained keys without IO. It copies caller-owned material; neither raw session bearers nor client idempotency keys enter retained ciphertext.
func (OperationCustodyConfig) Format ¶
func (OperationCustodyConfig) Format(s fmt.State, _ rune)
Format redacts encryption key custody.
func (OperationCustodyConfig) MarshalJSON ¶
func (OperationCustodyConfig) MarshalJSON() ([]byte, error)
MarshalJSON rejects implicit key export.
func (OperationCustodyConfig) MarshalText ¶
func (OperationCustodyConfig) MarshalText() ([]byte, error)
MarshalText rejects implicit key export.
type OperationLookupMigrationSource ¶
type OperationLookupMigrationSource struct {
Version migrations.Version
}
OperationLookupMigrationSource appends the natural repeat-removal access path to existing installed organization history without changing its checksums. The native organization epoch lock already permits at most one committed removal per tenant/org/before-version; this partial unique index makes that lookup bounded without indexing unrelated command effects. Install the later allocated version before enabling the facade. The concurrent build runs outside transactions; interrupted/invalid builds need explicit reconciliation. No destructive down migration or new command/result authority is introduced.
func (OperationLookupMigrationSource) Load ¶
func (s OperationLookupMigrationSource) Load(ctx context.Context) ([]migrations.Migration, error)
Load returns one detached forward-only nontransactional index migration. Nil/cancelled context and invalid versions fail without IO or mutation.
type OperationLookupTransactionalMigrationSource ¶
type OperationLookupTransactionalMigrationSource struct{ Version migrations.Version }
OperationLookupTransactionalMigrationSource explicitly selects a blocking, transactional build of OperationLookupMigrationSource's exact partial unique index. Use it instead of, never after or alongside, the concurrent source at the allocated version. Its distinct identity cannot adopt concurrent history. PostgreSQL blocks writes during this build: operators must select a bounded maintenance window and transaction/lock timeouts before applying it. This is suitable for atomic migration commands, not automatic runtime DML activation.
func (OperationLookupTransactionalMigrationSource) Load ¶
func (s OperationLookupTransactionalMigrationSource) Load(ctx context.Context) ([]migrations.Migration, error)
Load preserves the native source's version/context validation and returns one detached forward-only transactional migration without IO or mutation.
type OperationService ¶
type OperationService struct {
// contains filtered or unexported fields
}
OperationService provides storage-neutral request signatures usable directly by an optional HTTP integration. It owns no competing journal, session engine or retry store and starts no goroutines. Matching keyed retries recover only the exact original outcome; they never prepare or execute fresh authority. Concurrent calls use isolated native participants. It borrows the source Service and primary for its lifetime; no Close or background cleanup is owned.
func NewOperationService ¶
func NewOperationService(source *Service, c OperationServiceConfig) (*OperationService, error)
NewOperationService validates composition without SQL, callbacks or mutation. Existing RequestKeyMigrationSource and RequestKeyPreparationMigrationSource must be installed. OperationLookupMigrationSource supplies removal's bounded natural-request lookup; no client Idempotency-Key exists for removal.
func (*OperationService) AddMember ¶
func (s *OperationService) AddMember(ctx context.Context, r organization.AddMemberOperationRequest, network string) (organization.StoreResult, error)
AddMember atomically admits one exact target/role/version request through the existing native member, authority, protected-risk, audit and lifecycle owners. Matching keys recover even after the original organization epoch advances.
func (*OperationService) AddTeamMember ¶
func (s *OperationService) AddTeamMember(ctx context.Context, r organization.AddTeamMemberOperationRequest, network string) (organization.StoreResult, error)
AddTeamMember admits an exact organization admission and team binding through the existing native team owner. IDs and all four expected versions are key intent; CorrelationID is diagnostic only. Matching retries recover the original receipt under current manager/session authority, never prepare or execute again after an unknown outcome. Network is the trusted canonical full client IP.
func (*OperationService) Archive ¶
func (s *OperationService) Archive(ctx context.Context, r organization.LifecycleOperationRequest, network string) (organization.StoreResult, error)
Archive admits an original key through the selected native owner/action-proof profile. Its exact native preparation retains signed proof custody, original observations and rate facts; execution atomically archives the organization, cancels pending invitations and consumes the original proof. Matching retries disclose only original metadata under current session and owner authority.
func (*OperationService) AssignDynamicRole ¶
func (s *OperationService) AssignDynamicRole(ctx context.Context, r organization.AssignDynamicRoleOperationRequest, network string) (organization.StoreResult, error)
AssignDynamicRole admits one original keyed direct assignment through the existing native role, membership and scoped-authority owner. The exact role, target and all four epochs are immutable intent; matching retries disclose only the original outcome under current role-action/session/query authority, never renew a grant or execute an unknown result. Network is the transport's trusted canonical full client IP. For team-targeted bindings, use AssignTeamDynamicRole.
func (*OperationService) AssignTeamDynamicRole ¶
func (s *OperationService) AssignTeamDynamicRole(ctx context.Context, r organization.AssignTeamDynamicRoleOperationRequest, network string) (organization.StoreResult, error)
AssignTeamDynamicRole admits one original keyed team-targeted assignment through the existing native role/team owner. All identities and four epochs are immutable intent; no human target is supplied or impersonated. Matching retries disclose the original result under current native manager/session, role-action and query authority, never renew a grant or execute an unknown result. Network is the transport's trusted canonical full client IP.
func (*OperationService) CheckPermission ¶
func (s *OperationService) CheckPermission(ctx context.Context, r organization.PermissionCheckRequest) (authorization.Decision, error)
CheckPermission delegates actual current direct/team statement evaluation and deny precedence. A returned allow is not a lease; exact policy epochs and all native current session/membership fences remain mandatory on every check.
func (*OperationService) Create ¶
func (s *OperationService) Create(ctx context.Context, r organization.CreateOperationRequest, network string) (organization.StoreResult, error)
Create admits one original scoped key, allocates a canonical organization ID, and executes the existing native organization/owner transition. Retry uses current-authorized original recovery, never another ID or fresh preparation. Network must be the transport's trusted canonical full client address.
func (*OperationService) CreateDynamicRole ¶
func (s *OperationService) CreateDynamicRole(ctx context.Context, r organization.CreateDynamicRoleOperationRequest, network string) (organization.StoreResult, error)
CreateDynamicRole admits one original key and chosen role identity through the existing native catalog/role owner. Ordered statements are frozen before any callbacks or IO. Matching retries recover only the original outcome under current role-write/session/query authority, never reexecute an unknown result. Network is the transport's trusted canonical full client IP.
func (*OperationService) CreateTeam ¶
func (s *OperationService) CreateTeam(ctx context.Context, r organization.CreateTeamOperationRequest, network string) (organization.StoreResult, error)
CreateTeam admits one original key for creation of an empty team with the chosen canonical ID, exact organization version and bounded name. The existing native team owner enforces current manager/session authority, quotas and the atomic team, organization-epoch, audit and lifecycle effects. No organization or team ID is allocated by this operation; the command remains owner-allocated.
Matching key/intent retries recover only the original outcome under current disclosure authority, never prepare another team, renew authority or execute again after an unknown result. Network is the trusted canonical client IP.
func (*OperationService) DeleteDynamicRole ¶
func (s *OperationService) DeleteDynamicRole(ctx context.Context, r organization.DeleteDynamicRoleOperationRequest, network string) (out organization.StoreResult, err error)
DeleteDynamicRole naturally repeats exact-version terminal retirement without a key or caller command. Install DynamicRoleDeleteOperationLookupMigrationSource before selecting it. Only matching original effect correlation and the real native receipt prove success; terminal state alone never does. Unknown results return immediately: retain their binding for RecoverOperation. Current actual role-write/session/query authority remains required, even for changed-selector classification. Network is the trusted canonical full client IP.
func (*OperationService) DeleteTeam ¶
func (s *OperationService) DeleteTeam(ctx context.Context, r organization.DeleteTeamOperationRequest, network string) (out organization.StoreResult, err error)
DeleteTeam naturally repeats terminal deletion at exact organization/team epochs without a client key or command. Install TeamDeleteOperationLookupMigrationSource before selecting this API. Only actual original effect correlation and native receipts establish prior success; absence/tombstones never do. Current team-write, session and query authorization still apply. Unknown execution returns immediately without another attempt; retain its binding for RecoverOperation. Network is the trusted canonical full client IP.
func (OperationService) Format ¶
func (OperationService) Format(s fmt.State, _ rune)
Format prevents traversal of borrowed source owners and secret configuration.
func (*OperationService) Get ¶
func (s *OperationService) Get(ctx context.Context, r organization.ReadRequest) (organization.View, error)
Get delegates current authenticated/authorized bounded primary reading to the existing owner. HTTP rate.safe remains the selected transport owner's policy; direct callers explicitly select the existing uncached native read policy.
func (*OperationService) GetActiveOrganization ¶
func (s *OperationService) GetActiveOrganization(ctx context.Context, r organization.ActiveOrganizationReadRequest) (organization.ActiveOrganizationView, error)
GetActiveOrganization delegates current selected authority and policy to the native owner; it returns no selection metadata on any denied read.
func (*OperationService) GetDynamicRole ¶
func (s *OperationService) GetDynamicRole(ctx context.Context, r organization.DynamicRoleReadRequest) (organization.View, error)
GetDynamicRole delegates exact current role/binding discovery to the existing native reader, including role-read and final session/policy fences.
func (*OperationService) GetTeam ¶
func (s *OperationService) GetTeam(ctx context.Context, r organization.TeamReadRequest) (organization.View, error)
GetTeam delegates the existing exact manager-only team read. Team-read, current session/scoped authority and lifecycle enablement stay native-owned.
func (*OperationService) LeaveMember ¶
func (s *OperationService) LeaveMember(ctx context.Context, r organization.LeaveMemberOperationRequest, network string) (out organization.StoreResult, err error)
LeaveMember removes only the currently authenticated human from the selected exact organization epoch. It allocates the command internally and uses the existing protected leave transition. A natural repeat discloses only an actual original receipt under current verified-self and disclosure policy, including after departure. Absence alone is not success; old intent conflicts with an active readmission. Unknown execution is returned without another attempt. Install one LeaveOperationLookup migration variant before enabling this API.
func (*OperationService) ListDynamicRoles ¶
func (s *OperationService) ListDynamicRoles(ctx context.Context, r organization.DynamicRoleReadRequest) (organization.View, error)
ListDynamicRoles delegates the existing current custom-role keyset page; static roles remain the closed Role constants, not fabricated custom rows.
func (*OperationService) ListMembers ¶
func (s *OperationService) ListMembers(ctx context.Context, r organization.ReadRequest) (organization.View, error)
ListMembers delegates the existing exclusive UserID cursor and bounded page contract; it neither caches authority nor mutates session activity.
func (*OperationService) ListMyTeams ¶
func (s *OperationService) ListMyTeams(ctx context.Context, r organization.TeamReadRequest) (organization.View, error)
ListMyTeams reads current exact-admission bindings from the existing native primary. It creates no cache, authority projection or request-key admission.
func (*OperationService) ListOrganizations ¶
func (s *OperationService) ListOrganizations(ctx context.Context, request organization.ListOrganizationsRequest) (organization.ListOrganizationsResult, error)
ListOrganizations delegates the current authenticated subject's bounded listing to the borrowed source Service. Limit remains explicitly required; no request-key admission, organization allocation or authority cache is added.
func (*OperationService) ListTeamMembers ¶
func (s *OperationService) ListTeamMembers(ctx context.Context, r organization.TeamReadRequest) (organization.View, error)
ListTeamMembers preserves the native bounded cursor and current manager or exact team-member read authority, without mutating session activity.
func (OperationService) MarshalJSON ¶
func (OperationService) MarshalJSON() ([]byte, error)
MarshalJSON rejects implicit export of runtime owners.
func (OperationService) MarshalText ¶
func (OperationService) MarshalText() ([]byte, error)
MarshalText rejects implicit export of runtime owners.
func (*OperationService) OwnerTransfer ¶
func (s *OperationService) OwnerTransfer(ctx context.Context, r organization.OwnerTransferOperationRequest, network string) (organization.StoreResult, error)
OwnerTransfer admits one original key through the existing native transfer and password action-proof owners. The authenticated current owner transfers to an existing active member at the exact organization and both membership versions; the former owner becomes a member. Signed original proof custody, current session/factor fences and atomic role/authority/audit/outbox effects remain owned by PrepareOwnerTransfer and Execute. Matching retries recover only the original outcome under current disclosure policy, including the original former owner while still a current member. They never prepare or execute again, replace the proof or renew original authority. Network must be the transport's trusted canonical full client address.
func (*OperationService) RecoverOperation ¶
func (s *OperationService) RecoverOperation(ctx context.Context, r organization.OperationRecoveryRequest) (organization.StoreResult, error)
RecoverOperation authenticates current disclosure authority and reconciles only the exact original safe binding. It never executes or renews a command.
func (*OperationService) RemoveMember ¶
func (s *OperationService) RemoveMember(ctx context.Context, r organization.RemoveMemberOperationRequest, network string) (out organization.StoreResult, err error)
RemoveMember preserves the canonical non-keyed repeat contract. Exact organization/target versions arbitrate competing native removals; a repeat can disclose only a real matching command effect and its original kernel receipt under current authentication and disclosure policy. Absence alone is not success. A newer re-admission never becomes removable through old input. Unknown execution is returned without another mutation attempt.
func (*OperationService) RemoveTeamMember ¶
func (s *OperationService) RemoveTeamMember(ctx context.Context, r organization.RemoveTeamMemberOperationRequest, network string) (out organization.StoreResult, err error)
RemoveTeamMember naturally repeats an exact binding removal without a caller command or key. Install TeamMemberOperationLookupMigrationSource first. Only actual correlated effects and their original native receipts establish prior success; absent or legacy rows never do. A newer organization admission or team binding conflicts. Unknown execution returns immediately, without another attempt; retain its binding for RecoverOperation. Network is a trusted IP.
func (*OperationService) Restore ¶
func (s *OperationService) Restore(ctx context.Context, r organization.LifecycleOperationRequest, network string) (organization.StoreResult, error)
Restore requires a fresh native restore-bound password proof and an archived organization at the exact version. It restores surviving rights without reviving cancelled invitations or other terminal child authority. Matching keys recover the original outcome without renewing or consuming authority.
func (*OperationService) RevokeDynamicRole ¶
func (s *OperationService) RevokeDynamicRole(ctx context.Context, r organization.RevokeDynamicRoleOperationRequest, network string) (out organization.StoreResult, err error)
RevokeDynamicRole naturally repeats revocation of one exact direct binding, without a client key or command. Install RoleBindingRevokeOperationLookupMigrationSource before selection. Only matching original effect correlation and the actual native receipt establish success, never an absent/inactive binding. A new assignment or admission cannot be reached by old selectors. This does not revoke unrelated direct/team grants. Current manager/session, actual role action and query authority apply before historical classification and after final binding IO. Unknown execution returns immediately; retain its original binding for explicit recovery. Network is the trusted canonical full client IP.
func (*OperationService) RevokeTeamDynamicRole ¶
func (s *OperationService) RevokeTeamDynamicRole(ctx context.Context, r organization.RevokeTeamDynamicRoleOperationRequest, network string) (out organization.StoreResult, err error)
RevokeTeamDynamicRole naturally repeats one exact team-role revocation without a caller command or key. Install TeamRoleBindingRevokeOperationLookupMigrationSource before selection. Only original correlated effects and the actual native receipt establish success, never missing bindings or tombstones alone. Current native manager/session, actual role-action and original query authority apply before historical classification and after final binding IO. New assignments and terminal teams cannot be reached by old selectors. Unknown execution is never replayed; retain its original binding for explicit RecoverOperation. Network is the trusted canonical full client IP.
func (*OperationService) SetActiveOrganization ¶
func (s *OperationService) SetActiveOrganization(ctx context.Context, r organization.ActiveOrganizationOperationRequest, network string) (organization.StoreResult, error)
SetActiveOrganization binds one original key to exact session and requested organization/absence, never observed CAS/authority. A retained matching key recovers status under current exact-session authority; it cannot re-prepare, renew or replay a selection. The existing coordinator is the sole journal.
func (*OperationService) SlugAvailable ¶
func (s *OperationService) SlugAvailable(ctx context.Context, request organization.SlugAvailableRequest) (organization.SlugAvailableResult, error)
SlugAvailable delegates the existing authenticated advisory read to the borrowed source Service. It neither admits a request key nor allocates an organization/command, and retains the source's current-authority checks.
func (*OperationService) Update ¶
func (s *OperationService) Update(ctx context.Context, r organization.UpdateOperationRequest, network string) (organization.StoreResult, error)
Update admits one original key for bounded name/slug replacement at the exact expected organization version. The existing native metadata owner checks current owner/administrator authority and performs the protected transition. Matching retries recover the original outcome under current disclosure authority, never prepare newer metadata, renew authority or execute again. Network must be the transport's trusted canonical full client address.
func (*OperationService) UpdateDynamicRole ¶
func (s *OperationService) UpdateDynamicRole(ctx context.Context, r organization.UpdateDynamicRoleOperationRequest, network string) (organization.StoreResult, error)
UpdateDynamicRole replaces the complete ordered name/statements at exact organization/role epochs through the real native owner. Borrowed statements are frozen before callbacks; the immutable catalog remains native policy. Original-key retries recover, never renew authority or execute again after an unknown result. Network is the trusted canonical full client IP.
func (*OperationService) UpdateMember ¶
func (s *OperationService) UpdateMember(ctx context.Context, r organization.UpdateMemberOperationRequest, network string) (organization.StoreResult, error)
UpdateMember admits one original key for an exact-version static-role change. The existing native member owner retains current owner/administrator and scoped authority checks, owner transitions, last-owner safety and atomic protected effects. Matching retries recover only the original outcome under current disclosure policy, including legitimate self-demotion history; they never prepare a new mutation, refresh versions or renew original authority. Network must be the transport's trusted canonical full client address.
func (*OperationService) UpdateTeam ¶
func (s *OperationService) UpdateTeam(ctx context.Context, r organization.UpdateTeamOperationRequest, network string) (organization.StoreResult, error)
UpdateTeam replaces the bounded name at exact organization/team epochs using one original key and the existing native lifecycle owner. Matching retries recover only the original receipt under current team-write/session and query authority, never execute again or renew original authority after an unknown outcome. Network is the transport's trusted canonical full client IP.
type OperationServiceConfig ¶
type OperationServiceConfig struct {
ConfigurationID string
Coordinator kernel.CoordinatorConfig
RequestKeys kernel.RequestKeyConfig
Custody OperationCustodyConfig
NewOrganizationID func(context.Context) (organization.ID, error)
}
OperationServiceConfig opts into direct create/update/add/role-update, selected archive/restore and repeat removal using the existing Service's real native owners. ConfigurationID is a fixed trusted deployment profile (1..128 bytes), not request data; change it for material selected-policy changes. Coordinator/RequestKeys select the sole existing kernel journal and immutable mapping, with current query/admission policy. NewOrganizationID is a bounded concurrency-safe canonical-ID source, called only for missing-key preparation candidates; races may discard candidates. No callback runs under SQL locks. Pools, services and policies remain borrowed. This opt-in profile selects native default audit limits and the fixed native lifecycle contributor; it does not inherit private custom registry limits.
func (OperationServiceConfig) Format ¶
func (OperationServiceConfig) Format(s fmt.State, _ rune)
Format redacts coordinator keys, callbacks and borrowed policies.
func (OperationServiceConfig) MarshalJSON ¶
func (OperationServiceConfig) MarshalJSON() ([]byte, error)
MarshalJSON rejects implicit configuration export.
func (OperationServiceConfig) MarshalText ¶
func (OperationServiceConfig) MarshalText() ([]byte, error)
MarshalText rejects implicit configuration export.
type PreparedCommand ¶
type PreparedCommand struct {
// contains filtered or unexported fields
}
PreparedCommand retains one exact original keyed command and native plan. Zero is invalid; copies share immutable bearer custody, not another attempt. Preserve this value across bounded Execute retries; preparing again would create a different observation and is not an idempotent retry. After expiry or an unknown outcome, use Recovery with current authentication instead.
func (PreparedCommand) MarshalJSON ¶
func (PreparedCommand) MarshalJSON() ([]byte, error)
func (PreparedCommand) MarshalText ¶
func (PreparedCommand) MarshalText() ([]byte, error)
func (PreparedCommand) Recovery ¶
func (p PreparedCommand) Recovery() (Recovery, error)
Example ¶
package main
import (
"context"
"fmt"
identity "github.com/faustbrian/go-identity"
organization "github.com/faustbrian/go-organization"
organizationpg "github.com/faustbrian/go-organization/postgres"
)
// createOrganization illustrates the public boundary after constructing the
// real migrated native composition described in README.md. Production callers
// durably retain recovery before Execute and reconcile Unknown outcomes.
func createOrganization(ctx context.Context, service *organizationpg.Service, auth organization.Authentication, id organization.ID, command identity.CommandID) (organization.StoreResult, organizationpg.Recovery, error) {
p, e := service.PrepareCreate(ctx, organization.CreateRequest{Authentication: auth, CommandID: command, ID: id, Slug: "example", Name: "Example", CorrelationID: "create-example"}, "127.0.0.1")
if e != nil {
return organization.StoreResult{}, organizationpg.Recovery{}, e
}
r, e := p.Recovery()
if e != nil {
return organization.StoreResult{}, organizationpg.Recovery{}, e
}
out, e := service.Execute(ctx, p)
return out, r, e
}
func main() {
_, e := (organizationpg.PreparedCommand{}).Recovery()
fmt.Println(e == organization.ErrInvalidInput)
}
Output: true
type PreparedInvitation ¶
type PreparedInvitation struct {
// contains filtered or unexported fields
}
PreparedInvitation retains one exact native invocation. Copies share its original one-transfer generation custody; do not execute copies concurrently. Retry this value unchanged after known retryable outcomes; unknown commits require its safe Recovery scope, never a new ID or replacement proof.
func (PreparedInvitation) MarshalJSON ¶
func (PreparedInvitation) MarshalJSON() ([]byte, error)
func (PreparedInvitation) MarshalText ¶
func (PreparedInvitation) MarshalText() ([]byte, error)
func (PreparedInvitation) Recovery ¶
func (p PreparedInvitation) Recovery() (InvitationRecovery, error)
Recovery returns the original safe correlation before attempting execution.
type Recovery ¶
type Recovery struct{ Binding identity.CommandBinding }
Recovery contains only the original exact safe scope, never a bearer/proof. Persist it when an operation may outlive the process. It confers no access: Recover authenticates the current caller and applies current policy again.
type Repository ¶
type Repository struct {
// contains filtered or unexported fields
}
Repository supplies current uncached membership reads and delegates exact target user reads to the existing identity owner. Pool shutdown stays caller- owned. Immutable configuration permits concurrent independent operations.
func NewRepository ¶
func NewRepository(pool *database.Pool, c Config) (*Repository, error)
func (*Repository) GetDomainProof ¶
func (r *Repository) GetDomainProof(ctx context.Context, key organization.DomainProofKey) (organization.DomainProof, error)
GetDomainProof reads exact current primary domain/org/claim authority. It is an internal service-to-service authority port, not human authentication; use DomainEvidenceService for the authenticated membership/session facade.
func (*Repository) ObserveOrganizationSession ¶
func (r *Repository) ObserveOrganizationSession(ctx context.Context, record session.Session) (sessionpg.OrganizationSessionAuthorityObservation, error)
ObserveOrganizationSession supplies uncached current organization/member and scoped policy evidence to the session owner. Its original read start precedes all IO; the returned aggregate epoch is not the membership's policy epoch. It grants no permission, changes no state, and borrows this primary pool.
func (*Repository) Read ¶
func (r *Repository) Read(ctx context.Context, q organization.Query) (organization.View, error)
Read rechecks the actor's active membership and organization on every call. It is a trusted storage projection, not an authentication endpoint: public callers use Service, which supplies genuine session and policy admission. Pagination is exclusive bytewise UserID keyset over current committed state, not a retained snapshot; additions before the cursor require a new listing.
func (*Repository) ReadOrganizationSlug ¶
func (r *Repository) ReadOrganizationSlug(ctx context.Context, query organization.OrganizationSlugQuery) (organization.OrganizationSlugAvailability, error)
ReadOrganizationSlug implements a trusted current primary occupancy read, not an authentication endpoint. Existing UNIQUE(tenant_id,slug) includes archived rows, so filtering by active state would report occupied names free. The indexed existence query returns no organization ID/metadata, holds no reservation and releases its resources before the core's final admission.
func (*Repository) ReadOrganizations ¶
func (r *Repository) ReadOrganizations(ctx context.Context, query organization.OrganizationListQuery) ([]organization.OrganizationListEntry, error)
ReadOrganizations is a trusted current primary projection, not an authentication endpoint. MaximumRows is the selected per-user cap (1..1000); one additional matching candidate detects cap violations without false EOF. The existing active (tenant,user,organization) membership index supports the exclusive C-collation keyset. Rows close before borrowing the authority owner, so a one-connection pool cannot deadlock on its own open cursor. No caller callback runs in a transaction or under an organization lock.
func (*Repository) RequireOrganizationSession ¶
func (r *Repository) RequireOrganizationSession(ctx context.Context, w kernel.Work, owner kernel.FeatureExecutionContributor, record session.Session) error
RequireOrganizationSession fences the exact original selected aggregate and membership under retained SHARE locks in the caller's existing Work. It owns no transaction and must be called only after the session owner's row locks. It also serves selected session revocation; no competing selection is stored.
type RoleBindingRevokeOperationLookupMigrationSource ¶
type RoleBindingRevokeOperationLookupMigrationSource struct{ Version migrations.Version }
RoleBindingRevokeOperationLookupMigrationSource extends existing atomic effects with nullable original direct-revocation selectors after DynamicRoleMigrationSource, at an unused permanent version. Legacy effects remain NULL: absent/inactive bindings cannot backfill original intent. Raw explicit direct/team writers need no optional schema. The transactional index build blocks writes; use a bounded maintenance window with lock/transaction timeouts before activation. No new journal, cache, permission source or authority is introduced.
func (RoleBindingRevokeOperationLookupMigrationSource) Load ¶
func (s RoleBindingRevokeOperationLookupMigrationSource) Load(ctx context.Context) ([]migrations.Migration, error)
Load returns one atomic forward migration without IO or partial results.
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
Service provides native public organization operations without application- written domain stores, transaction glue, private authority or retry journals. Explicit bearer transport is supported. Active organization selection requires ContributorConfig.ActiveOrganization and the selected native session reader; cookie/MFA/passkey selection and an HTTP selection handler are not provided.
func NewService ¶
func NewService(p *Contributor, c ServiceConfig) (*Service, error)
func (*Service) CheckPermission ¶
func (s *Service) CheckPermission(ctx context.Context, r organization.PermissionCheckRequest) (authorization.Decision, error)
func (*Service) DomainEvidence ¶
func (s *Service) DomainEvidence(a organization.Authentication, network string, recovery ...Recovery) (*DomainEvidenceService, error)
DomainEvidence selects this finite native profile. Observation is configured on ContributorConfig.DomainEvidence, never supplied by an untrusted request. Optional original Recovery scope enables exact not-committed/unknown recovery after process loss. It grants nothing without current original-actor authority.
func (*Service) Execute ¶
func (s *Service) Execute(ctx context.Context, p PreparedCommand) (organization.StoreResult, error)
Execute attempts the exact prepared mutation once through the native scoped UnitOfWork. A repeated identical command reuses the coordinator's receipt; it never regenerates IDs, authority, counters, effects or credentials.
func (*Service) Get ¶
func (s *Service) Get(ctx context.Context, r organization.ReadRequest) (organization.View, error)
func (*Service) GetActiveOrganization ¶
func (s *Service) GetActiveOrganization(ctx context.Context, r organization.ActiveOrganizationReadRequest) (organization.ActiveOrganizationView, error)
GetActiveOrganization reads current session-owned selection with current membership, aggregate epoch and action policy. Denials return a zero view; neither reads nor selection change the original activity or bearer lifetime.
func (*Service) GetDomainClaim ¶
func (s *Service) GetDomainClaim(ctx context.Context, r organization.DomainClaimReadRequest) (organization.View, error)
func (*Service) GetDynamicRole ¶
func (s *Service) GetDynamicRole(ctx context.Context, r organization.DynamicRoleReadRequest) (organization.View, error)
func (*Service) GetLifecycle ¶
func (s *Service) GetLifecycle(ctx context.Context, r organization.ReadRequest) (organization.View, error)
GetLifecycle is the current owner's narrow active/archived metadata view.
func (*Service) GetTeam ¶
func (s *Service) GetTeam(ctx context.Context, r organization.TeamReadRequest) (organization.View, error)
func (*Service) ListDynamicRoles ¶
func (s *Service) ListDynamicRoles(ctx context.Context, r organization.DynamicRoleReadRequest) (organization.View, error)
func (*Service) ListMembers ¶
func (s *Service) ListMembers(ctx context.Context, r organization.ReadRequest) (organization.View, error)
func (*Service) ListMyTeams ¶
func (s *Service) ListMyTeams(ctx context.Context, r organization.TeamReadRequest) (organization.View, error)
func (*Service) ListOrganizations ¶
func (s *Service) ListOrganizations(ctx context.Context, request organization.ListOrganizationsRequest) (organization.ListOrganizationsResult, error)
ListOrganizations reads current visible organizations for the authenticated human, never a caller-selected subject. It uses the existing primary session, membership, scoped authority and per-organization policy owners. Core repeats live admission after callbacks without extending original observation expiry.
func (*Service) ListTeamMembers ¶
func (s *Service) ListTeamMembers(ctx context.Context, r organization.TeamReadRequest) (organization.View, error)
func (*Service) ListTeams ¶
func (s *Service) ListTeams(ctx context.Context, r organization.TeamReadRequest) (organization.View, error)
func (*Service) PrepareActiveOrganization ¶
func (s *Service) PrepareActiveOrganization(ctx context.Context, r organization.ActiveOrganizationRequest, network string) (PreparedCommand, error)
PrepareActiveOrganization freezes an exact authenticated password/bearer session CAS and target membership. Empty OrganizationID explicitly clears. Execute enlists the session owner's effect in this participant's one Work. The opt-in contributor and selected native session reader are required.
func (*Service) PrepareAddMember ¶
func (s *Service) PrepareAddMember(ctx context.Context, r organization.MemberRequest, network string) (PreparedCommand, error)
func (*Service) PrepareAddTeamMember ¶
func (s *Service) PrepareAddTeamMember(ctx context.Context, r organization.TeamMemberRequest, network string) (PreparedCommand, error)
func (*Service) PrepareArchive ¶
func (s *Service) PrepareArchive(ctx context.Context, r organization.LifecycleRequest, network string) (PreparedCommand, error)
PrepareArchive authenticates current owner/action proof and freezes one exact native command. Execute owns the sole durable state/cancellation transition.
func (*Service) PrepareAssignDynamicRole ¶
func (s *Service) PrepareAssignDynamicRole(ctx context.Context, r organization.RoleBindingRequest, network string) (PreparedCommand, error)
func (*Service) PrepareAssignTeamDynamicRole ¶
func (s *Service) PrepareAssignTeamDynamicRole(ctx context.Context, r organization.TeamRoleBindingRequest, network string) (PreparedCommand, error)
PrepareAssignTeamDynamicRole uses the existing role.assign action, native protected counters and one coordinator; the command explicitly tags its team.
func (*Service) PrepareCreate ¶
func (s *Service) PrepareCreate(ctx context.Context, r organization.CreateRequest, network string) (PreparedCommand, error)
PrepareCreate authenticates/authorizes, then freezes native privileged counter admission and the plan using primary time. Network is a trusted canonical full client IP resolved by the embedding transport, not an arbitrary header. No organization mutation/reservation occurs until Execute.
func (*Service) PrepareCreateDynamicRole ¶
func (s *Service) PrepareCreateDynamicRole(ctx context.Context, r organization.DynamicRoleRequest, network string) (PreparedCommand, error)
func (*Service) PrepareCreateTeam ¶
func (s *Service) PrepareCreateTeam(ctx context.Context, r organization.CreateTeamRequest, network string) (PreparedCommand, error)
Public team operations use exactly the existing admission, native plan and one-command coordinator. No team store or transaction glue is caller-written.
func (*Service) PrepareDeleteDynamicRole ¶
func (s *Service) PrepareDeleteDynamicRole(ctx context.Context, r organization.DynamicRoleRequest, network string) (PreparedCommand, error)
func (*Service) PrepareDeleteTeam ¶
func (s *Service) PrepareDeleteTeam(ctx context.Context, r organization.DeleteTeamRequest, network string) (PreparedCommand, error)
func (*Service) PrepareLeaveMember ¶
func (s *Service) PrepareLeaveMember(ctx context.Context, r organization.LeaveRequest, network string) (PreparedCommand, error)
PrepareLeaveMember freezes a self-only membership departure, not an administrator removal grant. The same coordinator atomically tombstones the membership and advances organization/scoped authority with removal effects.
func (*Service) PrepareOwnerTransfer ¶
func (s *Service) PrepareOwnerTransfer(ctx context.Context, r organization.OwnerTransferRequest, network string) (PreparedCommand, error)
PrepareOwnerTransfer freezes current fresh owner admission and both exact memberships in the existing keyed command. Execute atomically demotes the source to member, promotes the target and advances their scoped authority.
func (*Service) PrepareRemoveMember ¶
func (s *Service) PrepareRemoveMember(ctx context.Context, r organization.MemberRequest, network string) (PreparedCommand, error)
func (*Service) PrepareRemoveTeamMember ¶
func (s *Service) PrepareRemoveTeamMember(ctx context.Context, r organization.TeamMemberRequest, network string) (PreparedCommand, error)
func (*Service) PrepareReserveDomain ¶
func (s *Service) PrepareReserveDomain(ctx context.Context, r organization.DomainClaimRequest, network string) (PreparedCommand, error)
func (*Service) PrepareRestore ¶
func (s *Service) PrepareRestore(ctx context.Context, r organization.LifecycleRequest, network string) (PreparedCommand, error)
PrepareRestore requires a distinct current action-bound proof, not an archive receipt or retained grant. It never recreates terminal child authority.
func (*Service) PrepareRevokeDynamicRole ¶
func (s *Service) PrepareRevokeDynamicRole(ctx context.Context, r organization.RoleBindingRequest, network string) (PreparedCommand, error)
func (*Service) PrepareRevokeTeamDynamicRole ¶
func (s *Service) PrepareRevokeTeamDynamicRole(ctx context.Context, r organization.TeamRoleBindingRequest, network string) (PreparedCommand, error)
PrepareRevokeTeamDynamicRole removes one exact team-targeted role assignment.
func (*Service) PrepareUpdate ¶
func (s *Service) PrepareUpdate(ctx context.Context, r organization.UpdateRequest, network string) (PreparedCommand, error)
PrepareUpdate freezes a bounded Name/Slug replacement with current owner or administrator admission, the expected organization version and native privileged counters. Execute performs the sole durable attempt; Recover reconciles its exact command without replaying a lost commit response.
func (*Service) PrepareUpdateDynamicRole ¶
func (s *Service) PrepareUpdateDynamicRole(ctx context.Context, r organization.DynamicRoleRequest, network string) (PreparedCommand, error)
func (*Service) PrepareUpdateMember ¶
func (s *Service) PrepareUpdateMember(ctx context.Context, r organization.MemberRequest, network string) (PreparedCommand, error)
PrepareUpdateMember authenticates the current owner/administrator and freezes an exact active membership's static role/version change with native privileged admission. Execute atomically advances membership, scoped authority and the organization policy epoch with required protected audit and lifecycle effects.
func (*Service) PrepareUpdateTeam ¶
func (s *Service) PrepareUpdateTeam(ctx context.Context, r organization.UpdateTeamRequest, network string) (PreparedCommand, error)
func (*Service) PrepareWithdrawDomain ¶
func (s *Service) PrepareWithdrawDomain(ctx context.Context, r organization.DomainClaimRequest, network string) (PreparedCommand, error)
func (*Service) Recover ¶
func (s *Service) Recover(ctx context.Context, a organization.Authentication, r Recovery) (organization.StoreResult, error)
Recover discloses only the exact original scoped historical outcome after native current-session authentication and current recovery authorization. Membership operations additionally require the original actor's current durable membership; removal cannot become authority via a retained receipt. It never rebuilds or executes the original command, renews its expiry or reveals bearer material. Unknown remains unknown until primary reconciliation.
func (*Service) SlugAvailable ¶
func (s *Service) SlugAvailable(ctx context.Context, request organization.SlugAvailableRequest) (organization.SlugAvailableResult, error)
SlugAvailable checks one candidate through the existing authenticated core and current primary session/policy owners, without membership requirements. It returns no organization identity and never reserves a slug or executes a command. Create/update retain their authoritative uniqueness checks.
type ServiceConfig ¶
type ServiceConfig struct {
Core organization.Config
Sessions *session.SessionService
Authorization authorization.Service
Risk *riskpg.Repository
Coordinator *kernel.Coordinator
Registry *kernel.ContributorRegistry
}
ServiceConfig supplies actual native owners from the composition's immutable registry. Risk must select native protected counters and current lockouts; migrations are applied before use. The supplied coordinator is the sole transaction/result owner and must register Contributor, Risk, kernel, audit and lifecycle outbox. Core and contributor limits/policy must agree exactly. These borrowed owners must outlive calls. No background resources are owned.
func (ServiceConfig) MarshalJSON ¶
func (ServiceConfig) MarshalJSON() ([]byte, error)
func (ServiceConfig) MarshalText ¶
func (ServiceConfig) MarshalText() ([]byte, error)
type TeamDeleteOperationLookupMigrationSource ¶
type TeamDeleteOperationLookupMigrationSource struct{ Version migrations.Version }
TeamDeleteOperationLookupMigrationSource adds nullable exact natural-delete correlation to the existing effect after the organization/team lifecycle migrations, at an unused permanent version. Existing effects remain NULL; terminal state cannot backfill their original admission. Raw explicit team commands remain compatible without this optional migration. The transactional index build blocks writes: use a bounded operator maintenance window with lock/transaction timeouts before activation. No journal or authority is added.
func (TeamDeleteOperationLookupMigrationSource) Load ¶
func (s TeamDeleteOperationLookupMigrationSource) Load(ctx context.Context) ([]migrations.Migration, error)
Load returns one atomic forward migration without IO or partial results.
type TeamLifecycleMigrationSource ¶
type TeamLifecycleMigrationSource struct{ Version migrations.Version }
TeamLifecycleMigrationSource preserves installed membership migration bytes. Apply after TeamMigrationSource before selecting LifecycleVersion 1. Retained identities are immutable deletion tombstones, not a second authority engine. Existing readers deny deleted teams because only live teams remain in teams.
func (TeamLifecycleMigrationSource) Load ¶
func (s TeamLifecycleMigrationSource) Load(ctx context.Context) ([]migrations.Migration, error)
type TeamMemberOperationLookupMigrationSource ¶
type TeamMemberOperationLookupMigrationSource struct{ Version migrations.Version }
TeamMemberOperationLookupMigrationSource adds exact natural-removal selectors to existing command effects after the organization/team migrations. Choose an unused permanent version. Existing effects stay NULL: current rows do not prove their original team/admission versions. Raw explicit APIs need no migration. The transactional partial-index build blocks writes; install with bounded lock/transaction timeouts in an operator maintenance window before activation. This adds no journal, backfill, authority source or automatic runtime selection.
func (TeamMemberOperationLookupMigrationSource) Load ¶
func (s TeamMemberOperationLookupMigrationSource) Load(ctx context.Context) ([]migrations.Migration, error)
Load returns one forward-only atomic migration without IO. Invalid versions and nil/cancelled contexts fail without returning partial work.
type TeamMigrationSource ¶
type TeamMigrationSource struct{ Version migrations.Version }
TeamMigrationSource adds only teams and version-bound membership tombstones. Allocate Version after the installed organization migrations. No organization or member backfill, legacy checksum change or session selection is performed.
func (TeamMigrationSource) Load ¶
func (s TeamMigrationSource) Load(ctx context.Context) ([]migrations.Migration, error)
type TeamRoleBindingMigrationSource ¶
type TeamRoleBindingMigrationSource struct{ Version migrations.Version }
TeamRoleBindingMigrationSource adds bounded retained team-role assignments. Install after DynamicRoleMigrationSource and TeamLifecycleMigrationSource. Its team foreign key references terminal identities, not deletable live rows; deleting a team therefore denies all derived authority without per-user fan-out.
func (TeamRoleBindingMigrationSource) Load ¶
func (s TeamRoleBindingMigrationSource) Load(ctx context.Context) ([]migrations.Migration, error)
type TeamRoleBindingRevokeOperationLookupMigrationSource ¶
type TeamRoleBindingRevokeOperationLookupMigrationSource struct{ Version migrations.Version }
TeamRoleBindingRevokeOperationLookupMigrationSource extends existing atomic effects with nullable team-only original selectors after TeamRoleBindingMigrationSource, at an unused permanent version. Legacy and direct effects remain NULL; missing bindings cannot reconstruct history. Raw explicit writers need no optional schema. The transactional index build blocks writes: select a bounded operator maintenance window with lock/transaction timeouts before activation.
func (TeamRoleBindingRevokeOperationLookupMigrationSource) Load ¶
func (s TeamRoleBindingRevokeOperationLookupMigrationSource) Load(ctx context.Context) ([]migrations.Migration, error)
Load returns one atomic forward migration without IO or partial results.
Source Files
¶
- active_organization.go
- active_organization_authority.go
- active_organization_recovery.go
- apply.go
- contributor.go
- domain_claim.go
- domain_claim_migration.go
- domain_evidence.go
- domain_evidence_migration.go
- domain_evidence_source.go
- dynamic_role.go
- dynamic_role_migration.go
- dynamic_role_team.go
- invitation_acceptance.go
- invitation_apply.go
- invitation_cancel_migration.go
- invitation_cancel_operation.go
- invitation_cancel_operation_migration.go
- invitation_capability_migration.go
- invitation_expire_migration.go
- invitation_expire_operation.go
- invitation_expire_operation_migration.go
- invitation_migration.go
- invitation_mine.go
- invitation_operation.go
- invitation_phase.go
- invitation_preparation.go
- invitation_recipient_migration.go
- invitation_recovery.go
- invitation_reject_migration.go
- invitation_reject_operation.go
- invitation_reject_operation_migration.go
- invitation_repository.go
- invitation_resend.go
- invitation_resend_migration.go
- invitation_resend_operation.go
- invitation_service.go
- lifecycle.go
- operation_active_organization.go
- operation_dynamic_role.go
- operation_dynamic_role_migration.go
- operation_leave.go
- operation_leave_migration.go
- operation_leave_recovery.go
- operation_lifecycle.go
- operation_lookup_migration.go
- operation_owner_transfer.go
- operation_remove.go
- operation_role_binding.go
- operation_role_binding_migration.go
- operation_service.go
- operation_team_create.go
- operation_team_lifecycle.go
- operation_team_lifecycle_migration.go
- operation_team_member.go
- operation_team_member_migration.go
- operation_team_role_binding.go
- operation_team_role_binding_migration.go
- operation_update.go
- operation_update_member.go
- organization_list.go
- owner_transfer.go
- repository.go
- service.go
- slug_available.go
- team.go
- team_lifecycle.go
- team_lifecycle_migration.go
- team_migration.go
- transactional_index_migrations.go