@orchestraworks/cli 0.5.5 → 0.5.7
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/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 +2 -2
- package/dist/cli/firstRun.js +12 -13
- 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 +84 -89
- 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 +74 -64
- package/skills/orchestra-fdk/references/authoring.md +75 -39
- package/skills/orchestra-fdk/references/environment.md +214 -33
- package/skills/orchestra-fdk/references/troubleshooting.md +8 -7
- 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
|
@@ -1,46 +1,37 @@
|
|
|
1
|
-
// Cross-references (
|
|
1
|
+
// Cross-references (volume ids in mounts, the pull credential's secret id) serialize as `${ref:…}` tokens
|
|
2
2
|
// or verbatim import refs and resolve to canonical ids at apply. Server-default sub-fields are emitted
|
|
3
3
|
// explicitly so the whole-object egress/ingress diff stays stable.
|
|
4
4
|
import { Construct } from "../core/construct.js";
|
|
5
|
-
import {
|
|
5
|
+
import { hostPatternCovers } from "../core/host-pattern.js";
|
|
6
|
+
import { isRefToken, parseRefToken, refToken } from "../core/tokens.js";
|
|
6
7
|
import { connectionLabel } from "./connection.js";
|
|
7
|
-
import {
|
|
8
|
+
import { CONNECTION_RULE_PRIORITY } from "./egress-preset.js";
|
|
8
9
|
import { interpolateHost } from "./provider-types.js";
|
|
9
10
|
import { registerImport, resolveManagedSlug, validateExplicitSlug, } from "./references.js";
|
|
10
|
-
import { cloneInjectionRecipe, normalizeInjectionRecipe } from "./secret.js";
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
import { cloneInjectionRecipe, normalizeInjectionRecipe, Secret } from "./secret.js";
|
|
12
|
+
// The four binders below survive only so a rule that still names a credential fails at synth with the exact
|
|
13
|
+
// `injection` its Secret should declare: a rule carries no credential, and the binder is what knows the form.
|
|
14
|
+
/** @deprecated A rule carries no credential: declare `hosts` and `injection` on the Secret instead. */
|
|
13
15
|
export function bearer(header, secret) {
|
|
14
16
|
const secretId = secret.secretId;
|
|
15
17
|
return { _credentialBinding: () => ({ header, secretId, valueTemplate: "Bearer ${secret}" }) };
|
|
16
18
|
}
|
|
19
|
+
/** @deprecated A rule carries no credential: declare `hosts` and `injection` on the Secret instead. */
|
|
17
20
|
export function basic(header, secret) {
|
|
18
21
|
const secretId = secret.secretId;
|
|
19
22
|
return { _credentialBinding: () => ({ header, secretId, valueTemplate: "Basic ${secret}" }) };
|
|
20
23
|
}
|
|
21
|
-
/**
|
|
22
|
-
* Injects `<header>: <secret>` verbatim with no scheme prefix, for a provider-specific header whose value is
|
|
23
|
-
* the secret as-is.
|
|
24
|
-
*/
|
|
24
|
+
/** @deprecated A rule carries no credential: declare `hosts` and `injection` on the Secret instead. */
|
|
25
25
|
export function header(name, secret) {
|
|
26
26
|
const secretId = secret.secretId;
|
|
27
27
|
return { _credentialBinding: () => ({ header: name, secretId, valueTemplate: "${secret}" }) };
|
|
28
28
|
}
|
|
29
|
-
/**
|
|
30
|
-
* OVERRIDES the secret's own recipe wholesale at the broker — replace, never merge. The recipe is validated
|
|
31
|
-
* and normalized once here and the producer hands out a deep copy each call, so a caller cannot mutate the
|
|
32
|
-
* validated recipe after `allow()` to smuggle an unvalidated header past synth validation. There is
|
|
33
|
-
* deliberately no recipe-presence check on `secret`: overriding a recipe-less secret is the whole point, since
|
|
34
|
-
* the bare secret means "use the secret's own recipe" and `inject()` means "use THIS one".
|
|
35
|
-
*/
|
|
29
|
+
/** @deprecated A rule carries no credential: declare `hosts` and `injection` on the Secret instead. */
|
|
36
30
|
export function inject(secret, recipe) {
|
|
37
31
|
const secretId = secret.secretId;
|
|
38
32
|
const normalized = normalizeInjectionRecipe(recipe, `inject() binding for secret '${secretId}'`);
|
|
39
33
|
return { _credentialBinding: () => ({ secretId, injection: cloneInjectionRecipe(normalized) }) };
|
|
40
34
|
}
|
|
41
|
-
function isConnectionRule(rule) {
|
|
42
|
-
return "connectionId" in rule;
|
|
43
|
-
}
|
|
44
35
|
/**
|
|
45
36
|
* 300 is deliberately the same band `allow(connection)` defaults to, not a race won: priority only arbitrates
|
|
46
37
|
* between rules matching the SAME host, and no connection provider declares the model gateway's host.
|
|
@@ -54,7 +45,7 @@ const DEFAULT_MODEL_GATEWAY_RULE_NAME = "model-gateway";
|
|
|
54
45
|
export const DEFAULT_MODEL_GATEWAY_HOST = "models.orchestraworks.ai";
|
|
55
46
|
/**
|
|
56
47
|
* One DNS name and nothing else: `hosts` is matched as a host pattern, so a scheme, path or port would match
|
|
57
|
-
* no request, and a `*` would
|
|
48
|
+
* no request, and a `*` would open every host to the network.
|
|
58
49
|
*/
|
|
59
50
|
const BARE_HOSTNAME = /^[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?(?:\.[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?)*$/;
|
|
60
51
|
/**
|
|
@@ -140,69 +131,42 @@ function normalizePaths(ruleName, paths) {
|
|
|
140
131
|
return [...paths];
|
|
141
132
|
}
|
|
142
133
|
/**
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
*
|
|
146
|
-
*
|
|
147
|
-
* Each entry's own `_credentialBinding()` produces its fresh wire literal here (a recipe-less local `Secret`
|
|
148
|
-
* throws its synth error at this point); the produced literals are the rule's stored, snapshot-immutable
|
|
149
|
-
* credential data — a caller mutating their array or inputs after `allow()` cannot reach them.
|
|
134
|
+
* A rule that still names a credential is an authored statement that can no longer apply, so it fails here
|
|
135
|
+
* with the Secret declaration that replaces it: the rule's hosts become the Secret's `hosts`, and the binder's
|
|
136
|
+
* form becomes its `injection`.
|
|
150
137
|
*/
|
|
151
|
-
function
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
for (const binding of bindings) {
|
|
167
|
-
// A recipe/injection binding names no header (its recipe does), so it has nothing to collide on and is
|
|
168
|
-
// skipped; uniqueness stays enforced across the single-header bindings beside it.
|
|
169
|
-
if (binding.header === undefined) {
|
|
170
|
-
continue;
|
|
171
|
-
}
|
|
172
|
-
const key = binding.header.toLowerCase();
|
|
173
|
-
if (seen.has(key)) {
|
|
174
|
-
throw new Error(`egress rule '${ruleName}': duplicate credential header '${binding.header}' (header names match ` +
|
|
175
|
-
`case-insensitively). Bind each header at most once.`);
|
|
176
|
-
}
|
|
177
|
-
seen.add(key);
|
|
178
|
-
}
|
|
179
|
-
return bindings;
|
|
138
|
+
function refuseRuleCredential(ruleName, options, hosts) {
|
|
139
|
+
const declared = options.credentials !== undefined
|
|
140
|
+
? Array.isArray(options.credentials)
|
|
141
|
+
? options.credentials
|
|
142
|
+
: [options.credentials]
|
|
143
|
+
: options.credential !== undefined
|
|
144
|
+
? [options.credential]
|
|
145
|
+
: [];
|
|
146
|
+
if (declared.length === 0 && options.credentials === undefined)
|
|
147
|
+
return;
|
|
148
|
+
const remedies = declared.map((entry) => secretRemedy(entry, hosts));
|
|
149
|
+
throw new Error(`egress rule '${ruleName}': a rule carries no credential, so 'credential'/'credentials' is not accepted. ` +
|
|
150
|
+
`A credential declares where and how it is presented on its own resource: ` +
|
|
151
|
+
`${remedies.length > 0 ? remedies.join("; ") : "give the Secret 'hosts' and an 'injection' recipe"}. ` +
|
|
152
|
+
`Then keep this rule as a network rule, with no credential.`);
|
|
180
153
|
}
|
|
181
|
-
/**
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
}
|
|
198
|
-
if (!known.has(host)) {
|
|
199
|
-
throw new Error(`egress rule '${ctx.ruleName}': 'credentialHosts' host '${host}' is not one of connection provider ` +
|
|
200
|
-
`'${ctx.providerId}' hosts ${JSON.stringify(interpolatedHosts)}. Name the INTERPOLATED host (the ` +
|
|
201
|
-
`install values are already substituted), not the '{param}' pattern.`);
|
|
202
|
-
}
|
|
203
|
-
selected.add(host);
|
|
204
|
-
}
|
|
205
|
-
return selected;
|
|
154
|
+
/** The Secret declaration one binder stands for, with no value: a recipe and host names only. */
|
|
155
|
+
function secretRemedy(entry, hosts) {
|
|
156
|
+
const binding = entry !== null && typeof entry === "object" && "_credentialBinding" in entry
|
|
157
|
+
? entry._credentialBinding()
|
|
158
|
+
: undefined;
|
|
159
|
+
if (binding === undefined)
|
|
160
|
+
return "give the Secret 'hosts' and an 'injection' recipe";
|
|
161
|
+
const name = isRefToken(binding.secretId)
|
|
162
|
+
? `Secret '${parseRefToken(binding.secretId).path.join("/")}'`
|
|
163
|
+
: `secret '${binding.secretId}'`;
|
|
164
|
+
const injection = binding.injection !== undefined
|
|
165
|
+
? JSON.stringify(binding.injection)
|
|
166
|
+
: binding.header !== undefined
|
|
167
|
+
? JSON.stringify({ headers: [{ name: binding.header, value: binding.valueTemplate }] })
|
|
168
|
+
: "its own injection recipe";
|
|
169
|
+
return `${name} takes hosts: ${JSON.stringify(hosts)} and injection: ${injection}`;
|
|
206
170
|
}
|
|
207
171
|
/**
|
|
208
172
|
* **The builder is mutating, and every chaining method returns `this`, not a copy.** `denyAll()` or
|
|
@@ -224,9 +188,9 @@ export class EgressPolicy {
|
|
|
224
188
|
return new EgressPolicy("deny");
|
|
225
189
|
}
|
|
226
190
|
/**
|
|
227
|
-
* Allows every host no rule matches. Rules fold onto it exactly as onto {@link denyAll}
|
|
228
|
-
*
|
|
229
|
-
*
|
|
191
|
+
* Allows every host no rule matches. Rules fold onto it exactly as onto {@link denyAll}, and a deny still
|
|
192
|
+
* refuses. It opens hosts, not ports: the ports the edge answers on are the same under either starting
|
|
193
|
+
* point.
|
|
230
194
|
*/
|
|
231
195
|
static allowAll() {
|
|
232
196
|
return new EgressPolicy("allow");
|
|
@@ -238,8 +202,7 @@ export class EgressPolicy {
|
|
|
238
202
|
* step the first time a future mint site pushed a rule without claiming, leaving that rule on the wire and
|
|
239
203
|
* invisible to the check. Deliberately order-blind, so applying one preset twice is an error too, and
|
|
240
204
|
* checked BEFORE the rule's shape normalizers, because the name is the rule's identity — except where a
|
|
241
|
-
* mint site
|
|
242
|
-
* outright. `fix` is the one sentence that differs per mint site.
|
|
205
|
+
* mint site has already refused the entry outright. `fix` is the one sentence that differs per mint site.
|
|
243
206
|
*/
|
|
244
207
|
claimRuleName(name, fix) {
|
|
245
208
|
if (this.rules.some((rule) => rule.name === name)) {
|
|
@@ -252,16 +215,17 @@ export class EgressPolicy {
|
|
|
252
215
|
if (typeof first === "string") {
|
|
253
216
|
const rule = second;
|
|
254
217
|
this.claimRuleName(first, "Rename one of them, or drop the duplicate declaration.");
|
|
218
|
+
// COPIED on intake by each normalizer: the stored rule is the policy's own snapshot, so a caller
|
|
219
|
+
// mutating their `hosts`/`paths` array after `allow()` cannot change what later synths emit.
|
|
220
|
+
const hosts = normalizeHosts(first, rule.hosts);
|
|
221
|
+
refuseRuleCredential(first, rule, hosts);
|
|
255
222
|
this.rules.push({
|
|
256
223
|
name: first,
|
|
257
224
|
action: "allow",
|
|
258
|
-
|
|
259
|
-
// mutating their `hosts`/`paths` array after `allow()` cannot change what later synths emit.
|
|
260
|
-
hosts: normalizeHosts(first, rule.hosts),
|
|
225
|
+
hosts,
|
|
261
226
|
priority: rule.priority,
|
|
262
227
|
paths: normalizePaths(first, rule.paths),
|
|
263
228
|
methods: normalizeMethods(first, rule.methods),
|
|
264
|
-
credentials: normalizeCredentials(first, rule),
|
|
265
229
|
});
|
|
266
230
|
return this;
|
|
267
231
|
}
|
|
@@ -269,59 +233,24 @@ export class EgressPolicy {
|
|
|
269
233
|
const opts = second ?? {};
|
|
270
234
|
const name = opts.name ?? `connection-${connectionLabel(connection)}`;
|
|
271
235
|
const hosts = connection.provider.apiHosts.map((host) => interpolateHost(host, connection.installValues, { providerId: connection.provider.id, ruleName: name }));
|
|
272
|
-
|
|
273
|
-
|
|
236
|
+
if (opts.credentialHosts !== undefined) {
|
|
237
|
+
throw new Error(`egress rule '${name}': 'credentialHosts' is not accepted, because a rule carries no credential. The ` +
|
|
238
|
+
`connection's own 'hosts' choose the catalog hosts its credential is presented on, such as ` +
|
|
239
|
+
`hosts: ${JSON.stringify(opts.credentialHosts)} on the Connection. Drop 'credentialHosts' from this ` +
|
|
240
|
+
`rule.`);
|
|
241
|
+
}
|
|
274
242
|
// The derived name is what two grants for the SAME connection collide on — most often a second, narrower
|
|
275
243
|
// `allow(connection, { paths })` beside the broad one. `name:` is the knob.
|
|
276
|
-
|
|
277
|
-
`one rule
|
|
278
|
-
if (opts.credentialHosts === undefined) {
|
|
279
|
-
this.claimRuleName(name, connectionNameFix);
|
|
280
|
-
this.rules.push({
|
|
281
|
-
name,
|
|
282
|
-
action: "allow",
|
|
283
|
-
hosts,
|
|
284
|
-
priority,
|
|
285
|
-
paths,
|
|
286
|
-
methods: ["*"],
|
|
287
|
-
connectionId: connection.connectionId,
|
|
288
|
-
valueTemplate: AUTHORIZATION_TEMPLATE,
|
|
289
|
-
});
|
|
290
|
-
return this;
|
|
291
|
-
}
|
|
292
|
-
// Both partitions preserve the provider's declaration order, and both names are derived (never
|
|
293
|
-
// author-supplied) so the pair is deterministic across synths.
|
|
294
|
-
const credentialed = validateCredentialHosts(opts.credentialHosts, hosts, {
|
|
295
|
-
providerId: connection.provider.id,
|
|
296
|
-
ruleName: name,
|
|
297
|
-
});
|
|
298
|
-
const remainder = hosts.filter((host) => !credentialed.has(host));
|
|
299
|
-
// Each partition name is claimed right before its own push: the pair is derived and mutually
|
|
300
|
-
// collision-safe, but the BASE name is the author's.
|
|
301
|
-
this.claimRuleName(`${name}${CREDENTIAL_RULE_SUFFIX}`, connectionNameFix);
|
|
244
|
+
this.claimRuleName(name, `Give one of the two grants its own name (\`allow(connection, { name: "…" })\`), or fold them into ` +
|
|
245
|
+
`one rule.`);
|
|
302
246
|
this.rules.push({
|
|
303
|
-
name
|
|
247
|
+
name,
|
|
304
248
|
action: "allow",
|
|
305
|
-
hosts
|
|
306
|
-
priority,
|
|
307
|
-
paths:
|
|
249
|
+
hosts,
|
|
250
|
+
priority: opts.priority ?? CONNECTION_RULE_PRIORITY,
|
|
251
|
+
paths: normalizePaths(name, opts.paths),
|
|
308
252
|
methods: ["*"],
|
|
309
|
-
connectionId: connection.connectionId,
|
|
310
|
-
valueTemplate: AUTHORIZATION_TEMPLATE,
|
|
311
253
|
});
|
|
312
|
-
// Omitted when the subset is every host: an empty-host rule would allow nothing.
|
|
313
|
-
if (remainder.length > 0) {
|
|
314
|
-
this.claimRuleName(`${name}${CREDENTIAL_FREE_RULE_SUFFIX}`, connectionNameFix);
|
|
315
|
-
this.rules.push({
|
|
316
|
-
name: `${name}${CREDENTIAL_FREE_RULE_SUFFIX}`,
|
|
317
|
-
action: "allow",
|
|
318
|
-
hosts: remainder,
|
|
319
|
-
priority,
|
|
320
|
-
paths: [...paths],
|
|
321
|
-
methods: ["*"],
|
|
322
|
-
credentials: [],
|
|
323
|
-
});
|
|
324
|
-
}
|
|
325
254
|
return this;
|
|
326
255
|
}
|
|
327
256
|
/**
|
|
@@ -329,9 +258,8 @@ export class EgressPolicy {
|
|
|
329
258
|
* host, everything on that host is open, and a deny carves a hole back out of it while the allow beside it
|
|
330
259
|
* serves the rest. **Deny wins among equal-priority matches**, so it can never lose a tie, but it CAN lose
|
|
331
260
|
* to a strictly higher-priority allow — which is why its default priority sits above the band the
|
|
332
|
-
*
|
|
333
|
-
*
|
|
334
|
-
* see or ask for. Both `paths` and `methods` default to `["*"]`, so `deny(name, { hosts })` is a total
|
|
261
|
+
* connection allow rules use. A denied request fails closed at the broker before any credential is
|
|
262
|
+
* resolved: a fence at the network edge, not a narrowing of what the agent may see or ask for. Both `paths` and `methods` default to `["*"]`, so `deny(name, { hosts })` is a total
|
|
335
263
|
* revocation on a host an allow rule opens; narrow at least one when the intent is partial.
|
|
336
264
|
*/
|
|
337
265
|
deny(name, rule) {
|
|
@@ -345,19 +273,18 @@ export class EgressPolicy {
|
|
|
345
273
|
priority: rule.priority ?? DEFAULT_DENY_PRIORITY,
|
|
346
274
|
paths: normalizePaths(name, rule.paths),
|
|
347
275
|
methods: normalizeMethods(name, rule.methods),
|
|
348
|
-
credentials: [],
|
|
349
276
|
});
|
|
350
277
|
return this;
|
|
351
278
|
}
|
|
352
279
|
/**
|
|
353
|
-
* Routes this environment's model traffic through the model gateway
|
|
354
|
-
*
|
|
355
|
-
*
|
|
356
|
-
*
|
|
357
|
-
*
|
|
358
|
-
*
|
|
359
|
-
*
|
|
360
|
-
*
|
|
280
|
+
* Routes this environment's model traffic through the model gateway: one ordinary allow rule named
|
|
281
|
+
* `model-gateway` on the gateway host. The key is presented by its own Secret, which declares the gateway
|
|
282
|
+
* host in its `hosts` and an `injection` recipe — `Authorization: Bearer ${secret}`, removing `x-api-key`,
|
|
283
|
+
* because the runtime image bakes an `ANTHROPIC_API_KEY` placeholder the claude harness sends as `x-api-key`
|
|
284
|
+
* and the gateway refuses a request whose two key headers disagree. A declared key is checked for both at
|
|
285
|
+
* synth; an imported one cannot be read here and is the platform's to check. The harness learns the gateway
|
|
286
|
+
* address from the agent's `modelSettings.enableModelGateway`, which an app routing through the gateway sets
|
|
287
|
+
* as well.
|
|
361
288
|
*/
|
|
362
289
|
routeModelsViaGateway(opts) {
|
|
363
290
|
// Read through an optional chain: an untyped `npx tsx` caller can omit the options bag entirely.
|
|
@@ -371,14 +298,20 @@ export class EgressPolicy {
|
|
|
371
298
|
throw new Error(`routeModelsViaGateway(): 'host' must be a bare hostname such as "${DEFAULT_MODEL_GATEWAY_HOST}", ` +
|
|
372
299
|
`but got ${JSON.stringify(host)}. Drop any scheme, path, port or '*'.`);
|
|
373
300
|
}
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
301
|
+
if (key instanceof Secret) {
|
|
302
|
+
const remedy = `Declare it as new Secret(scope, id, { value: SecretValue.fromGatewayKey(gatewayKey), ` +
|
|
303
|
+
`hosts: ["${host}"], injection: { headers: [{ name: "Authorization", value: "Bearer \${secret}" }], ` +
|
|
304
|
+
`removeHeaders: ["x-api-key"] } }).`;
|
|
305
|
+
if (!key._presentsHeader()) {
|
|
306
|
+
throw new Error(`routeModelsViaGateway(): key Secret '${key.node.path.join("/")}' has no 'injection' header, so the ` +
|
|
307
|
+
`gateway key is never presented. ${remedy}`);
|
|
308
|
+
}
|
|
309
|
+
if (!key._hosts().some((pattern) => hostPatternCovers(pattern, host))) {
|
|
310
|
+
throw new Error(`routeModelsViaGateway(): key Secret '${key.node.path.join("/")}' does not cover '${host}' in its ` +
|
|
311
|
+
`'hosts' ${JSON.stringify(key._hosts())}, so model calls would leave with no key. ${remedy}`);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
return this.allow(DEFAULT_MODEL_GATEWAY_RULE_NAME, { hosts: [host], priority: DEFAULT_MODEL_GATEWAY_PRIORITY });
|
|
382
315
|
}
|
|
383
316
|
/**
|
|
384
317
|
* Each entry lands as an ordinary allow rule — the same wire shape, in the same `rules` array, in the same
|
|
@@ -386,18 +319,12 @@ export class EgressPolicy {
|
|
|
386
319
|
* hand: there is nothing to learn about presets when reading a plan, a diff, or the live environment.
|
|
387
320
|
*
|
|
388
321
|
* Rules are appended where the call sits in the chain, and the matcher arbitrates by priority first (preset
|
|
389
|
-
* rows sit below every band shipped policies use) and by declaration order only among equal-priority ties
|
|
390
|
-
*
|
|
391
|
-
*
|
|
392
|
-
* a rule you already named fails, and so does applying the same preset twice.
|
|
322
|
+
* rows sit below every band shipped policies use) and by declaration order only among equal-priority ties.
|
|
323
|
+
* A name collision is a synth error, so applying a preset over a rule you already named fails, and so does
|
|
324
|
+
* applying the same preset twice.
|
|
393
325
|
*/
|
|
394
326
|
applyPreset(bundle) {
|
|
395
327
|
for (const rule of bundle) {
|
|
396
|
-
// This is the ONE place a bundle entry's credential is read, and recognition is by instance identity,
|
|
397
|
-
// never by property shape: a hand-built object with the same fields — or a `structuredClone` of a real
|
|
398
|
-
// entry — is simply not one, so it folds as the ordinary anonymous allow rule its fields describe. That
|
|
399
|
-
// degradation is the safety property: the worst an author can express by hand is a credential-free rule.
|
|
400
|
-
const credential = connectionCredentialOf(rule);
|
|
401
328
|
// `action` is typed `"allow"` and nothing else, but a bundle assembled by hand in an untyped `npx tsx`
|
|
402
329
|
// app carries whatever it carries, and an entry spelling `action: "deny"` folded on as an ALLOW rule
|
|
403
330
|
// would invert the author's stated prohibition into a grant with no error anywhere. Checked before the
|
|
@@ -407,11 +334,10 @@ export class EgressPolicy {
|
|
|
407
334
|
`${JSON.stringify(rule.action)}. A bundle opens reachability; a prohibition is the app's own ` +
|
|
408
335
|
`\`deny(...)\` rule, stated where a reader looks for it and at a priority that wins.`);
|
|
409
336
|
}
|
|
410
|
-
this.claimRuleName(rule.name,
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
const common = {
|
|
337
|
+
this.claimRuleName(rule.name, `Rename the rule you authored, drop it in favor of the preset's, or apply the preset once. A ` +
|
|
338
|
+
`connection's bundle supersedes a separate \`allow(connection)\` grant — apply one of them, and ` +
|
|
339
|
+
`apply each connection's bundle once.`);
|
|
340
|
+
this.rules.push({
|
|
415
341
|
name: rule.name,
|
|
416
342
|
// Narrowed, not assumed: the guard above has already refused every other spelling.
|
|
417
343
|
action: "allow",
|
|
@@ -419,20 +345,14 @@ export class EgressPolicy {
|
|
|
419
345
|
priority: rule.priority,
|
|
420
346
|
paths: normalizePaths(rule.name, rule.paths),
|
|
421
347
|
methods: normalizeMethods(rule.name, rule.methods),
|
|
422
|
-
};
|
|
423
|
-
this.rules.push(credential !== undefined
|
|
424
|
-
? // The SAME `ConnectionAllowRule` shape `allow(connection)` stores, so the wire is one shape from
|
|
425
|
-
// one place, carrying whichever carriage the entry declared.
|
|
426
|
-
{ ...common, connectionId: credential.connectionId, valueTemplate: credential.valueTemplate }
|
|
427
|
-
: { ...common, credentials: [] });
|
|
348
|
+
});
|
|
428
349
|
}
|
|
429
350
|
return this;
|
|
430
351
|
}
|
|
431
352
|
/**
|
|
432
|
-
* Every emitted array is FRESH — `hosts`/`paths` are copied out of the stored rule
|
|
433
|
-
*
|
|
434
|
-
*
|
|
435
|
-
* later synth would emit the mutation.
|
|
353
|
+
* Every emitted array is FRESH — `hosts`/`paths`/`methods` are copied out of the stored rule — so the payload
|
|
354
|
+
* shares no mutable structure with the policy. Without the copy, mutating one synthesized plan's
|
|
355
|
+
* `rules[i].hosts` would mutate the stored rule and every later synth would emit the mutation.
|
|
436
356
|
*/
|
|
437
357
|
_toPayload() {
|
|
438
358
|
return {
|
|
@@ -445,41 +365,10 @@ export class EgressPolicy {
|
|
|
445
365
|
hosts: [...rule.hosts],
|
|
446
366
|
paths: [...rule.paths],
|
|
447
367
|
methods: [...rule.methods],
|
|
448
|
-
agentIds: [],
|
|
449
|
-
credentialBindings: credentialBindingsFor(rule),
|
|
450
368
|
})),
|
|
451
369
|
};
|
|
452
370
|
}
|
|
453
371
|
}
|
|
454
|
-
/**
|
|
455
|
-
* The omitted keys on each arm are deliberate, not defaults-elided: the platform classifies a binding as
|
|
456
|
-
* "recipe" from the BLANK `header` and rejects an omitted header paired with a meaningful `valueTemplate`, or
|
|
457
|
-
* a `header` beside an `injection`. Omission is safe against both the whole-object PATCH (the server
|
|
458
|
-
* re-applies its own defaults, which is exactly the recipe shape) and the no-change diff, which walks the
|
|
459
|
-
* DESIRED keys only.
|
|
460
|
-
*/
|
|
461
|
-
function credentialBindingsFor(rule) {
|
|
462
|
-
if (isConnectionRule(rule)) {
|
|
463
|
-
// `valueTemplate` is the rule's own stored carriage, a platform placeholder naming a RENDERING rather than
|
|
464
|
-
// a credential value.
|
|
465
|
-
return [
|
|
466
|
-
{ header: "Authorization", connectionId: rule.connectionId, valueTemplate: rule.valueTemplate },
|
|
467
|
-
];
|
|
468
|
-
}
|
|
469
|
-
// Each arm's exact wire keys are projected again here, never spread, so the plan payload can never carry a
|
|
470
|
-
// stray key or an object by reference. The `injection` recipe is the one nested mutable structure, and it is
|
|
471
|
-
// DEEP-COPIED because the stored one is shared across synths: without that, a caller mutating one returned
|
|
472
|
-
// plan's recipe would corrupt the stored policy and every later synth would emit the mutation unvalidated.
|
|
473
|
-
return rule.credentials.map((binding) => {
|
|
474
|
-
if (binding.injection !== undefined) {
|
|
475
|
-
return { secretId: binding.secretId, injection: cloneInjectionRecipe(binding.injection) };
|
|
476
|
-
}
|
|
477
|
-
if (binding.header === undefined) {
|
|
478
|
-
return { secretId: binding.secretId };
|
|
479
|
-
}
|
|
480
|
-
return { header: binding.header, secretId: binding.secretId, valueTemplate: binding.valueTemplate };
|
|
481
|
-
});
|
|
482
|
-
}
|
|
483
372
|
/**
|
|
484
373
|
* Used for exactly one thing: deriving an OMITTED memory from the selected cpu, the same way the platform
|
|
485
374
|
* derives it. A flat `"4G"` fill would make `{ cpu: "8" }` synthesize `8 : 4G` — half a gigabyte per core — so
|
|
@@ -642,6 +531,7 @@ export class Environment extends Construct {
|
|
|
642
531
|
? { computeProviderId: this.props.computeProvider?.computeProviderId ?? null }
|
|
643
532
|
: {}),
|
|
644
533
|
},
|
|
534
|
+
...(this.props.team !== undefined ? { teamId: this.props.team.teamId } : {}),
|
|
645
535
|
};
|
|
646
536
|
return { kind: "environment", path: this.node.path.join("/"), slug, managed: true, payload };
|
|
647
537
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Construct } from "../core/construct.js";
|
|
2
2
|
import type { PlanResource } from "../core/plan.js";
|
|
3
|
-
import type { IGatewayKey } from "./interfaces.js";
|
|
3
|
+
import type { IGatewayKey, ITeam } from "./interfaces.js";
|
|
4
4
|
export interface GatewayKeyProps {
|
|
5
5
|
readonly slug?: string;
|
|
6
6
|
readonly displayName?: string;
|
|
@@ -10,6 +10,8 @@ export interface GatewayKeyProps {
|
|
|
10
10
|
*/
|
|
11
11
|
readonly monthlyCreditCap?: number;
|
|
12
12
|
readonly labels?: Record<string, string>;
|
|
13
|
+
/** Fixed at create, and the same as its paired Secret's; undeclared, the key is created in Shared. */
|
|
14
|
+
readonly team?: ITeam;
|
|
13
15
|
}
|
|
14
16
|
export declare class GatewayKey extends Construct implements IGatewayKey {
|
|
15
17
|
/** Accepts a platform id or a slug interchangeably — one rule, stated on `IResource`. */
|
|
@@ -18,6 +20,7 @@ export declare class GatewayKey extends Construct implements IGatewayKey {
|
|
|
18
20
|
private readonly displayName;
|
|
19
21
|
private readonly monthlyCreditCap;
|
|
20
22
|
private readonly labels;
|
|
23
|
+
private readonly team;
|
|
21
24
|
constructor(scope: Construct, id: string, props?: GatewayKeyProps);
|
|
22
25
|
get slug(): string;
|
|
23
26
|
/** @internal */
|
|
@@ -16,6 +16,7 @@ export class GatewayKey extends Construct {
|
|
|
16
16
|
displayName;
|
|
17
17
|
monthlyCreditCap;
|
|
18
18
|
labels;
|
|
19
|
+
team;
|
|
19
20
|
constructor(scope, id, props = {}) {
|
|
20
21
|
super(scope, id);
|
|
21
22
|
validateExplicitSlug(this, props.slug, "gateway-key");
|
|
@@ -28,6 +29,7 @@ export class GatewayKey extends Construct {
|
|
|
28
29
|
this.displayName = props.displayName ?? id;
|
|
29
30
|
this.monthlyCreditCap = props.monthlyCreditCap;
|
|
30
31
|
this.labels = { ...(props.labels ?? {}) };
|
|
32
|
+
this.team = props.team;
|
|
31
33
|
this.gatewayKeyId = refToken("gateway-key", this.node.path);
|
|
32
34
|
}
|
|
33
35
|
get slug() {
|
|
@@ -46,9 +48,7 @@ export class GatewayKey extends Construct {
|
|
|
46
48
|
}
|
|
47
49
|
_toPlanResource() {
|
|
48
50
|
const slug = this.slug;
|
|
49
|
-
// `
|
|
50
|
-
// project stamp, unlike the org-commons `model-provider-key`. `labels` is always emitted because the
|
|
51
|
-
// create wire requires it; that is safe on UPDATE because `engine/gateway-key-reconcile.ts` assembles the
|
|
51
|
+
// `labels` is always emitted because the create wire requires it; that is safe on UPDATE because `engine/gateway-key-reconcile.ts` assembles the
|
|
52
52
|
// PATCH one declared field at a time from actual drift, so an empty declared map is never sent and a
|
|
53
53
|
// PATCH of some other field cannot clear labels a sibling app or the console set on a shared key.
|
|
54
54
|
const payload = {
|
|
@@ -56,6 +56,7 @@ export class GatewayKey extends Construct {
|
|
|
56
56
|
displayName: this.displayName,
|
|
57
57
|
labels: { ...this.labels },
|
|
58
58
|
...(this.monthlyCreditCap !== undefined ? { monthlyCreditCap: this.monthlyCreditCap } : {}),
|
|
59
|
+
...(this.team !== undefined ? { teamId: this.team.teamId } : {}),
|
|
59
60
|
};
|
|
60
61
|
return { kind: "gateway-key", path: this.node.path.join("/"), slug, managed: true, payload };
|
|
61
62
|
}
|
|
@@ -17,9 +17,17 @@ export interface IResource {
|
|
|
17
17
|
*/
|
|
18
18
|
_resourceId(): string;
|
|
19
19
|
}
|
|
20
|
-
export interface
|
|
20
|
+
export interface ITeam extends IResource {
|
|
21
21
|
/** Accepts a platform id or a slug interchangeably — one rule, stated on {@link IResource}. */
|
|
22
|
-
readonly
|
|
22
|
+
readonly teamId: string;
|
|
23
|
+
}
|
|
24
|
+
/** A managed role's slug is its id, so `roleId` holds either a managed slug or a custom role's reference. */
|
|
25
|
+
export interface IRole extends IResource {
|
|
26
|
+
readonly roleId: string;
|
|
27
|
+
}
|
|
28
|
+
/** A policy has no slug, so it is named by its id alone. */
|
|
29
|
+
export interface IPolicy extends IResource {
|
|
30
|
+
readonly policyId: string;
|
|
23
31
|
}
|
|
24
32
|
/**
|
|
25
33
|
* The exactly-emitted plan literal for one egress credential binding: a legacy single-header binding
|
|
@@ -3,9 +3,8 @@
|
|
|
3
3
|
// error (`engine/model-provider-key-reconcile.ts`). The credential is write-only and is not a platform
|
|
4
4
|
// `Secret`: it has no id to bind, cannot be injected at egress, and leaves only through the gateway, so this
|
|
5
5
|
// construct reuses the `SecretValue` recipe machinery without minting a Secret, and a `fromGatewayKey` recipe
|
|
6
|
-
// — whose write protocol is defined for a paired Secret alone — is rejected at synth. The row is
|
|
7
|
-
// with no
|
|
8
|
-
// a BYOK key, which is why there is no reference interface, no `*Id` property and no importer.
|
|
6
|
+
// — whose write protocol is defined for a paired Secret alone — is rejected at synth. The row is
|
|
7
|
+
// organization-wide with no team, and nothing in an orchestra app can reference a BYOK key, which is why there is no reference interface, no `*Id` property and no importer.
|
|
9
8
|
import { Construct } from "../core/construct.js";
|
|
10
9
|
import { containsGatewayKeyRecipe, gatewayKeyNestingError } from "../core/gateway-key-recipe.js";
|
|
11
10
|
import { validateDeclaredLabels } from "../core/labels.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Construct } from "../core/construct.js";
|
|
2
2
|
import type { PlanResource } from "../core/plan.js";
|
|
3
|
-
import type { IAgent, IResource } from "./interfaces.js";
|
|
3
|
+
import type { IAgent, IResource, ITeam } from "./interfaces.js";
|
|
4
4
|
import { type FilterInput, type FilterNode } from "./workflow-filter.js";
|
|
5
5
|
/** The platform reads only open (`TODO`, `IN_PROGRESS`) or closed (`DONE`, `CANCELED`). */
|
|
6
6
|
export type StageCategory = "TODO" | "IN_PROGRESS" | "DONE" | "CANCELED";
|
|
@@ -79,6 +79,8 @@ export interface PipelineProps {
|
|
|
79
79
|
* someone deletes it.
|
|
80
80
|
*/
|
|
81
81
|
workflows?: readonly PipelineWorkflowProps[];
|
|
82
|
+
/** Fixed at create; undeclared, the pipeline is created in Shared. Its workflows take its team. */
|
|
83
|
+
team?: ITeam;
|
|
82
84
|
}
|
|
83
85
|
export interface IPipeline extends IResource {
|
|
84
86
|
/** Accepts a platform id or a slug interchangeably — one rule, stated on `IResource`. */
|
|
@@ -122,7 +124,7 @@ export interface PipelinePayload {
|
|
|
122
124
|
overrideGate?: boolean;
|
|
123
125
|
checkGrants?: CheckGrantDocument[];
|
|
124
126
|
workflows?: PipelineEntryDocument[];
|
|
125
|
-
|
|
127
|
+
teamId?: string;
|
|
126
128
|
}
|
|
127
129
|
export declare const OPEN_CATEGORIES: ReadonlySet<StageCategory>;
|
|
128
130
|
export declare const SET_CHECK_ACTION = "work-items:setWorkItemCheck";
|
|
@@ -142,6 +144,7 @@ export declare class Pipeline extends Construct implements IPipeline {
|
|
|
142
144
|
private readonly listed;
|
|
143
145
|
private readonly running;
|
|
144
146
|
private readonly grants;
|
|
147
|
+
private readonly team;
|
|
145
148
|
constructor(scope: Construct, id: string, props: PipelineProps);
|
|
146
149
|
/** @internal */
|
|
147
150
|
_resourceId(): string;
|
|
@@ -33,6 +33,7 @@ export class Pipeline extends Construct {
|
|
|
33
33
|
listed;
|
|
34
34
|
running = [];
|
|
35
35
|
grants = [];
|
|
36
|
+
team;
|
|
36
37
|
constructor(scope, id, props) {
|
|
37
38
|
super(scope, id);
|
|
38
39
|
const where = `pipeline '${this.node.path.join("/")}'`;
|
|
@@ -56,6 +57,7 @@ export class Pipeline extends Construct {
|
|
|
56
57
|
// Checked here, where the author wrote them, and built again at synth beside the running workflows.
|
|
57
58
|
for (const listed of this.listed)
|
|
58
59
|
entryDocuments(listed, where);
|
|
60
|
+
this.team = props.team;
|
|
59
61
|
this.pipelineId = refToken("pipeline", this.node.path);
|
|
60
62
|
}
|
|
61
63
|
/** @internal */
|
|
@@ -106,6 +108,8 @@ export class Pipeline extends Construct {
|
|
|
106
108
|
statement: { effect: "allow", actions: [SET_CHECK_ACTION], resources: [checkResource(key)] },
|
|
107
109
|
}));
|
|
108
110
|
}
|
|
111
|
+
if (this.team !== undefined)
|
|
112
|
+
payload.teamId = this.team.teamId;
|
|
109
113
|
return { kind: "pipeline", path: this.node.path.join("/"), slug, managed: true, payload };
|
|
110
114
|
}
|
|
111
115
|
/** The listed entries, then one following the newest version for each running workflow the list leaves out. */
|