Unified · Split
| @@ -7,7 +7,7 @@ import { · 6 unmodified lines | ||
| 7 | 7 | } from "../../runtime/execution-service"; |
| 8 | 8 | |
| 9 | 9 | import { ControlPlaneApi } from "../api"; |
| 10 | −import { requireLocalWorkspaceAccess } from "../local-context"; | |
| 10 | +import { resolveRequestedLocalWorkspace } from "../local-context"; | |
| 11 | 11 | |
| 12 | 12 | export const ControlPlaneExecutionsLive = HttpApiBuilder.group( |
| 13 | 13 | ControlPlaneApi, |
| @@ -15,7 +15,7 @@ export const ControlPlaneExecutionsLive = HttpApiBuilder.group( · 1 unmodified line | ||
| 15 | 15 | (handlers) => |
| 16 | 16 | handlers |
| 17 | 17 | .handle("create", ({ path, payload }) => |
| 18 | − requireLocalWorkspaceAccess("executions.create", path.workspaceId).pipe( | |
| 18 | + resolveRequestedLocalWorkspace("executions.create", path.workspaceId).pipe( | |
| 19 | 19 | Effect.flatMap((runtimeLocalWorkspace) => |
| 20 | 20 | createExecution({ |
| 21 | 21 | workspaceId: path.workspaceId, |
| @@ -26,7 +26,7 @@ export const ControlPlaneExecutionsLive = HttpApiBuilder.group( · 4 unmodified lines | ||
| 26 | 26 | ), |
| 27 | 27 | ) |
| 28 | 28 | .handle("get", ({ path }) => |
| 29 | − requireLocalWorkspaceAccess("executions.get", path.workspaceId).pipe( | |
| 29 | + resolveRequestedLocalWorkspace("executions.get", path.workspaceId).pipe( | |
| 30 | 30 | Effect.zipRight( |
| 31 | 31 | getExecution({ |
| 32 | 32 | workspaceId: path.workspaceId, |
| @@ -36,7 +36,7 @@ export const ControlPlaneExecutionsLive = HttpApiBuilder.group( · 3 unmodified lines | ||
| 36 | 36 | ), |
| 37 | 37 | ) |
| 38 | 38 | .handle("resume", ({ path, payload }) => |
| 39 | − requireLocalWorkspaceAccess("executions.resume", path.workspaceId).pipe( | |
| 39 | + resolveRequestedLocalWorkspace("executions.resume", path.workspaceId).pipe( | |
| 40 | 40 | Effect.flatMap((runtimeLocalWorkspace) => |
| 41 | 41 | resumeExecution({ |
| 42 | 42 | workspaceId: path.workspaceId, |
| @@ -4,7 +4,7 @@ import * as Effect from "effect/Effect"; · 3 unmodified lines | ||
| 4 | 4 | import { requireRuntimeLocalWorkspace } from "../runtime/local-runtime-context"; |
| 5 | 5 | import { ControlPlaneForbiddenError } from "./errors"; |
| 6 | 6 | |
| 7 | −export const requireLocalWorkspaceAccess = ( | |
| 7 | +export const resolveRequestedLocalWorkspace = ( | |
| 8 | 8 | operation: string, |
| 9 | 9 | workspaceId: WorkspaceId, |
| 10 | 10 | ) => |
| @@ -12,7 +12,7 @@ export const requireLocalWorkspaceAccess = ( · 1 unmodified line | ||
| 12 | 12 | Effect.mapError((cause) => |
| 13 | 13 | new ControlPlaneForbiddenError({ |
| 14 | 14 | operation, |
| 15 | − message: "Workspace is not the active local workspace", | |
| 15 | + message: "Requested workspace is not the active local workspace", | |
| 16 | 16 | details: cause instanceof Error ? cause.message : String(cause), |
| 17 | 17 | }) |
| 18 | 18 | ), |
| @@ -14,7 +14,7 @@ import { · 13 unmodified lines | ||
| 14 | 14 | ControlPlaneBadRequestError, |
| 15 | 15 | ControlPlaneStorageError, |
| 16 | 16 | } from "../errors"; |
| 17 | −import { requireLocalWorkspaceAccess } from "../local-context"; | |
| 17 | +import { resolveRequestedLocalWorkspace } from "../local-context"; | |
| 18 | 18 | import { |
| 19 | 19 | SourceOAuthPopupResultSchema, |
| 20 | 20 | type SourceOAuthPopupResult, |
| @@ -234,7 +234,7 @@ export const ControlPlaneOAuthLive = HttpApiBuilder.group( · 213 unmodified lines | ||
| 234 | 234 | (handlers) => |
| 235 | 235 | handlers |
| 236 | 236 | .handle("startSourceAuth", ({ path, payload }) => |
| 237 | − requireLocalWorkspaceAccess("oauth.start_source_auth", path.workspaceId).pipe( | |
| 237 | + resolveRequestedLocalWorkspace("oauth.start_source_auth", path.workspaceId).pipe( | |
| 238 | 238 | Effect.flatMap((runtimeLocalWorkspace) => |
| 239 | 239 | Effect.gen(function* () { |
| 240 | 240 | const request = yield* HttpServerRequest.HttpServerRequest; |
| @@ -9,7 +9,7 @@ import { · 8 unmodified lines | ||
| 9 | 9 | } from "../../runtime/policies-operations"; |
| 10 | 10 | |
| 11 | 11 | import { ControlPlaneApi } from "../api"; |
| 12 | −import { requireLocalWorkspaceAccess } from "../local-context"; | |
| 12 | +import { resolveRequestedLocalWorkspace } from "../local-context"; | |
| 13 | 13 | |
| 14 | 14 | export const ControlPlanePoliciesLive = HttpApiBuilder.group( |
| 15 | 15 | ControlPlaneApi, |
| @@ -17,21 +17,21 @@ export const ControlPlanePoliciesLive = HttpApiBuilder.group( · 1 unmodified line | ||
| 17 | 17 | (handlers) => |
| 18 | 18 | handlers |
| 19 | 19 | .handle("list", ({ path }) => |
| 20 | − requireLocalWorkspaceAccess("policies.list", path.workspaceId).pipe( | |
| 20 | + resolveRequestedLocalWorkspace("policies.list", path.workspaceId).pipe( | |
| 21 | 21 | Effect.zipRight( |
| 22 | 22 | listPolicies(path.workspaceId), |
| 23 | 23 | ), |
| 24 | 24 | ), |
| 25 | 25 | ) |
| 26 | 26 | .handle("create", ({ path, payload }) => |
| 27 | − requireLocalWorkspaceAccess("policies.create", path.workspaceId).pipe( | |
| 27 | + resolveRequestedLocalWorkspace("policies.create", path.workspaceId).pipe( | |
| 28 | 28 | Effect.zipRight( |
| 29 | 29 | createPolicy({ workspaceId: path.workspaceId, payload }), |
| 30 | 30 | ), |
| 31 | 31 | ), |
| 32 | 32 | ) |
| 33 | 33 | .handle("get", ({ path }) => |
| 34 | − requireLocalWorkspaceAccess("policies.get", path.workspaceId).pipe( | |
| 34 | + resolveRequestedLocalWorkspace("policies.get", path.workspaceId).pipe( | |
| 35 | 35 | Effect.zipRight( |
| 36 | 36 | getPolicy({ |
| 37 | 37 | workspaceId: path.workspaceId, |
| @@ -41,7 +41,7 @@ export const ControlPlanePoliciesLive = HttpApiBuilder.group( · 3 unmodified lines | ||
| 41 | 41 | ), |
| 42 | 42 | ) |
| 43 | 43 | .handle("update", ({ path, payload }) => |
| 44 | − requireLocalWorkspaceAccess("policies.update", path.workspaceId).pipe( | |
| 44 | + resolveRequestedLocalWorkspace("policies.update", path.workspaceId).pipe( | |
| 45 | 45 | Effect.zipRight( |
| 46 | 46 | updatePolicy({ |
| 47 | 47 | workspaceId: path.workspaceId, |
| @@ -52,7 +52,7 @@ export const ControlPlanePoliciesLive = HttpApiBuilder.group( · 4 unmodified lines | ||
| 52 | 52 | ), |
| 53 | 53 | ) |
| 54 | 54 | .handle("remove", ({ path }) => |
| 55 | − requireLocalWorkspaceAccess("policies.remove", path.workspaceId).pipe( | |
| 55 | + resolveRequestedLocalWorkspace("policies.remove", path.workspaceId).pipe( | |
| 56 | 56 | Effect.zipRight( |
| 57 | 57 | removePolicy({ |
| 58 | 58 | workspaceId: path.workspaceId, |
| @@ -34,7 +34,7 @@ import { · 33 unmodified lines | ||
| 34 | 34 | ControlPlaneStorageError, |
| 35 | 35 | } from "../errors"; |
| 36 | 36 | import { ControlPlaneApi } from "../api"; |
| 37 | −import { requireLocalWorkspaceAccess } from "../local-context"; | |
| 37 | +import { resolveRequestedLocalWorkspace } from "../local-context"; | |
| 38 | 38 | |
| 39 | 39 | const readHeader = (headers: unknown, name: string): string | null => { |
| 40 | 40 | if (headers == null || typeof headers !== "object") { |
| @@ -658,7 +658,7 @@ export const ControlPlaneSourcesLive = HttpApiBuilder.group( · 617 unmodified lines | ||
| 658 | 658 | ), |
| 659 | 659 | ) |
| 660 | 660 | .handle("connect", ({ path, payload }) => |
| 661 | − requireLocalWorkspaceAccess("sources.connect", path.workspaceId).pipe( | |
| 661 | + resolveRequestedLocalWorkspace("sources.connect", path.workspaceId).pipe( | |
| 662 | 662 | Effect.flatMap((runtimeLocalWorkspace) => |
| 663 | 663 | Effect.gen(function* () { |
| 664 | 664 | const request = yield* HttpServerRequest.HttpServerRequest; |
| @@ -698,7 +698,7 @@ export const ControlPlaneSourcesLive = HttpApiBuilder.group( · 33 unmodified lines | ||
| 698 | 698 | ), |
| 699 | 699 | ) |
| 700 | 700 | .handle("list", ({ path }) => |
| 701 | − requireLocalWorkspaceAccess("sources.list", path.workspaceId).pipe( | |
| 701 | + resolveRequestedLocalWorkspace("sources.list", path.workspaceId).pipe( | |
| 702 | 702 | Effect.flatMap((runtimeLocalWorkspace) => |
| 703 | 703 | listSources({ |
| 704 | 704 | workspaceId: path.workspaceId, |
| @@ -708,7 +708,7 @@ export const ControlPlaneSourcesLive = HttpApiBuilder.group( · 3 unmodified lines | ||
| 708 | 708 | ), |
| 709 | 709 | ) |
| 710 | 710 | .handle("create", ({ path, payload }) => |
| 711 | − requireLocalWorkspaceAccess("sources.create", path.workspaceId).pipe( | |
| 711 | + resolveRequestedLocalWorkspace("sources.create", path.workspaceId).pipe( | |
| 712 | 712 | Effect.flatMap((runtimeLocalWorkspace) => |
| 713 | 713 | createSource({ |
| 714 | 714 | workspaceId: path.workspaceId, |
| @@ -719,7 +719,7 @@ export const ControlPlaneSourcesLive = HttpApiBuilder.group( · 4 unmodified lines | ||
| 719 | 719 | ), |
| 720 | 720 | ) |
| 721 | 721 | .handle("get", ({ path }) => |
| 722 | − requireLocalWorkspaceAccess("sources.get", path.workspaceId).pipe( | |
| 722 | + resolveRequestedLocalWorkspace("sources.get", path.workspaceId).pipe( | |
| 723 | 723 | Effect.flatMap((runtimeLocalWorkspace) => |
| 724 | 724 | getSource({ |
| 725 | 725 | workspaceId: path.workspaceId, |
| @@ -730,7 +730,7 @@ export const ControlPlaneSourcesLive = HttpApiBuilder.group( · 4 unmodified lines | ||
| 730 | 730 | ), |
| 731 | 731 | ) |
| 732 | 732 | .handle("inspection", ({ path }) => |
| 733 | − requireLocalWorkspaceAccess("sources.inspection", path.workspaceId).pipe( | |
| 733 | + resolveRequestedLocalWorkspace("sources.inspection", path.workspaceId).pipe( | |
| 734 | 734 | Effect.zipRight( |
| 735 | 735 | getSourceInspection({ |
| 736 | 736 | workspaceId: path.workspaceId, |
| @@ -740,7 +740,7 @@ export const ControlPlaneSourcesLive = HttpApiBuilder.group( · 3 unmodified lines | ||
| 740 | 740 | ), |
| 741 | 741 | ) |
| 742 | 742 | .handle("inspectionTool", ({ path }) => |
| 743 | − requireLocalWorkspaceAccess("sources.inspection_tool", path.workspaceId).pipe( | |
| 743 | + resolveRequestedLocalWorkspace("sources.inspection_tool", path.workspaceId).pipe( | |
| 744 | 744 | Effect.zipRight( |
| 745 | 745 | getSourceInspectionToolDetail({ |
| 746 | 746 | workspaceId: path.workspaceId, |
| @@ -751,7 +751,7 @@ export const ControlPlaneSourcesLive = HttpApiBuilder.group( · 4 unmodified lines | ||
| 751 | 751 | ), |
| 752 | 752 | ) |
| 753 | 753 | .handle("inspectionSchemaBundle", ({ path }) => |
| 754 | − requireLocalWorkspaceAccess("sources.inspection_schema_bundle", path.workspaceId).pipe( | |
| 754 | + resolveRequestedLocalWorkspace("sources.inspection_schema_bundle", path.workspaceId).pipe( | |
| 755 | 755 | Effect.zipRight( |
| 756 | 756 | getSourceInspectionSchemaBundle({ |
| 757 | 757 | workspaceId: path.workspaceId, |
| @@ -762,7 +762,7 @@ export const ControlPlaneSourcesLive = HttpApiBuilder.group( · 4 unmodified lines | ||
| 762 | 762 | ), |
| 763 | 763 | ) |
| 764 | 764 | .handle("inspectionDiscover", ({ path, payload }) => |
| 765 | − requireLocalWorkspaceAccess("sources.inspection_discover", path.workspaceId).pipe( | |
| 765 | + resolveRequestedLocalWorkspace("sources.inspection_discover", path.workspaceId).pipe( | |
| 766 | 766 | Effect.zipRight( |
| 767 | 767 | discoverSourceInspectionTools({ |
| 768 | 768 | workspaceId: path.workspaceId, |
| @@ -773,7 +773,7 @@ export const ControlPlaneSourcesLive = HttpApiBuilder.group( · 4 unmodified lines | ||
| 773 | 773 | ), |
| 774 | 774 | ) |
| 775 | 775 | .handle("update", ({ path, payload }) => |
| 776 | − requireLocalWorkspaceAccess("sources.update", path.workspaceId).pipe( | |
| 776 | + resolveRequestedLocalWorkspace("sources.update", path.workspaceId).pipe( | |
| 777 | 777 | Effect.flatMap((runtimeLocalWorkspace) => |
| 778 | 778 | updateSource({ |
| 779 | 779 | workspaceId: path.workspaceId, |
| @@ -785,7 +785,7 @@ export const ControlPlaneSourcesLive = HttpApiBuilder.group( · 5 unmodified lines | ||
| 785 | 785 | ), |
| 786 | 786 | ) |
| 787 | 787 | .handle("remove", ({ path }) => |
| 788 | − requireLocalWorkspaceAccess("sources.remove", path.workspaceId).pipe( | |
| 788 | + resolveRequestedLocalWorkspace("sources.remove", path.workspaceId).pipe( | |
| 789 | 789 | Effect.zipRight( |
| 790 | 790 | removeSource({ |
| 791 | 791 | workspaceId: path.workspaceId, |