82 lines
2.7 KiB
Go
82 lines
2.7 KiB
Go
package commit
|
|
|
|
import (
|
|
"git.cin.su/m/Assistant/contracts/authority"
|
|
"git.cin.su/m/Assistant/contracts/capability"
|
|
"git.cin.su/m/Assistant/contracts/continuity"
|
|
"git.cin.su/m/Assistant/contracts/identity"
|
|
"git.cin.su/m/Assistant/contracts/work"
|
|
"git.cin.su/m/Assistant/platform/ids"
|
|
)
|
|
|
|
type ActionIntentID ids.ID
|
|
type ActionAttemptID ids.ID
|
|
type AttemptID = ActionAttemptID
|
|
type AuthorizedActionID ids.ID
|
|
|
|
type ActionState string
|
|
|
|
const (
|
|
ActionProposed ActionState = "PROPOSED"
|
|
ActionAuthorized ActionState = "AUTHORIZED"
|
|
ActionExecuting ActionState = "EXECUTING"
|
|
ActionSucceeded ActionState = "SUCCEEDED"
|
|
ActionFailed ActionState = "FAILED"
|
|
ActionUnknownOutcome ActionState = "UNKNOWN_OUTCOME"
|
|
)
|
|
|
|
type ExternalOperation string
|
|
|
|
const (
|
|
CapabilityTestExecutor capability.CapabilityID = "test-executor"
|
|
CapabilityContinuityTransition capability.CapabilityID = "continuity-transition"
|
|
CapabilityProspectiveNotification capability.CapabilityID = "prospective-notification-delivery"
|
|
OperationTestIdempotentEffect ExternalOperation = "test-idempotent-effect"
|
|
OperationSatisfyDelivered ExternalOperation = "satisfy-delivered"
|
|
OperationDeliverProspectiveNotification ExternalOperation = "deliver-prospective-notification-v1"
|
|
)
|
|
|
|
const ProspectiveDeliveredTemplateV1 = "prospective-delivered-v1"
|
|
|
|
// ProspectiveNotificationSubject is immutable Commit evidence. Destination
|
|
// data is resolved from the exact Capability binding revision, never from UI.
|
|
type ProspectiveNotificationSubject struct {
|
|
ProspectiveItemID continuity.ProspectiveItemID
|
|
ExpectedRevision continuity.ProspectiveRevision
|
|
TemplateCode string
|
|
BindingID capability.CapabilityBindingID
|
|
BindingRevision int64
|
|
RenderedTitle string
|
|
RenderedMessage string
|
|
RequestDigest string
|
|
}
|
|
|
|
type ActionProposal struct {
|
|
IntentID ActionIntentID
|
|
ActorID identity.ActorID
|
|
CapabilityID capability.CapabilityID
|
|
Target work.TaskTarget
|
|
Operation ExternalOperation
|
|
ContinuitySubject continuity.SatisfyDeliveredSubject
|
|
NotificationSubject ProspectiveNotificationSubject
|
|
State ActionState
|
|
}
|
|
|
|
type AuthorizedAction struct {
|
|
ID AuthorizedActionID
|
|
Proposal ActionProposal
|
|
PrincipalID identity.PrincipalID
|
|
GrantID authority.GrantID
|
|
GrantRevision authority.AuthorityRevision
|
|
ScopeID authority.ScopeID
|
|
AuthorizedAtUnixMillis int64
|
|
State ActionState
|
|
}
|
|
|
|
type ActionAttempt struct {
|
|
ID ActionAttemptID
|
|
AuthorizedID AuthorizedActionID
|
|
IntentID ActionIntentID
|
|
State ActionState
|
|
}
|