@orchestraworks/cli 0.5.5 → 0.5.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/artifacts/prelude.js +10 -1
- package/dist/cli/api/execute.js +7 -7
- package/dist/cli/core/auth.d.ts +11 -1
- package/dist/cli/core/auth.js +48 -4
- package/dist/cli/core/errors.js +4 -0
- package/dist/cli/core/platform-client.d.ts +3 -2
- package/dist/cli/core/profile.d.ts +2 -2
- package/dist/cli/factory/apply-preview.d.ts +23 -6
- package/dist/cli/factory/apply-preview.js +70 -43
- package/dist/cli/factory/apply-render.js +12 -4
- package/dist/cli/factory/apply.d.ts +7 -2
- package/dist/cli/factory/apply.js +86 -29
- package/dist/cli/factory/diff.js +20 -12
- package/dist/cli/factory/image-upload.d.ts +90 -0
- package/dist/cli/factory/image-upload.js +489 -0
- package/dist/cli/factory/synth.d.ts +7 -0
- package/dist/cli/factory/synth.js +35 -0
- package/dist/cli/firstRun.d.ts +5 -5
- package/dist/cli/firstRun.js +18 -17
- package/dist/cli/main.d.ts +1 -1
- package/dist/cli/main.js +4 -3
- package/dist/cli/upload.d.ts +3 -1
- package/dist/cli/upload.js +9 -2
- package/dist/constructs/agent.d.ts +9 -1
- package/dist/constructs/agent.js +7 -0
- package/dist/constructs/compute-provider.js +2 -2
- package/dist/constructs/connection.d.ts +22 -16
- package/dist/constructs/connection.js +29 -92
- package/dist/constructs/connector.d.ts +3 -1
- package/dist/constructs/connector.js +2 -0
- package/dist/constructs/egress-preset.d.ts +7 -52
- package/dist/constructs/egress-preset.js +7 -91
- package/dist/constructs/environment.d.ts +47 -70
- package/dist/constructs/environment.js +103 -213
- package/dist/constructs/gateway-key.d.ts +4 -1
- package/dist/constructs/gateway-key.js +4 -3
- package/dist/constructs/interfaces.d.ts +10 -2
- package/dist/constructs/model-provider-key.js +2 -3
- package/dist/constructs/pipeline.d.ts +5 -2
- package/dist/constructs/pipeline.js +4 -0
- package/dist/constructs/references.d.ts +4 -0
- package/dist/constructs/references.js +20 -0
- package/dist/constructs/role.d.ts +32 -0
- package/dist/constructs/role.js +77 -0
- package/dist/constructs/rules.d.ts +4 -4
- package/dist/constructs/rules.js +3 -3
- package/dist/constructs/secret.d.ts +36 -13
- package/dist/constructs/secret.js +110 -14
- package/dist/constructs/service-account.d.ts +12 -0
- package/dist/constructs/service-account.js +23 -0
- package/dist/constructs/skill.d.ts +3 -1
- package/dist/constructs/skill.js +2 -0
- package/dist/constructs/team-membership.d.ts +43 -0
- package/dist/constructs/team-membership.js +59 -0
- package/dist/constructs/team.d.ts +40 -0
- package/dist/constructs/team.js +107 -0
- package/dist/constructs/trigger.d.ts +7 -4
- package/dist/constructs/trigger.js +4 -0
- package/dist/constructs/workflow.d.ts +1 -1
- package/dist/core/factory.d.ts +0 -7
- package/dist/core/factory.js +15 -53
- package/dist/core/gateway-key-recipe.js +23 -2
- package/dist/core/host-pattern.d.ts +5 -0
- package/dist/core/host-pattern.js +14 -0
- package/dist/core/labels.d.ts +1 -1
- package/dist/core/labels.js +1 -1
- package/dist/core/outbound-warning.d.ts +2 -2
- package/dist/core/outbound-warning.js +52 -41
- package/dist/core/plan.d.ts +14 -11
- package/dist/core/plan.js +12 -11
- package/dist/engine/apply-core.d.ts +71 -67
- package/dist/engine/apply-core.js +120 -95
- package/dist/engine/client.d.ts +12 -4
- package/dist/engine/client.js +8 -3
- package/dist/engine/compute-provider-reconcile.js +1 -1
- package/dist/engine/condition-references.d.ts +2 -2
- package/dist/engine/condition-references.js +6 -6
- package/dist/engine/connection-install-link-reconcile.d.ts +4 -3
- package/dist/engine/connection-install-link-reconcile.js +35 -28
- package/dist/engine/diff.d.ts +12 -14
- package/dist/engine/diff.js +247 -113
- package/dist/engine/gateway-key-reconcile.d.ts +12 -9
- package/dist/engine/gateway-key-reconcile.js +43 -36
- package/dist/engine/model-provider-key-reconcile.js +2 -2
- package/dist/engine/pipeline-reconcile.d.ts +8 -9
- package/dist/engine/pipeline-reconcile.js +14 -10
- package/dist/engine/reconcile.d.ts +7 -21
- package/dist/engine/reconcile.js +115 -215
- package/dist/engine/refusals.d.ts +14 -31
- package/dist/engine/refusals.js +32 -81
- package/dist/engine/role-membership-reconcile.d.ts +19 -0
- package/dist/engine/role-membership-reconcile.js +276 -0
- package/dist/engine/secrets-apply.d.ts +18 -4
- package/dist/engine/secrets-apply.js +39 -4
- package/dist/engine/trigger-reconcile.d.ts +22 -23
- package/dist/engine/trigger-reconcile.js +43 -65
- package/dist/engine/workflow-reconcile.d.ts +2 -2
- package/dist/engine/workflow-reconcile.js +5 -5
- package/dist/generated/cli-commands.json +15398 -11771
- package/dist/generated/cli-dispatch.d.ts +4 -3
- package/dist/generated/cli-dispatch.js +76 -62
- package/dist/index.d.ts +12 -7
- package/dist/index.js +5 -3
- package/dist/metrics/metric.d.ts +3 -3
- package/dist/metrics/metric.js +1 -1
- package/docs/REFERENCE.md +102 -95
- package/node_modules/@orchestraworks/client/dist/apis/AgentsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/apis/AgentsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/ArtifactsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/apis/ArtifactsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/ConnectionInstallLinksApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/apis/ConnectionInstallLinksApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/ConnectionsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/apis/ConnectionsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/EnvironmentsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/apis/EnvironmentsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/FilesApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/apis/FilesApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/ImagesApi.d.ts +88 -0
- package/node_modules/@orchestraworks/client/dist/apis/ImagesApi.js +239 -0
- package/node_modules/@orchestraworks/client/dist/apis/MetricsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/apis/MetricsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/OrganizationsApi.d.ts +1 -15
- package/node_modules/@orchestraworks/client/dist/apis/OrganizationsApi.js +3 -49
- package/node_modules/@orchestraworks/client/dist/apis/PipelinesApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/apis/PipelinesApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/ProviderConnectionIntentsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/apis/ProviderConnectionIntentsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/SecretsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/apis/SecretsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/SessionsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/apis/SessionsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/SkillsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/apis/SkillsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/TeamMembershipsApi.d.ts +96 -0
- package/node_modules/@orchestraworks/client/dist/apis/{GroupsApi.js → TeamMembershipsApi.js} +62 -59
- package/node_modules/@orchestraworks/client/dist/apis/TeamsApi.d.ts +93 -0
- package/node_modules/@orchestraworks/client/dist/apis/{ProjectsApi.js → TeamsApi.js} +55 -55
- package/node_modules/@orchestraworks/client/dist/apis/TriggersApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/apis/TriggersApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/UsersApi.d.ts +0 -15
- package/node_modules/@orchestraworks/client/dist/apis/UsersApi.js +0 -49
- package/node_modules/@orchestraworks/client/dist/apis/VolumesApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/apis/VolumesApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/WorkItemsApi.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/WorkItemsApi.js +4 -4
- package/node_modules/@orchestraworks/client/dist/apis/WorkflowsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/apis/WorkflowsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/apis/index.d.ts +3 -2
- package/node_modules/@orchestraworks/client/dist/apis/index.js +3 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/AgentsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/apis/AgentsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/ArtifactsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/apis/ArtifactsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/ConnectionInstallLinksApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/apis/ConnectionInstallLinksApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/ConnectionsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/apis/ConnectionsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/EnvironmentsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/apis/EnvironmentsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/FilesApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/apis/FilesApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/ImagesApi.d.ts +88 -0
- package/node_modules/@orchestraworks/client/dist/esm/apis/ImagesApi.js +235 -0
- package/node_modules/@orchestraworks/client/dist/esm/apis/MetricsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/apis/MetricsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/OrganizationsApi.d.ts +1 -15
- package/node_modules/@orchestraworks/client/dist/esm/apis/OrganizationsApi.js +3 -49
- package/node_modules/@orchestraworks/client/dist/esm/apis/PipelinesApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/apis/PipelinesApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/ProviderConnectionIntentsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/apis/ProviderConnectionIntentsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/SecretsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/apis/SecretsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/SessionsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/apis/SessionsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/SkillsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/apis/SkillsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/TeamMembershipsApi.d.ts +96 -0
- package/node_modules/@orchestraworks/client/dist/esm/apis/{GroupsApi.js → TeamMembershipsApi.js} +60 -57
- package/node_modules/@orchestraworks/client/dist/esm/apis/TeamsApi.d.ts +93 -0
- package/node_modules/@orchestraworks/client/dist/esm/apis/{ProjectsApi.js → TeamsApi.js} +53 -53
- package/node_modules/@orchestraworks/client/dist/esm/apis/TriggersApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/apis/TriggersApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/UsersApi.d.ts +0 -15
- package/node_modules/@orchestraworks/client/dist/esm/apis/UsersApi.js +0 -49
- package/node_modules/@orchestraworks/client/dist/esm/apis/VolumesApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/apis/VolumesApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/WorkItemsApi.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/WorkItemsApi.js +4 -4
- package/node_modules/@orchestraworks/client/dist/esm/apis/WorkflowsApi.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/apis/WorkflowsApi.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/index.d.ts +3 -2
- package/node_modules/@orchestraworks/client/dist/esm/apis/index.js +3 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/AddArtifactVersionRequest.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/models/Agent.d.ts +9 -3
- package/node_modules/@orchestraworks/client/dist/esm/models/Agent.js +3 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/ApiErrorDetail.d.ts +9 -1
- package/node_modules/@orchestraworks/client/dist/esm/models/ApiErrorDetail.js +5 -1
- package/node_modules/@orchestraworks/client/dist/esm/models/Artifact.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Artifact.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/ArtifactSummary.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/ArtifactSummary.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/AssignAction.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/models/AssignAction.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/AssignWorkItemRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/AssignWorkItemRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/ComputeProviderTarget.d.ts +6 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/ComputeProviderTarget.js +2 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/Connection.d.ts +16 -3
- package/node_modules/@orchestraworks/client/dist/esm/models/Connection.js +8 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/ConnectionInstallLink.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/ConnectionInstallLink.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Connector.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Connector.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateAgentRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateAgentRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateArtifactRequest.d.ts +4 -4
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateArtifactRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateConnectionInstallLinkRequest.d.ts +3 -3
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateConnectionInstallLinkRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateConnectionRequest.d.ts +8 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateConnectionRequest.js +4 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateConnectorRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateConnectorRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateDashboardRequest.d.ts +3 -3
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateDashboardRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateEnvironmentRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateEnvironmentRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateFileRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateFileRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateGatewayKeyRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateGatewayKeyRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateImageRequest.d.ts +38 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/{GroupMemberAgent.js → CreateImageRequest.js} +12 -16
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateMachineRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateMachineRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateMetricRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateMetricRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateOrganizationInvitationRequest.d.ts +4 -4
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateOrganizationInvitationRequest.js +3 -3
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateOrganizationMembershipRequest.d.ts +1 -8
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateOrganizationMembershipRequest.js +0 -3
- package/node_modules/@orchestraworks/client/dist/esm/models/CreatePipelineRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreatePipelineRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateProviderConnectionIntentRequest.d.ts +3 -3
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateProviderConnectionIntentRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateSecretRequest.d.ts +8 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateSecretRequest.js +4 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateSessionRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateSessionRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateSkillRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateSkillRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateTeamMembershipRequest.d.ts +65 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateTeamMembershipRequest.js +61 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateTeamRequest.d.ts +80 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateTeamRequest.js +64 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateTriggerRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateTriggerRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateVolumeRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateVolumeRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateWorkflowRequest.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/models/Dashboard.d.ts +8 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Dashboard.js +6 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/DashboardChart.d.ts +45 -4
- package/node_modules/@orchestraworks/client/dist/esm/models/DashboardChart.js +29 -5
- package/node_modules/@orchestraworks/client/dist/esm/models/DashboardChartQuery.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/models/Delivery.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Delivery.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/EgressPolicyRule.d.ts +0 -13
- package/node_modules/@orchestraworks/client/dist/esm/models/EgressPolicyRule.js +0 -5
- package/node_modules/@orchestraworks/client/dist/esm/models/EntitlementTeamUsage.d.ts +58 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/EntitlementTeamUsage.js +64 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/Environment.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Environment.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/EnvironmentEgressPolicy.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/models/GatewayKey.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/GatewayKey.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Image.d.ts +113 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/Image.js +91 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/InboundWebhookEdge.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/InboundWebhookEdge.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/InvitationTeamMembership.d.ts +44 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/InvitationTeamMembership.js +47 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/MachineEgressPolicyDiagnostics.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/models/MachineEgressRuleDiagnostics.d.ts +0 -6
- package/node_modules/@orchestraworks/client/dist/esm/models/MachineEgressRuleDiagnostics.js +0 -4
- package/node_modules/@orchestraworks/client/dist/esm/models/MachineView.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/MachineView.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/MessageWorkItemRequest.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/models/Metric.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Metric.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/MetricValue.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/MetricValue.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/ModelFile.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/ModelFile.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/OrganizationEntitlements.d.ts +7 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/OrganizationEntitlements.js +5 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/OrganizationInvitation.d.ts +4 -4
- package/node_modules/@orchestraworks/client/dist/esm/models/OrganizationInvitation.js +4 -4
- package/node_modules/@orchestraworks/client/dist/esm/models/OrganizationMembership.d.ts +5 -5
- package/node_modules/@orchestraworks/client/dist/esm/models/OrganizationMembership.js +4 -4
- package/node_modules/@orchestraworks/client/dist/esm/models/PageImage.d.ts +51 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/{PageProject.js → PageImage.js} +11 -11
- package/node_modules/@orchestraworks/client/dist/esm/models/PageTeam.d.ts +51 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/{PageGroupSummary.js → PageTeam.js} +11 -11
- package/node_modules/@orchestraworks/client/dist/esm/models/PageTeamMembership.d.ts +51 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/PageTeamMembership.js +56 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/Pipeline.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Pipeline.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/PolicyAssignment.d.ts +8 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/PolicyAssignment.js +4 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/ProviderConnectionIntent.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/ProviderConnectionIntent.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/ReferenceSubject.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/models/ReferenceSubject.js +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/models/Role.d.ts +6 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/Role.js +4 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/Secret.d.ts +16 -3
- package/node_modules/@orchestraworks/client/dist/esm/models/Secret.js +8 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/ServiceAccount.d.ts +7 -1
- package/node_modules/@orchestraworks/client/dist/esm/models/ServiceAccount.js +1 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/Session.d.ts +3 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Session.js +3 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/SessionSummary.d.ts +3 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/SessionSummary.js +3 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Skill.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Skill.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/SnapshotAnchor.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/models/Team.d.ts +104 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/{GroupSummary.js → Team.js} +25 -15
- package/node_modules/@orchestraworks/client/dist/esm/models/TeamMembership.d.ts +83 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/TeamMembership.js +77 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/Trigger.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Trigger.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/TriggerTarget.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateArtifactRequest.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateConnectionRequest.d.ts +6 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateConnectionRequest.js +2 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateOrganizationInvitationRequest.d.ts +4 -4
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateOrganizationInvitationRequest.js +3 -3
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateOrganizationMembershipRequest.d.ts +1 -8
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateOrganizationMembershipRequest.js +0 -3
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateSecretRequest.d.ts +6 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateSecretRequest.js +2 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateTeamMembershipRequest.d.ts +47 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateTeamMembershipRequest.js +51 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateTeamRequest.d.ts +68 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateTeamRequest.js +58 -0
- package/node_modules/@orchestraworks/client/dist/esm/models/UserGrant.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/UserGrant.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Volume.d.ts +10 -3
- package/node_modules/@orchestraworks/client/dist/esm/models/Volume.js +4 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/WorkItemActivity.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/WorkItemAssignment.d.ts +7 -7
- package/node_modules/@orchestraworks/client/dist/esm/models/WorkItemAssignment.js +5 -5
- package/node_modules/@orchestraworks/client/dist/esm/models/WorkItemDraftAssignment.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/WorkItemDraftAssignment.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Workflow.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/Workflow.js +2 -2
- package/node_modules/@orchestraworks/client/dist/esm/models/index.d.ts +13 -17
- package/node_modules/@orchestraworks/client/dist/esm/models/index.js +13 -17
- package/node_modules/@orchestraworks/client/dist/models/AddArtifactVersionRequest.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/models/Agent.d.ts +9 -3
- package/node_modules/@orchestraworks/client/dist/models/Agent.js +3 -2
- package/node_modules/@orchestraworks/client/dist/models/ApiErrorDetail.d.ts +9 -1
- package/node_modules/@orchestraworks/client/dist/models/ApiErrorDetail.js +5 -1
- package/node_modules/@orchestraworks/client/dist/models/Artifact.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/Artifact.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/ArtifactSummary.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/ArtifactSummary.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/AssignAction.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/models/AssignAction.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/AssignWorkItemRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/AssignWorkItemRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/ComputeProviderTarget.d.ts +6 -0
- package/node_modules/@orchestraworks/client/dist/models/ComputeProviderTarget.js +2 -0
- package/node_modules/@orchestraworks/client/dist/models/Connection.d.ts +16 -3
- package/node_modules/@orchestraworks/client/dist/models/Connection.js +8 -2
- package/node_modules/@orchestraworks/client/dist/models/ConnectionInstallLink.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/ConnectionInstallLink.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/Connector.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/Connector.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateAgentRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateAgentRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateArtifactRequest.d.ts +4 -4
- package/node_modules/@orchestraworks/client/dist/models/CreateArtifactRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateConnectionInstallLinkRequest.d.ts +3 -3
- package/node_modules/@orchestraworks/client/dist/models/CreateConnectionInstallLinkRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateConnectionRequest.d.ts +8 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateConnectionRequest.js +4 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateConnectorRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateConnectorRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateDashboardRequest.d.ts +3 -3
- package/node_modules/@orchestraworks/client/dist/models/CreateDashboardRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateEnvironmentRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateEnvironmentRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateFileRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateFileRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateGatewayKeyRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateGatewayKeyRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateImageRequest.d.ts +38 -0
- package/node_modules/@orchestraworks/client/dist/models/CreateImageRequest.js +54 -0
- package/node_modules/@orchestraworks/client/dist/models/CreateMachineRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateMachineRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateMetricRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateMetricRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateOrganizationInvitationRequest.d.ts +4 -4
- package/node_modules/@orchestraworks/client/dist/models/CreateOrganizationInvitationRequest.js +3 -3
- package/node_modules/@orchestraworks/client/dist/models/CreateOrganizationMembershipRequest.d.ts +1 -8
- package/node_modules/@orchestraworks/client/dist/models/CreateOrganizationMembershipRequest.js +0 -3
- package/node_modules/@orchestraworks/client/dist/models/CreatePipelineRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreatePipelineRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateProviderConnectionIntentRequest.d.ts +3 -3
- package/node_modules/@orchestraworks/client/dist/models/CreateProviderConnectionIntentRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateSecretRequest.d.ts +8 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateSecretRequest.js +4 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateSessionRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateSessionRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateSkillRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateSkillRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateTeamMembershipRequest.d.ts +65 -0
- package/node_modules/@orchestraworks/client/dist/models/CreateTeamMembershipRequest.js +69 -0
- package/node_modules/@orchestraworks/client/dist/models/CreateTeamRequest.d.ts +80 -0
- package/node_modules/@orchestraworks/client/dist/models/CreateTeamRequest.js +72 -0
- package/node_modules/@orchestraworks/client/dist/models/CreateTriggerRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateTriggerRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateVolumeRequest.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateVolumeRequest.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/CreateWorkflowRequest.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/models/Dashboard.d.ts +8 -2
- package/node_modules/@orchestraworks/client/dist/models/Dashboard.js +6 -2
- package/node_modules/@orchestraworks/client/dist/models/DashboardChart.d.ts +45 -4
- package/node_modules/@orchestraworks/client/dist/models/DashboardChart.js +30 -6
- package/node_modules/@orchestraworks/client/dist/models/DashboardChartQuery.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/models/Delivery.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/Delivery.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/EgressPolicyRule.d.ts +0 -13
- package/node_modules/@orchestraworks/client/dist/models/EgressPolicyRule.js +0 -5
- package/node_modules/@orchestraworks/client/dist/models/EntitlementTeamUsage.d.ts +58 -0
- package/node_modules/@orchestraworks/client/dist/models/EntitlementTeamUsage.js +72 -0
- package/node_modules/@orchestraworks/client/dist/models/Environment.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/Environment.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/EnvironmentEgressPolicy.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/models/GatewayKey.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/GatewayKey.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/Image.d.ts +113 -0
- package/node_modules/@orchestraworks/client/dist/models/Image.js +99 -0
- package/node_modules/@orchestraworks/client/dist/models/InboundWebhookEdge.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/InboundWebhookEdge.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/InvitationTeamMembership.d.ts +44 -0
- package/node_modules/@orchestraworks/client/dist/models/InvitationTeamMembership.js +54 -0
- package/node_modules/@orchestraworks/client/dist/models/MachineEgressPolicyDiagnostics.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/models/MachineEgressRuleDiagnostics.d.ts +0 -6
- package/node_modules/@orchestraworks/client/dist/models/MachineEgressRuleDiagnostics.js +0 -4
- package/node_modules/@orchestraworks/client/dist/models/MachineView.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/MachineView.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/MessageWorkItemRequest.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/models/Metric.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/Metric.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/MetricValue.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/MetricValue.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/ModelFile.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/ModelFile.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/OrganizationEntitlements.d.ts +7 -0
- package/node_modules/@orchestraworks/client/dist/models/OrganizationEntitlements.js +5 -0
- package/node_modules/@orchestraworks/client/dist/models/OrganizationInvitation.d.ts +4 -4
- package/node_modules/@orchestraworks/client/dist/models/OrganizationInvitation.js +4 -4
- package/node_modules/@orchestraworks/client/dist/models/OrganizationMembership.d.ts +5 -5
- package/node_modules/@orchestraworks/client/dist/models/OrganizationMembership.js +4 -4
- package/node_modules/@orchestraworks/client/dist/models/PageImage.d.ts +51 -0
- package/node_modules/@orchestraworks/client/dist/models/{PageProject.js → PageImage.js} +16 -16
- package/node_modules/@orchestraworks/client/dist/models/PageTeam.d.ts +51 -0
- package/node_modules/@orchestraworks/client/dist/models/{PageGroupSummary.js → PageTeam.js} +16 -16
- package/node_modules/@orchestraworks/client/dist/models/PageTeamMembership.d.ts +51 -0
- package/node_modules/@orchestraworks/client/dist/models/PageTeamMembership.js +63 -0
- package/node_modules/@orchestraworks/client/dist/models/Pipeline.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/Pipeline.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/PolicyAssignment.d.ts +8 -2
- package/node_modules/@orchestraworks/client/dist/models/PolicyAssignment.js +4 -2
- package/node_modules/@orchestraworks/client/dist/models/ProviderConnectionIntent.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/ProviderConnectionIntent.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/ReferenceSubject.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/models/ReferenceSubject.js +1 -1
- package/node_modules/@orchestraworks/client/dist/models/Role.d.ts +6 -0
- package/node_modules/@orchestraworks/client/dist/models/Role.js +4 -0
- package/node_modules/@orchestraworks/client/dist/models/Secret.d.ts +16 -3
- package/node_modules/@orchestraworks/client/dist/models/Secret.js +8 -2
- package/node_modules/@orchestraworks/client/dist/models/ServiceAccount.d.ts +7 -1
- package/node_modules/@orchestraworks/client/dist/models/ServiceAccount.js +1 -0
- package/node_modules/@orchestraworks/client/dist/models/Session.d.ts +3 -2
- package/node_modules/@orchestraworks/client/dist/models/Session.js +3 -2
- package/node_modules/@orchestraworks/client/dist/models/SessionSummary.d.ts +3 -2
- package/node_modules/@orchestraworks/client/dist/models/SessionSummary.js +3 -2
- package/node_modules/@orchestraworks/client/dist/models/Skill.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/Skill.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/SnapshotAnchor.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/models/Team.d.ts +104 -0
- package/node_modules/@orchestraworks/client/dist/models/{GroupSummary.js → Team.js} +31 -21
- package/node_modules/@orchestraworks/client/dist/models/TeamMembership.d.ts +83 -0
- package/node_modules/@orchestraworks/client/dist/models/TeamMembership.js +85 -0
- package/node_modules/@orchestraworks/client/dist/models/Trigger.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/Trigger.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/TriggerTarget.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/models/UpdateArtifactRequest.d.ts +1 -1
- package/node_modules/@orchestraworks/client/dist/models/UpdateConnectionRequest.d.ts +6 -0
- package/node_modules/@orchestraworks/client/dist/models/UpdateConnectionRequest.js +2 -0
- package/node_modules/@orchestraworks/client/dist/models/UpdateOrganizationInvitationRequest.d.ts +4 -4
- package/node_modules/@orchestraworks/client/dist/models/UpdateOrganizationInvitationRequest.js +3 -3
- package/node_modules/@orchestraworks/client/dist/models/UpdateOrganizationMembershipRequest.d.ts +1 -8
- package/node_modules/@orchestraworks/client/dist/models/UpdateOrganizationMembershipRequest.js +0 -3
- package/node_modules/@orchestraworks/client/dist/models/UpdateSecretRequest.d.ts +6 -0
- package/node_modules/@orchestraworks/client/dist/models/UpdateSecretRequest.js +2 -0
- package/node_modules/@orchestraworks/client/dist/models/UpdateTeamMembershipRequest.d.ts +47 -0
- package/node_modules/@orchestraworks/client/dist/models/UpdateTeamMembershipRequest.js +59 -0
- package/node_modules/@orchestraworks/client/dist/models/UpdateTeamRequest.d.ts +68 -0
- package/node_modules/@orchestraworks/client/dist/models/UpdateTeamRequest.js +66 -0
- package/node_modules/@orchestraworks/client/dist/models/UserGrant.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/UserGrant.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/Volume.d.ts +10 -3
- package/node_modules/@orchestraworks/client/dist/models/Volume.js +4 -2
- package/node_modules/@orchestraworks/client/dist/models/WorkItemActivity.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/WorkItemAssignment.d.ts +7 -7
- package/node_modules/@orchestraworks/client/dist/models/WorkItemAssignment.js +5 -5
- package/node_modules/@orchestraworks/client/dist/models/WorkItemDraftAssignment.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/WorkItemDraftAssignment.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/Workflow.d.ts +2 -2
- package/node_modules/@orchestraworks/client/dist/models/Workflow.js +2 -2
- package/node_modules/@orchestraworks/client/dist/models/index.d.ts +13 -17
- package/node_modules/@orchestraworks/client/dist/models/index.js +13 -17
- package/node_modules/@orchestraworks/client/package.json +1 -1
- package/package.json +4 -4
- package/skills/orchestra/SKILL.md +82 -67
- package/skills/orchestra-fdk/references/authoring.md +83 -45
- package/skills/orchestra-fdk/references/environment.md +214 -33
- package/skills/orchestra-fdk/references/troubleshooting.md +10 -8
- package/templates/bug-fix/main.ts +6 -1
- package/templates/engineering-team/README.md +10 -7
- package/templates/engineering-team/agents/engineer-agent.md +38 -16
- package/templates/engineering-team/lib/environment.ts +15 -3
- package/templates/engineering-team/main.ts +1 -1
- package/templates/todo-factory/main.ts +6 -1
- package/dist/constructs/project.d.ts +0 -33
- package/dist/constructs/project.js +0 -82
- package/node_modules/@orchestraworks/client/dist/apis/GroupsApi.d.ts +0 -95
- package/node_modules/@orchestraworks/client/dist/apis/ProjectsApi.d.ts +0 -93
- package/node_modules/@orchestraworks/client/dist/esm/apis/GroupsApi.d.ts +0 -95
- package/node_modules/@orchestraworks/client/dist/esm/apis/ProjectsApi.d.ts +0 -93
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateGroupRequest.d.ts +0 -82
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateGroupRequest.js +0 -74
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateOrganizationRequest.d.ts +0 -53
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateOrganizationRequest.js +0 -50
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateProjectRequest.d.ts +0 -52
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateProjectRequest.js +0 -49
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateUserRequest.d.ts +0 -46
- package/node_modules/@orchestraworks/client/dist/esm/models/CreateUserRequest.js +0 -47
- package/node_modules/@orchestraworks/client/dist/esm/models/CredentialBinding.d.ts +0 -57
- package/node_modules/@orchestraworks/client/dist/esm/models/CredentialBinding.js +0 -50
- package/node_modules/@orchestraworks/client/dist/esm/models/Group.d.ts +0 -106
- package/node_modules/@orchestraworks/client/dist/esm/models/Group.js +0 -92
- package/node_modules/@orchestraworks/client/dist/esm/models/GroupMember.d.ts +0 -40
- package/node_modules/@orchestraworks/client/dist/esm/models/GroupMember.js +0 -45
- package/node_modules/@orchestraworks/client/dist/esm/models/GroupMemberAgent.d.ts +0 -44
- package/node_modules/@orchestraworks/client/dist/esm/models/GroupMemberReference.d.ts +0 -38
- package/node_modules/@orchestraworks/client/dist/esm/models/GroupMemberReference.js +0 -43
- package/node_modules/@orchestraworks/client/dist/esm/models/GroupMemberUser.d.ts +0 -38
- package/node_modules/@orchestraworks/client/dist/esm/models/GroupMemberUser.js +0 -45
- package/node_modules/@orchestraworks/client/dist/esm/models/GroupSummary.d.ts +0 -86
- package/node_modules/@orchestraworks/client/dist/esm/models/PageGroupSummary.d.ts +0 -51
- package/node_modules/@orchestraworks/client/dist/esm/models/PageProject.d.ts +0 -51
- package/node_modules/@orchestraworks/client/dist/esm/models/Project.d.ts +0 -76
- package/node_modules/@orchestraworks/client/dist/esm/models/Project.js +0 -69
- package/node_modules/@orchestraworks/client/dist/esm/models/RoleAssignment.d.ts +0 -38
- package/node_modules/@orchestraworks/client/dist/esm/models/RoleAssignment.js +0 -45
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateGroupRequest.d.ts +0 -70
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateGroupRequest.js +0 -60
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateProjectRequest.d.ts +0 -46
- package/node_modules/@orchestraworks/client/dist/esm/models/UpdateProjectRequest.js +0 -45
- package/node_modules/@orchestraworks/client/dist/models/CreateGroupRequest.d.ts +0 -82
- package/node_modules/@orchestraworks/client/dist/models/CreateGroupRequest.js +0 -82
- package/node_modules/@orchestraworks/client/dist/models/CreateOrganizationRequest.d.ts +0 -53
- package/node_modules/@orchestraworks/client/dist/models/CreateOrganizationRequest.js +0 -57
- package/node_modules/@orchestraworks/client/dist/models/CreateProjectRequest.d.ts +0 -52
- package/node_modules/@orchestraworks/client/dist/models/CreateProjectRequest.js +0 -56
- package/node_modules/@orchestraworks/client/dist/models/CreateUserRequest.d.ts +0 -46
- package/node_modules/@orchestraworks/client/dist/models/CreateUserRequest.js +0 -54
- package/node_modules/@orchestraworks/client/dist/models/CredentialBinding.d.ts +0 -57
- package/node_modules/@orchestraworks/client/dist/models/CredentialBinding.js +0 -57
- package/node_modules/@orchestraworks/client/dist/models/Group.d.ts +0 -106
- package/node_modules/@orchestraworks/client/dist/models/Group.js +0 -100
- package/node_modules/@orchestraworks/client/dist/models/GroupMember.d.ts +0 -40
- package/node_modules/@orchestraworks/client/dist/models/GroupMember.js +0 -52
- package/node_modules/@orchestraworks/client/dist/models/GroupMemberAgent.d.ts +0 -44
- package/node_modules/@orchestraworks/client/dist/models/GroupMemberAgent.js +0 -58
- package/node_modules/@orchestraworks/client/dist/models/GroupMemberReference.d.ts +0 -38
- package/node_modules/@orchestraworks/client/dist/models/GroupMemberReference.js +0 -50
- package/node_modules/@orchestraworks/client/dist/models/GroupMemberUser.d.ts +0 -38
- package/node_modules/@orchestraworks/client/dist/models/GroupMemberUser.js +0 -52
- package/node_modules/@orchestraworks/client/dist/models/GroupSummary.d.ts +0 -86
- package/node_modules/@orchestraworks/client/dist/models/PageGroupSummary.d.ts +0 -51
- package/node_modules/@orchestraworks/client/dist/models/PageProject.d.ts +0 -51
- package/node_modules/@orchestraworks/client/dist/models/Project.d.ts +0 -76
- package/node_modules/@orchestraworks/client/dist/models/Project.js +0 -76
- package/node_modules/@orchestraworks/client/dist/models/RoleAssignment.d.ts +0 -38
- package/node_modules/@orchestraworks/client/dist/models/RoleAssignment.js +0 -52
- package/node_modules/@orchestraworks/client/dist/models/UpdateGroupRequest.d.ts +0 -70
- package/node_modules/@orchestraworks/client/dist/models/UpdateGroupRequest.js +0 -68
- package/node_modules/@orchestraworks/client/dist/models/UpdateProjectRequest.d.ts +0 -46
- package/node_modules/@orchestraworks/client/dist/models/UpdateProjectRequest.js +0 -52
|
@@ -43,6 +43,10 @@ export interface ImageBuildProps {
|
|
|
43
43
|
/** `docker build --platform`; omitted when unset so the invocation is unchanged. */
|
|
44
44
|
platform?: string;
|
|
45
45
|
}
|
|
46
|
+
/** A built tag with no registry path is uploaded to the platform rather than pushed to a registry. */
|
|
47
|
+
export declare function isHostedImageTag(tag: string): boolean;
|
|
48
|
+
/** The image name a hosted tag uploads under: the part before `:`. */
|
|
49
|
+
export declare function hostedImageName(tag: string): string;
|
|
46
50
|
export declare class Image {
|
|
47
51
|
private constructor();
|
|
48
52
|
/** No plan import — the tag rides the environment payload. */
|
|
@@ -209,6 +209,18 @@ export function parseEnvImportMarker(v) {
|
|
|
209
209
|
}
|
|
210
210
|
/** The platform's `environments.image` column cap. */
|
|
211
211
|
const MAX_IMAGE_TAG_LENGTH = 512;
|
|
212
|
+
/** The platform's `POST /images` name rule: ECR's repository grammar, here without a path. */
|
|
213
|
+
const HOSTED_IMAGE_NAME = /^[a-z0-9]+(?:[._-][a-z0-9]+)*$/;
|
|
214
|
+
const MAX_HOSTED_IMAGE_NAME_LENGTH = 128;
|
|
215
|
+
/** A built tag with no registry path is uploaded to the platform rather than pushed to a registry. */
|
|
216
|
+
export function isHostedImageTag(tag) {
|
|
217
|
+
return !tag.includes("/");
|
|
218
|
+
}
|
|
219
|
+
/** The image name a hosted tag uploads under: the part before `:`. */
|
|
220
|
+
export function hostedImageName(tag) {
|
|
221
|
+
const colon = tag.indexOf(":");
|
|
222
|
+
return colon === -1 ? tag : tag.slice(0, colon);
|
|
223
|
+
}
|
|
212
224
|
export class Image {
|
|
213
225
|
constructor() {
|
|
214
226
|
// static-only
|
|
@@ -235,6 +247,14 @@ export class Image {
|
|
|
235
247
|
throw new Error(`Image.fromBuild tag exceeds the platform's ${MAX_IMAGE_TAG_LENGTH}-character image limit ` +
|
|
236
248
|
`(${props.tag.length} characters).`);
|
|
237
249
|
}
|
|
250
|
+
if (isHostedImageTag(props.tag)) {
|
|
251
|
+
const name = hostedImageName(props.tag);
|
|
252
|
+
if (name.length > MAX_HOSTED_IMAGE_NAME_LENGTH || !HOSTED_IMAGE_NAME.test(name)) {
|
|
253
|
+
throw new Error(`Image.fromBuild tag '${props.tag}' has no registry path, so apply uploads it as the image '${name}'. ` +
|
|
254
|
+
`That name must be 1 to ${MAX_HOSTED_IMAGE_NAME_LENGTH} characters of lowercase letters and digits, ` +
|
|
255
|
+
`with single '.', '_' or '-' characters only between them.`);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
238
258
|
const factory = Factory._current();
|
|
239
259
|
if (factory === undefined) {
|
|
240
260
|
throw new Error("Image.fromBuild requires an active Factory: construct new Factory({...}) first.");
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Construct } from "../core/construct.js";
|
|
2
|
+
import type { PlanResource } from "../core/plan.js";
|
|
3
|
+
import type { IPolicy, IRole } from "./interfaces.js";
|
|
4
|
+
/** The managed roles, by slug; a managed role's slug is its id. */
|
|
5
|
+
export declare const MANAGED_ROLE_SLUGS: readonly ["role_managed_owner", "role_managed_admin", "role_managed_developer", "role_managed_factory_user", "role_managed_agent_worker", "role_managed_agent_manager", "role_managed_compute_launcher"];
|
|
6
|
+
export type ManagedRoleSlug = (typeof MANAGED_ROLE_SLUGS)[number];
|
|
7
|
+
/** Owner is assignable at all teams only: at one team it would be that team's Admin and nothing more. */
|
|
8
|
+
export declare const OWNER_ROLE_SLUG: ManagedRoleSlug;
|
|
9
|
+
export interface RoleProps {
|
|
10
|
+
name: string;
|
|
11
|
+
description?: string;
|
|
12
|
+
labels?: Record<string, string>;
|
|
13
|
+
policies: readonly IPolicy[];
|
|
14
|
+
}
|
|
15
|
+
export declare class Role extends Construct implements IRole {
|
|
16
|
+
readonly roleId: string;
|
|
17
|
+
private readonly name;
|
|
18
|
+
private readonly description;
|
|
19
|
+
private readonly labels;
|
|
20
|
+
private readonly policyIds;
|
|
21
|
+
constructor(scope: Construct, id: string, props: RoleProps);
|
|
22
|
+
/** @internal */
|
|
23
|
+
_resourceId(): string;
|
|
24
|
+
_toPlanResource(): PlanResource;
|
|
25
|
+
/** Checked at runtime as well, because an app runs transpiled and untypechecked. */
|
|
26
|
+
static managed(slug: ManagedRoleSlug): IRole;
|
|
27
|
+
}
|
|
28
|
+
export declare class Policy {
|
|
29
|
+
private constructor();
|
|
30
|
+
/** Apply checks that the policy exists before it writes anything. */
|
|
31
|
+
static fromId(scope: Construct, id: string): IPolicy;
|
|
32
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// A role carries no scope: a team membership row places it at one team or at all teams. The platform derives
|
|
2
|
+
// a custom role's slug from its name, so the name is the key apply finds a live custom role by.
|
|
3
|
+
import { Construct } from "../core/construct.js";
|
|
4
|
+
import { validateDeclaredLabels } from "../core/labels.js";
|
|
5
|
+
import { refToken } from "../core/tokens.js";
|
|
6
|
+
import { registerImport } from "./references.js";
|
|
7
|
+
/** The managed roles, by slug; a managed role's slug is its id. */
|
|
8
|
+
export const MANAGED_ROLE_SLUGS = [
|
|
9
|
+
"role_managed_owner",
|
|
10
|
+
"role_managed_admin",
|
|
11
|
+
"role_managed_developer",
|
|
12
|
+
"role_managed_factory_user",
|
|
13
|
+
"role_managed_agent_worker",
|
|
14
|
+
"role_managed_agent_manager",
|
|
15
|
+
"role_managed_compute_launcher",
|
|
16
|
+
];
|
|
17
|
+
/** Owner is assignable at all teams only: at one team it would be that team's Admin and nothing more. */
|
|
18
|
+
export const OWNER_ROLE_SLUG = "role_managed_owner";
|
|
19
|
+
/** A platform id: a lowercase prefix word, `_`, then a suffix; a managed policy's suffix holds `_` too. */
|
|
20
|
+
const POLICY_ID_PATTERN = /^[a-z][a-z0-9]*_[A-Za-z0-9_]*[A-Za-z0-9]$/;
|
|
21
|
+
export class Role extends Construct {
|
|
22
|
+
roleId;
|
|
23
|
+
name;
|
|
24
|
+
description;
|
|
25
|
+
labels;
|
|
26
|
+
policyIds;
|
|
27
|
+
constructor(scope, id, props) {
|
|
28
|
+
super(scope, id);
|
|
29
|
+
const label = `role '${this.node.path.join("/")}'`;
|
|
30
|
+
if (typeof props.name !== "string" || props.name.trim() === "") {
|
|
31
|
+
throw new Error(`${label}: declare a name. A custom role's name is its key in the organization.`);
|
|
32
|
+
}
|
|
33
|
+
validateDeclaredLabels(props.labels, `${label} labels`);
|
|
34
|
+
this.name = props.name;
|
|
35
|
+
this.description = props.description;
|
|
36
|
+
this.labels = props.labels !== undefined ? { ...props.labels } : undefined;
|
|
37
|
+
// Sorted, because the order a role lists its policies in has no meaning and must not read as drift.
|
|
38
|
+
this.policyIds = [...new Set(props.policies.map((policy) => policy.policyId))].sort();
|
|
39
|
+
this.roleId = refToken("role", this.node.path);
|
|
40
|
+
}
|
|
41
|
+
/** @internal */
|
|
42
|
+
_resourceId() {
|
|
43
|
+
return this.roleId;
|
|
44
|
+
}
|
|
45
|
+
_toPlanResource() {
|
|
46
|
+
const payload = {
|
|
47
|
+
name: this.name,
|
|
48
|
+
...(this.description !== undefined ? { description: this.description } : {}),
|
|
49
|
+
...(this.labels !== undefined ? { labels: { ...this.labels } } : {}),
|
|
50
|
+
policyIds: [...this.policyIds],
|
|
51
|
+
};
|
|
52
|
+
return { kind: "role", path: this.node.path.join("/"), slug: this.name, managed: true, payload };
|
|
53
|
+
}
|
|
54
|
+
/** Checked at runtime as well, because an app runs transpiled and untypechecked. */
|
|
55
|
+
static managed(slug) {
|
|
56
|
+
if (!MANAGED_ROLE_SLUGS.includes(slug)) {
|
|
57
|
+
throw new Error(`'${String(slug)}' names no managed role. Use one of ${JSON.stringify(MANAGED_ROLE_SLUGS)}, or declare ` +
|
|
58
|
+
`a custom role with new Role(scope, id, { name, policies }).`);
|
|
59
|
+
}
|
|
60
|
+
return { roleId: slug, _resourceId: () => slug };
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
export class Policy {
|
|
64
|
+
constructor() {
|
|
65
|
+
// static-only
|
|
66
|
+
}
|
|
67
|
+
/** Apply checks that the policy exists before it writes anything. */
|
|
68
|
+
static fromId(scope, id) {
|
|
69
|
+
if (!POLICY_ID_PATTERN.test(id)) {
|
|
70
|
+
throw new Error(`Invalid policy id ${JSON.stringify(id)} for Policy.fromId: a policy has no slug, so name it by its ` +
|
|
71
|
+
`platform id, a lowercase prefix word, '_', then the rest of the id (e.g. 'pol_01jq…' or ` +
|
|
72
|
+
`'pol_managed_agent_shared_use').`);
|
|
73
|
+
}
|
|
74
|
+
registerImport(scope, { kind: "policy", ref: id }, id);
|
|
75
|
+
return { policyId: id, _resourceId: () => id };
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -23,21 +23,21 @@ export type RuleWhen = ConditionWhen | ChangedWhen | ActivityWhen;
|
|
|
23
23
|
export type ResourceRef = string | {
|
|
24
24
|
readonly slug: string;
|
|
25
25
|
};
|
|
26
|
-
/** Who an `assign` hands the item to: an agent, pinned to a version or not, a user, or a
|
|
26
|
+
/** Who an `assign` hands the item to: an agent, pinned to a version or not, a user, or a team. */
|
|
27
27
|
export type AssignTarget = {
|
|
28
28
|
readonly agent: ResourceRef;
|
|
29
29
|
readonly agentVersion?: number;
|
|
30
30
|
} | {
|
|
31
31
|
readonly user: string;
|
|
32
32
|
} | {
|
|
33
|
-
readonly
|
|
33
|
+
readonly team: ResourceRef;
|
|
34
34
|
};
|
|
35
35
|
/** The `assign` action's body, which a `createWorkItem` also takes; at most one assignee is set. */
|
|
36
36
|
export interface AssignBody {
|
|
37
37
|
readonly assigneeAgent?: string;
|
|
38
38
|
readonly agentVersion?: number;
|
|
39
39
|
readonly assigneeUser?: string;
|
|
40
|
-
readonly
|
|
40
|
+
readonly assigneeTeam?: string;
|
|
41
41
|
}
|
|
42
42
|
export type MessageTarget = {
|
|
43
43
|
readonly agent: string;
|
|
@@ -134,7 +134,7 @@ export declare function changed(field: string): ChangedWhen;
|
|
|
134
134
|
/** Every feed entry of the kind; an `INBOUND_EVENT` may name one outside event type. */
|
|
135
135
|
export declare function activity(kind: WorkItemActivityKind, type?: string): ActivityWhen;
|
|
136
136
|
/**
|
|
137
|
-
* An agent, pinned to a version or not, a user, or a
|
|
137
|
+
* An agent, pinned to a version or not, a user, or a team, which hands the item on as its `assignment` says;
|
|
138
138
|
* see {@link unassign} for clearing it.
|
|
139
139
|
*/
|
|
140
140
|
export declare function assign(target: AssignTarget): RuleAction;
|
package/dist/constructs/rules.js
CHANGED
|
@@ -56,7 +56,7 @@ export function activity(kind, type) {
|
|
|
56
56
|
return type === undefined ? { activity: kind } : { activity: kind, type };
|
|
57
57
|
}
|
|
58
58
|
/**
|
|
59
|
-
* An agent, pinned to a version or not, a user, or a
|
|
59
|
+
* An agent, pinned to a version or not, a user, or a team, which hands the item on as its `assignment` says;
|
|
60
60
|
* see {@link unassign} for clearing it.
|
|
61
61
|
*/
|
|
62
62
|
export function assign(target) {
|
|
@@ -144,8 +144,8 @@ export function createWorkItem(item) {
|
|
|
144
144
|
function assignBody(target) {
|
|
145
145
|
if ("user" in target)
|
|
146
146
|
return { assigneeUser: target.user };
|
|
147
|
-
if ("
|
|
148
|
-
return {
|
|
147
|
+
if ("team" in target)
|
|
148
|
+
return { assigneeTeam: refOf(target.team) };
|
|
149
149
|
return {
|
|
150
150
|
assigneeAgent: refOf(target.agent),
|
|
151
151
|
...(target.agentVersion !== undefined ? { agentVersion: target.agentVersion } : {}),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { InjectionRecipe } from "@orchestraworks/client";
|
|
2
2
|
import { Construct } from "../core/construct.js";
|
|
3
3
|
import type { PlanResource, ValueFrom } from "../core/plan.js";
|
|
4
|
-
import type { CredentialBindingData, IGatewayKey, ISecret } from "./interfaces.js";
|
|
4
|
+
import type { CredentialBindingData, IGatewayKey, ISecret, ITeam } from "./interfaces.js";
|
|
5
5
|
/**
|
|
6
6
|
* The request mutations the broker applies from this secret: `headers` are injected after credential
|
|
7
7
|
* rendering, `removeHeaders` strips client-sent headers before injection. `removeHeaders` is optional here
|
|
@@ -65,8 +65,36 @@ export declare class SecretValue {
|
|
|
65
65
|
static registryCredential(username: string, password: SecretValue): SecretValue;
|
|
66
66
|
/** Both parts are credential material; the derived value is built only at apply. */
|
|
67
67
|
static ecrCredential(accessKeyId: SecretValue, secretAccessKey: SecretValue): SecretValue;
|
|
68
|
+
/**
|
|
69
|
+
* One secret whose value is a JSON object of named fields, for credentials one request needs together: its
|
|
70
|
+
* `injection` recipe presents each field as `${secret.<name>}`, so the two headers ride one secret instead
|
|
71
|
+
* of two secrets that would both cover the host. Each field keeps its own source, so an operator keeps one
|
|
72
|
+
* environment variable per value; the object is composed only at apply, and only when every field resolves.
|
|
73
|
+
*/
|
|
74
|
+
static fields(fields: Record<string, SecretValue>): SecretValue;
|
|
68
75
|
_toValueFrom(): ValueFrom;
|
|
69
76
|
}
|
|
77
|
+
/**
|
|
78
|
+
* A credential's `hosts` use the egress rule host syntax — an exact host, `*.` and a suffix, or `*`, with no
|
|
79
|
+
* port — and a pattern the platform refuses at write is refused here.
|
|
80
|
+
*/
|
|
81
|
+
export declare function normalizeCredentialHosts(hosts: string[], label: string): string[];
|
|
82
|
+
export interface SecretProps {
|
|
83
|
+
value: SecretValue;
|
|
84
|
+
slug?: string;
|
|
85
|
+
name?: string;
|
|
86
|
+
description?: string;
|
|
87
|
+
injection?: InjectionRecipeProps;
|
|
88
|
+
/**
|
|
89
|
+
* The hosts this secret is presented on, in egress rule host syntax: an exact host, `*.suffix`, or `*`. A
|
|
90
|
+
* request to a covered host gets the `injection` headers at the egress edge; an environment's rules only
|
|
91
|
+
* decide whether the request may leave. Omitted, the secret covers no host, and apply sends `[]`, so
|
|
92
|
+
* removing the prop clears the list.
|
|
93
|
+
*/
|
|
94
|
+
hosts?: string[];
|
|
95
|
+
/** Fixed at create; undeclared, the secret is created in Shared. */
|
|
96
|
+
team?: ITeam;
|
|
97
|
+
}
|
|
70
98
|
export declare class Secret extends Construct implements ISecret {
|
|
71
99
|
#private;
|
|
72
100
|
/** Accepts a platform id or a slug — see {@link IResource} for the full key rule. */
|
|
@@ -74,22 +102,17 @@ export declare class Secret extends Construct implements ISecret {
|
|
|
74
102
|
private readonly explicitSlug;
|
|
75
103
|
private readonly displayName;
|
|
76
104
|
private readonly description;
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
slug?: string;
|
|
80
|
-
name?: string;
|
|
81
|
-
description?: string;
|
|
82
|
-
injection?: InjectionRecipeProps;
|
|
83
|
-
});
|
|
105
|
+
private readonly team;
|
|
106
|
+
constructor(scope: Construct, id: string, props: SecretProps);
|
|
84
107
|
private slug;
|
|
85
108
|
/** @internal */
|
|
86
109
|
_resourceId(): string;
|
|
87
|
-
/**
|
|
88
|
-
* @internal — `{secretId}` alone, so the secret's own `injection` recipe supplies the broker's header
|
|
89
|
-
* mutations. A locally-declared secret must actually carry one: binding a recipe-less secret bare would be
|
|
90
|
-
* denied `recipe_conflict` at hydration, which classifies a binding as "recipe" from the blank header.
|
|
91
|
-
*/
|
|
110
|
+
/** @internal — read only by the retired rule-level binding's synth error, which names this secret. */
|
|
92
111
|
_credentialBinding(): CredentialBindingData;
|
|
112
|
+
/** @internal — a fresh copy of the declared hosts, for synth checks that read a declared secret. */
|
|
113
|
+
_hosts(): string[];
|
|
114
|
+
/** @internal — whether the declared recipe has a header to present this secret by. */
|
|
115
|
+
_presentsHeader(): boolean;
|
|
93
116
|
/**
|
|
94
117
|
* A raw `JSON.stringify(secret)` would otherwise walk the circular construct tree; this returns only
|
|
95
118
|
* non-secret identity fields, so accidental logging can never dump the recipe or the tree.
|
|
@@ -108,6 +108,11 @@ export function cloneValueFrom(valueFrom) {
|
|
|
108
108
|
},
|
|
109
109
|
};
|
|
110
110
|
}
|
|
111
|
+
if ("fields" in valueFrom) {
|
|
112
|
+
return {
|
|
113
|
+
fields: Object.fromEntries(Object.entries(valueFrom.fields).map(([name, field]) => [name, cloneValueFrom(field)])),
|
|
114
|
+
};
|
|
115
|
+
}
|
|
111
116
|
return {
|
|
112
117
|
ecrCredential: {
|
|
113
118
|
accessKeyIdSource: cloneValueFrom(valueFrom.ecrCredential.accessKeyIdSource),
|
|
@@ -237,29 +242,117 @@ export class SecretValue {
|
|
|
237
242
|
ecrCredential: { accessKeyIdSource: accessKeyId.#recipe, secretAccessKeySource: secretAccessKey.#recipe },
|
|
238
243
|
});
|
|
239
244
|
}
|
|
245
|
+
/**
|
|
246
|
+
* One secret whose value is a JSON object of named fields, for credentials one request needs together: its
|
|
247
|
+
* `injection` recipe presents each field as `${secret.<name>}`, so the two headers ride one secret instead
|
|
248
|
+
* of two secrets that would both cover the host. Each field keeps its own source, so an operator keeps one
|
|
249
|
+
* environment variable per value; the object is composed only at apply, and only when every field resolves.
|
|
250
|
+
*/
|
|
251
|
+
static fields(fields) {
|
|
252
|
+
const entries = Object.entries(fields ?? {});
|
|
253
|
+
if (entries.length === 0) {
|
|
254
|
+
throw new Error("SecretValue.fields requires at least one field.");
|
|
255
|
+
}
|
|
256
|
+
const recipe = {};
|
|
257
|
+
for (const [name, value] of entries) {
|
|
258
|
+
if (!FIELD_NAME.test(name)) {
|
|
259
|
+
throw new Error(`SecretValue.fields field name ${JSON.stringify(name)} is invalid: a recipe reads it as ` +
|
|
260
|
+
`\${secret.<name>}, so it must be non-empty with no whitespace, '.', '{' or '}'.`);
|
|
261
|
+
}
|
|
262
|
+
if (!(value instanceof SecretValue)) {
|
|
263
|
+
throw new Error(`SecretValue.fields field '${name}' must be a SecretValue, such as SecretValue.fromEnv(...).`);
|
|
264
|
+
}
|
|
265
|
+
if (containsGatewayKeyRecipe(value.#recipe)) {
|
|
266
|
+
throw gatewayKeyNestingError("SecretValue.fields", value.#recipe);
|
|
267
|
+
}
|
|
268
|
+
recipe[name] = value.#recipe;
|
|
269
|
+
}
|
|
270
|
+
return new SecretValue({ fields: recipe });
|
|
271
|
+
}
|
|
240
272
|
_toValueFrom() {
|
|
241
273
|
return this.#recipe;
|
|
242
274
|
}
|
|
243
275
|
}
|
|
276
|
+
const FIELD_NAME = /^[^\s.{}]+$/;
|
|
277
|
+
/**
|
|
278
|
+
* A credential's `hosts` use the egress rule host syntax — an exact host, `*.` and a suffix, or `*`, with no
|
|
279
|
+
* port — and a pattern the platform refuses at write is refused here.
|
|
280
|
+
*/
|
|
281
|
+
export function normalizeCredentialHosts(hosts, label) {
|
|
282
|
+
if (!Array.isArray(hosts)) {
|
|
283
|
+
throw new Error(`${label}: 'hosts' must be a list of host patterns, such as ["api.example.com"].`);
|
|
284
|
+
}
|
|
285
|
+
for (const host of hosts) {
|
|
286
|
+
if (typeof host === "string" && hostPatternPort(host)) {
|
|
287
|
+
throw new Error(`${label}: host pattern ${JSON.stringify(host)} names a port: a credential's hosts name hosts alone, ` +
|
|
288
|
+
`without a port.`);
|
|
289
|
+
}
|
|
290
|
+
if (typeof host !== "string" ||
|
|
291
|
+
host.trim() === "" ||
|
|
292
|
+
/[\s/]/.test(host) ||
|
|
293
|
+
(host.includes(":") && !isIpv6Literal(host))) {
|
|
294
|
+
throw new Error(`${label}: host pattern ${JSON.stringify(host)} is not a host: write an exact host, *.suffix, or *, ` +
|
|
295
|
+
`with no scheme, port or path.`);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
return [...hosts];
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* The platform's port reading: `host:443` and `[::1]:443` name a port; `[::1]` and `2001:db8::1` are
|
|
302
|
+
* addresses, whose colons belong to the address.
|
|
303
|
+
*/
|
|
304
|
+
function hostPatternPort(host) {
|
|
305
|
+
const lastColon = host.lastIndexOf(":");
|
|
306
|
+
if (lastColon < 0 || !/^\d+$/.test(host.slice(lastColon + 1)))
|
|
307
|
+
return false;
|
|
308
|
+
if (host.startsWith("[")) {
|
|
309
|
+
const close = host.indexOf("]");
|
|
310
|
+
return close >= 0 && close < lastColon;
|
|
311
|
+
}
|
|
312
|
+
return host.indexOf(":") === lastColon;
|
|
313
|
+
}
|
|
314
|
+
function isIpv6Literal(host) {
|
|
315
|
+
if (host.startsWith("["))
|
|
316
|
+
return host.length > 2 && host.indexOf("]") === host.length - 1;
|
|
317
|
+
return !host.includes("]") && host.split(":").length > 2;
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* The client-side mirror of the platform's write-time `hosts` checks, so a bad list fails at synth: each
|
|
321
|
+
* entry is an exact host, `*.` and a suffix, or `*`, and a secret that covers a host needs a recipe header to
|
|
322
|
+
* be presented by. The platform-origin and object-store refusals need the deployment's own addresses, so they
|
|
323
|
+
* stay the platform's `400`.
|
|
324
|
+
*/
|
|
325
|
+
function normalizeSecretHosts(hosts, injection, label) {
|
|
326
|
+
if (hosts === undefined)
|
|
327
|
+
return [];
|
|
328
|
+
normalizeCredentialHosts(hosts, label);
|
|
329
|
+
if (hosts.length > 0 && (injection === undefined || (injection.headers ?? []).length === 0)) {
|
|
330
|
+
throw new Error(`${label}: a secret with 'hosts' needs an 'injection' recipe with at least one header, which is how it ` +
|
|
331
|
+
`is presented, such as injection: { headers: [{ name: "Authorization", value: "Bearer \${secret}" }] }.`);
|
|
332
|
+
}
|
|
333
|
+
return [...hosts];
|
|
334
|
+
}
|
|
244
335
|
export class Secret extends Construct {
|
|
245
336
|
/** Accepts a platform id or a slug — see {@link IResource} for the full key rule. */
|
|
246
337
|
secretId;
|
|
247
338
|
#valueFrom;
|
|
248
339
|
#injection;
|
|
340
|
+
#hosts;
|
|
249
341
|
explicitSlug;
|
|
250
342
|
displayName;
|
|
251
343
|
description;
|
|
344
|
+
team;
|
|
252
345
|
constructor(scope, id, props) {
|
|
253
346
|
super(scope, id);
|
|
254
347
|
validateExplicitSlug(this, props.slug, "secret");
|
|
348
|
+
const label = `secret '${this.node.path.join("/")}'`;
|
|
255
349
|
this.#valueFrom = props.value._toValueFrom();
|
|
256
|
-
this.#injection =
|
|
257
|
-
|
|
258
|
-
? undefined
|
|
259
|
-
: normalizeInjectionRecipe(props.injection, `secret '${this.node.path.join("/")}'`);
|
|
350
|
+
this.#injection = props.injection === undefined ? undefined : normalizeInjectionRecipe(props.injection, label);
|
|
351
|
+
this.#hosts = normalizeSecretHosts(props.hosts, this.#injection, label);
|
|
260
352
|
this.explicitSlug = props.slug;
|
|
261
353
|
this.displayName = props.name ?? id;
|
|
262
354
|
this.description = props.description ?? "";
|
|
355
|
+
this.team = props.team;
|
|
263
356
|
this.secretId = refToken("secret", this.node.path);
|
|
264
357
|
}
|
|
265
358
|
slug() {
|
|
@@ -269,19 +362,18 @@ export class Secret extends Construct {
|
|
|
269
362
|
_resourceId() {
|
|
270
363
|
return this.secretId;
|
|
271
364
|
}
|
|
272
|
-
/**
|
|
273
|
-
* @internal — `{secretId}` alone, so the secret's own `injection` recipe supplies the broker's header
|
|
274
|
-
* mutations. A locally-declared secret must actually carry one: binding a recipe-less secret bare would be
|
|
275
|
-
* denied `recipe_conflict` at hydration, which classifies a binding as "recipe" from the blank header.
|
|
276
|
-
*/
|
|
365
|
+
/** @internal — read only by the retired rule-level binding's synth error, which names this secret. */
|
|
277
366
|
_credentialBinding() {
|
|
278
|
-
if (this.#injection === undefined) {
|
|
279
|
-
throw new Error(`egress credential cannot bind bare secret '${this.secretId}': it carries no injection recipe. A bare ` +
|
|
280
|
-
`secret injects the header mutations the secret's own 'injection' block declares — add one to the ` +
|
|
281
|
-
`secret, or bind it with bearer()/basic()/header()/inject() instead (recipe_conflict).`);
|
|
282
|
-
}
|
|
283
367
|
return { secretId: this.secretId };
|
|
284
368
|
}
|
|
369
|
+
/** @internal — a fresh copy of the declared hosts, for synth checks that read a declared secret. */
|
|
370
|
+
_hosts() {
|
|
371
|
+
return [...this.#hosts];
|
|
372
|
+
}
|
|
373
|
+
/** @internal — whether the declared recipe has a header to present this secret by. */
|
|
374
|
+
_presentsHeader() {
|
|
375
|
+
return (this.#injection?.headers ?? []).length > 0;
|
|
376
|
+
}
|
|
285
377
|
/**
|
|
286
378
|
* A raw `JSON.stringify(secret)` would otherwise walk the circular construct tree; this returns only
|
|
287
379
|
* non-secret identity fields, so accidental logging can never dump the recipe or the tree.
|
|
@@ -293,6 +385,8 @@ export class Secret extends Construct {
|
|
|
293
385
|
const slug = this.slug();
|
|
294
386
|
// `description` is ALWAYS emitted, empty when unset, so it is never omit-masked; the only Secret PATCH
|
|
295
387
|
// rides a value overwrite that sends name+description together, so a clear travels with that write.
|
|
388
|
+
// `hosts` is ALWAYS emitted, `[]` when undeclared, so apply sends it and a row at `[]` or with other hosts
|
|
389
|
+
// converges on the declaration.
|
|
296
390
|
// `injection` is emitted only when declared, keeping a recipe-less secret's payload byte-identical, and
|
|
297
391
|
// is DEEP-COPIED because the stored recipe is shared across synths: emitting it by reference would let a
|
|
298
392
|
// caller mutating one returned plan corrupt the validated recipe for every later synth.
|
|
@@ -300,7 +394,9 @@ export class Secret extends Construct {
|
|
|
300
394
|
name: this.displayName,
|
|
301
395
|
slug,
|
|
302
396
|
description: this.description,
|
|
397
|
+
hosts: [...this.#hosts],
|
|
303
398
|
...(this.#injection !== undefined ? { injection: cloneInjectionRecipe(this.#injection) } : {}),
|
|
399
|
+
...(this.team !== undefined ? { teamId: this.team.teamId } : {}),
|
|
304
400
|
};
|
|
305
401
|
return {
|
|
306
402
|
kind: "secret",
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Construct } from "../core/construct.js";
|
|
2
|
+
import { type TeamMembershipDeclaration } from "./team-membership.js";
|
|
3
|
+
export interface IServiceAccount {
|
|
4
|
+
readonly serviceAccountId: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ServiceAccountImportProps {
|
|
7
|
+
memberships: readonly TeamMembershipDeclaration[];
|
|
8
|
+
}
|
|
9
|
+
export declare class ServiceAccount {
|
|
10
|
+
private constructor();
|
|
11
|
+
static fromId(scope: Construct, id: string, props: ServiceAccountImportProps): IServiceAccount;
|
|
12
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// A service account has no slug, so a program names one by its id. The kit never creates one: apply finds
|
|
2
|
+
// the account's membership in the organization and writes the rows declared here as its full set.
|
|
3
|
+
import { teamMembershipRows, TeamMemberships } from "./team-membership.js";
|
|
4
|
+
const SERVICE_ACCOUNT_ID_PATTERN = /^[a-z][a-z0-9]*_[^_]+$/;
|
|
5
|
+
export class ServiceAccount {
|
|
6
|
+
constructor() {
|
|
7
|
+
// static-only
|
|
8
|
+
}
|
|
9
|
+
static fromId(scope, id, props) {
|
|
10
|
+
if (!SERVICE_ACCOUNT_ID_PATTERN.test(id)) {
|
|
11
|
+
throw new Error(`Invalid service account id ${JSON.stringify(id)} for ServiceAccount.fromId: a service account has no ` +
|
|
12
|
+
`slug, so name it by its platform id, a lowercase prefix word, exactly one '_', then a '_'-free ` +
|
|
13
|
+
`suffix (e.g. 'svc_01jq…').`);
|
|
14
|
+
}
|
|
15
|
+
const constructId = id.toLowerCase().replace(/_/g, "-");
|
|
16
|
+
if (scope.node.children.some((child) => child.node.id === constructId)) {
|
|
17
|
+
throw new Error(`service account '${id}' is imported twice. Import each service account once, with its full row set.`);
|
|
18
|
+
}
|
|
19
|
+
const rows = teamMembershipRows(`service account '${id}'`, props.memberships);
|
|
20
|
+
new TeamMemberships(scope, constructId, () => id, { serviceAccountId: id }, rows);
|
|
21
|
+
return { serviceAccountId: id };
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Construct } from "../core/construct.js";
|
|
2
2
|
import type { PlanResource } from "../core/plan.js";
|
|
3
|
-
import type { ISkill } from "./interfaces.js";
|
|
3
|
+
import type { ISkill, ITeam } from "./interfaces.js";
|
|
4
4
|
export interface SkillProps {
|
|
5
5
|
/** Read whole at synth, and its `SKILL.md` name when an agent is constructed; text-only. */
|
|
6
6
|
source: string;
|
|
@@ -8,6 +8,8 @@ export interface SkillProps {
|
|
|
8
8
|
slug?: string;
|
|
9
9
|
/** Cosmetic only — never used in the prompt or in discovery. */
|
|
10
10
|
displayName?: string;
|
|
11
|
+
/** Fixed at create; undeclared, the skill is created in Shared. */
|
|
12
|
+
team?: ITeam;
|
|
11
13
|
}
|
|
12
14
|
/**
|
|
13
15
|
* A directory of instruction text materialized to the runtime by the platform. The apply engine uploads each
|
package/dist/constructs/skill.js
CHANGED
|
@@ -47,6 +47,8 @@ export class Skill extends Construct {
|
|
|
47
47
|
if (this.props.displayName !== undefined) {
|
|
48
48
|
payload.displayName = this.props.displayName;
|
|
49
49
|
}
|
|
50
|
+
if (this.props.team !== undefined)
|
|
51
|
+
payload.teamId = this.props.team.teamId;
|
|
50
52
|
return { kind: "skill", path: this.node.path.join("/"), slug, managed: true, payload };
|
|
51
53
|
}
|
|
52
54
|
/** Sorted by path for a deterministic plan. The missing-root-SKILL.md check only pre-empts a server 400. */
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Construct } from "../core/construct.js";
|
|
2
|
+
import type { PlanResource } from "../core/plan.js";
|
|
3
|
+
import type { IRole, ITeam } from "./interfaces.js";
|
|
4
|
+
/** One role at one scope: one team, or an explicit `allTeams: true`. */
|
|
5
|
+
export type TeamMembershipDeclaration = {
|
|
6
|
+
readonly team: ITeam;
|
|
7
|
+
readonly allTeams?: never;
|
|
8
|
+
readonly role: IRole;
|
|
9
|
+
} | {
|
|
10
|
+
readonly allTeams: true;
|
|
11
|
+
readonly team?: never;
|
|
12
|
+
readonly role: IRole;
|
|
13
|
+
};
|
|
14
|
+
/** The plan wire of one row: exactly one of `teamId` and `allTeams`. */
|
|
15
|
+
export type TeamMembershipRowDocument = {
|
|
16
|
+
teamId: string;
|
|
17
|
+
roleId: string;
|
|
18
|
+
} | {
|
|
19
|
+
allTeams: true;
|
|
20
|
+
roleId: string;
|
|
21
|
+
};
|
|
22
|
+
export type TeamMembershipPrincipal = {
|
|
23
|
+
agentId: string;
|
|
24
|
+
} | {
|
|
25
|
+
serviceAccountId: string;
|
|
26
|
+
};
|
|
27
|
+
export interface TeamMembershipsPayload {
|
|
28
|
+
principal: TeamMembershipPrincipal;
|
|
29
|
+
rows: TeamMembershipRowDocument[];
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Checked at declaration, because the platform refuses each with a 400 and an app runs untypechecked: a row
|
|
33
|
+
* names exactly one scope, a member holds one role per scope, and Owner sits at all teams only.
|
|
34
|
+
*/
|
|
35
|
+
export declare function teamMembershipRows(label: string, declarations: readonly TeamMembershipDeclaration[]): TeamMembershipRowDocument[];
|
|
36
|
+
/** @internal — added beside the principal that declares memberships; never constructed by an app. */
|
|
37
|
+
export declare class TeamMemberships extends Construct {
|
|
38
|
+
private readonly slugOf;
|
|
39
|
+
private readonly principal;
|
|
40
|
+
private readonly rows;
|
|
41
|
+
constructor(scope: Construct, id: string, slugOf: () => string, principal: TeamMembershipPrincipal, rows: readonly TeamMembershipRowDocument[]);
|
|
42
|
+
_toPlanResource(): PlanResource;
|
|
43
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// The team memberships of an agent or an imported service account, declared in code. A declared list is the
|
|
2
|
+
// principal's full row set: apply adds, changes and removes rows until the live set matches it. A row write
|
|
3
|
+
// never touches the membership's policy assignments, so the policies the platform minted at agent create
|
|
4
|
+
// stay.
|
|
5
|
+
import { Construct } from "../core/construct.js";
|
|
6
|
+
import { OWNER_ROLE_SLUG } from "./role.js";
|
|
7
|
+
/**
|
|
8
|
+
* Checked at declaration, because the platform refuses each with a 400 and an app runs untypechecked: a row
|
|
9
|
+
* names exactly one scope, a member holds one role per scope, and Owner sits at all teams only.
|
|
10
|
+
*/
|
|
11
|
+
export function teamMembershipRows(label, declarations) {
|
|
12
|
+
const rows = [];
|
|
13
|
+
const scopes = new Set();
|
|
14
|
+
declarations.forEach((declaration, index) => {
|
|
15
|
+
const at = `${label}: memberships[${index}]`;
|
|
16
|
+
const hasTeam = declaration.team !== undefined;
|
|
17
|
+
const allTeams = declaration.allTeams === true;
|
|
18
|
+
if (hasTeam === allTeams) {
|
|
19
|
+
throw new Error(`${at} must name exactly one scope, a team or allTeams: true. A missing scope never means all teams.`);
|
|
20
|
+
}
|
|
21
|
+
const roleId = declaration.role.roleId;
|
|
22
|
+
if (hasTeam && roleId === OWNER_ROLE_SLUG) {
|
|
23
|
+
throw new Error(`${at} places Owner at one team. Owner is assignable at all teams only; use allTeams: true.`);
|
|
24
|
+
}
|
|
25
|
+
const row = hasTeam
|
|
26
|
+
? { teamId: declaration.team.teamId, roleId }
|
|
27
|
+
: { allTeams: true, roleId };
|
|
28
|
+
const scope = "teamId" in row ? `team ${row.teamId}` : "all teams";
|
|
29
|
+
if (scopes.has(scope)) {
|
|
30
|
+
throw new Error(`${at} is a second row at ${scope}. A member holds one role per scope, so combine the two in a custom role.`);
|
|
31
|
+
}
|
|
32
|
+
scopes.add(scope);
|
|
33
|
+
rows.push(row);
|
|
34
|
+
});
|
|
35
|
+
// All teams first, then by team reference, so the plan bytes do not depend on declaration order.
|
|
36
|
+
return rows.sort((a, b) => (scopeKey(a) < scopeKey(b) ? -1 : scopeKey(a) > scopeKey(b) ? 1 : 0));
|
|
37
|
+
}
|
|
38
|
+
function scopeKey(row) {
|
|
39
|
+
return "teamId" in row ? `1 ${row.teamId}` : "0";
|
|
40
|
+
}
|
|
41
|
+
/** @internal — added beside the principal that declares memberships; never constructed by an app. */
|
|
42
|
+
export class TeamMemberships extends Construct {
|
|
43
|
+
slugOf;
|
|
44
|
+
principal;
|
|
45
|
+
rows;
|
|
46
|
+
constructor(scope, id, slugOf, principal, rows) {
|
|
47
|
+
super(scope, id);
|
|
48
|
+
this.slugOf = slugOf;
|
|
49
|
+
this.principal = principal;
|
|
50
|
+
this.rows = rows;
|
|
51
|
+
}
|
|
52
|
+
_toPlanResource() {
|
|
53
|
+
const payload = {
|
|
54
|
+
principal: { ...this.principal },
|
|
55
|
+
rows: this.rows.map((row) => ({ ...row })),
|
|
56
|
+
};
|
|
57
|
+
return { kind: "team-membership", path: this.node.path.join("/"), slug: this.slugOf(), managed: true, payload };
|
|
58
|
+
}
|
|
59
|
+
}
|