orkestrator 2.33.0-beta → 2.34.1-beta

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/dist/client.js CHANGED
@@ -6789,6 +6789,22 @@ var PUBLIC_ACTIONS = {
6789
6789
  milestone: "D",
6790
6790
  summary: "Delete a scheduled job and its history."
6791
6791
  },
6792
+ "permission.rule.list": {
6793
+ version: 1,
6794
+ mutation: false,
6795
+ effects: [],
6796
+ observation: "immediate",
6797
+ milestone: "D",
6798
+ summary: "List this node's Orkestrator permission rules with their scope, last use and use count."
6799
+ },
6800
+ "permission.rule.remove": {
6801
+ version: 1,
6802
+ mutation: true,
6803
+ effects: ["metadata"],
6804
+ observation: "receipt",
6805
+ milestone: "D",
6806
+ summary: "Remove an Orkestrator permission rule; matching requests ask again from the next one."
6807
+ },
6792
6808
  "run.get": {
6793
6809
  version: 1,
6794
6810
  mutation: false,
@@ -7714,7 +7730,7 @@ import path4 from "path";
7714
7730
  // ../../apps/backend/package.json
7715
7731
  var package_default = {
7716
7732
  name: "@orkestrator/backend",
7717
- version: "2.33.0-beta",
7733
+ version: "2.34.1-beta",
7718
7734
  private: true,
7719
7735
  type: "module",
7720
7736
  exports: {
@@ -7728,7 +7744,7 @@ var package_default = {
7728
7744
  "start:web": "bun dist/main.js --fallback-host 127.0.0.1",
7729
7745
  "start:web-public": "bun dist/main.js --tailscale-serve --allowed-origins https://orkestrator.dev,https://www.orkestrator.dev",
7730
7746
  test: "bun test --preload ../../tests/setup-node.ts src tests --parallel",
7731
- "test:workspace": "bun test --preload ../../tests/setup-node.ts src tests --only-failures ${ORKESTRATOR_TEST_TIMINGS_DIR:+--timings=$ORKESTRATOR_TEST_TIMINGS_DIR/backend.json --update-timings} $ORKESTRATOR_BACKEND_TEST_IGNORE --parallel=${ORKESTRATOR_BACKEND_TEST_WORKERS:-${ORKESTRATOR_TEST_WORKERS:-2}}",
7747
+ "test:workspace": "bun --no-env-file ../../scripts/bun-test-tier.ts apps/backend src tests -- --preload ../../tests/setup-node.ts --only-failures ${ORKESTRATOR_TEST_TIMINGS_DIR:+--timings=$ORKESTRATOR_TEST_TIMINGS_DIR/backend.json --update-timings} --parallel=${ORKESTRATOR_BACKEND_TEST_WORKERS:-${ORKESTRATOR_TEST_WORKERS:-2}}",
7732
7748
  typecheck: "bun check -p tsconfig.json && bun check -p tsconfig.test.json"
7733
7749
  },
7734
7750
  dependencies: {
@@ -15208,6 +15224,72 @@ function terminalQuestions(input, output, onInterrupt) {
15208
15224
  };
15209
15225
  }
15210
15226
 
15227
+ // src/client/commands/permissions.ts
15228
+ function when(epochMs) {
15229
+ return epochMs === undefined ? "-" : new Date(epochMs).toISOString();
15230
+ }
15231
+ var permissionCommands = [
15232
+ {
15233
+ path: ["permissions", "rules", "list"],
15234
+ action: "permission.rule.list",
15235
+ summary: "List this node's Orkestrator permission rules, their scope, last use and use count.",
15236
+ positionals: [],
15237
+ options: [
15238
+ {
15239
+ name: "project",
15240
+ kind: "string",
15241
+ valueName: "PROJECT_ID",
15242
+ description: "Only rules of this project."
15243
+ }
15244
+ ],
15245
+ idOutput: "rule IDs",
15246
+ async run(context, parsed) {
15247
+ const session = await context.session();
15248
+ const project = parsed.options.project;
15249
+ const list = await session.read("permission.rule.list", project !== undefined ? { projectId: project } : {});
15250
+ return {
15251
+ action: "permission.rule.list",
15252
+ result: list,
15253
+ connection: session.identity,
15254
+ ids: list.rules.map((rule) => rule.id),
15255
+ human: table(["ID", "KIND", "PATTERN", "AGENT", "SCOPE", "USES", "LAST USED", "EXPIRES"], list.rules.map((rule) => [
15256
+ rule.id,
15257
+ rule.kind,
15258
+ rule.pattern,
15259
+ rule.provider,
15260
+ rule.scope === "environment" ? `environment ${rule.environmentId}` : "project",
15261
+ String(rule.useCount),
15262
+ when(rule.lastUsedAt),
15263
+ when(rule.expiresAt)
15264
+ ]))
15265
+ };
15266
+ }
15267
+ },
15268
+ {
15269
+ path: ["permissions", "rules", "remove"],
15270
+ action: "permission.rule.remove",
15271
+ summary: "Remove a permission rule; matching requests ask again from the next one.",
15272
+ positionals: [
15273
+ { name: "rule", required: true, description: "Rule ID, from `permissions rules list`." }
15274
+ ],
15275
+ options: [REQUEST_ID_OPTION],
15276
+ inputFields: { rule: "ruleId" },
15277
+ idOutput: "rule ID",
15278
+ async run(context, parsed) {
15279
+ const { session, result, receipt, warnings } = await submit(context, "permission.rule.remove", { ruleId: parsed.positionals.rule }, parsed.options);
15280
+ return {
15281
+ action: "permission.rule.remove",
15282
+ result,
15283
+ receipt,
15284
+ warnings,
15285
+ connection: session.identity,
15286
+ ids: [String(parsed.positionals.rule)],
15287
+ human: keyValues(Object.entries(result))
15288
+ };
15289
+ }
15290
+ }
15291
+ ];
15292
+
15211
15293
  // src/client/main.ts
15212
15294
  var CLIENT_COMMANDS = [
15213
15295
  ...connectionCommands,
@@ -15220,6 +15302,7 @@ var CLIENT_COMMANDS = [
15220
15302
  ...ticketCommands,
15221
15303
  ...mailCommands,
15222
15304
  ...scheduleCommands,
15305
+ ...permissionCommands,
15223
15306
  ...runCommands,
15224
15307
  ...toolchainCommands,
15225
15308
  ...hostCommands,