@knpkv/codecommit-web 0.7.0 → 0.9.0

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.
Files changed (35) hide show
  1. package/dist/client/assets/index-C9jULpBN.js +456 -0
  2. package/dist/client/assets/index-DTVrh9Vx.css +1 -0
  3. package/dist/client/index.html +2 -2
  4. package/dist/server/Api.d.ts +105 -2
  5. package/dist/server/Api.d.ts.map +1 -1
  6. package/dist/server/Api.js +131 -1
  7. package/dist/server/Api.js.map +1 -1
  8. package/dist/server/Server.d.ts.map +1 -1
  9. package/dist/server/Server.js +27 -7
  10. package/dist/server/Server.js.map +1 -1
  11. package/dist/server/handlers/audit-live.d.ts +3 -0
  12. package/dist/server/handlers/audit-live.d.ts.map +1 -0
  13. package/dist/server/handlers/audit-live.js +29 -0
  14. package/dist/server/handlers/audit-live.js.map +1 -0
  15. package/dist/server/handlers/events-live.d.ts +1 -1
  16. package/dist/server/handlers/events-live.d.ts.map +1 -1
  17. package/dist/server/handlers/events-live.js +33 -3
  18. package/dist/server/handlers/events-live.js.map +1 -1
  19. package/dist/server/handlers/index.d.ts +2 -0
  20. package/dist/server/handlers/index.d.ts.map +1 -1
  21. package/dist/server/handlers/index.js +2 -0
  22. package/dist/server/handlers/index.js.map +1 -1
  23. package/dist/server/handlers/notifications-live.d.ts.map +1 -1
  24. package/dist/server/handlers/notifications-live.js +11 -16
  25. package/dist/server/handlers/notifications-live.js.map +1 -1
  26. package/dist/server/handlers/permissions-live.d.ts +3 -0
  27. package/dist/server/handlers/permissions-live.d.ts.map +1 -0
  28. package/dist/server/handlers/permissions-live.js +34 -0
  29. package/dist/server/handlers/permissions-live.js.map +1 -0
  30. package/dist/server/handlers/prs-live.d.ts.map +1 -1
  31. package/dist/server/handlers/prs-live.js +72 -11
  32. package/dist/server/handlers/prs-live.js.map +1 -1
  33. package/package.json +2 -2
  34. package/dist/client/assets/index-Bdn-6XJ9.css +0 -1
  35. package/dist/client/assets/index-DlRfzSp5.js +0 -436
@@ -1,10 +1,13 @@
1
1
  import { Etag, FetchHttpClient, FileSystem, HttpLayerRouter, HttpPlatform, HttpServerRequest, HttpServerResponse, Path } from "@effect/platform";
2
2
  import { BunContext, BunFileSystem, BunHttpServer } from "@effect/platform-bun";
3
- import { AwsClient, AwsClientConfig, CacheService, ConfigService, PRService, SandboxService, StatsService } from "@knpkv/codecommit-core";
3
+ import { AwsClient, AwsClientConfig, CacheService, ConfigService, PermissionService, PRService, SandboxService, StatsService } from "@knpkv/codecommit-core";
4
+ import { AwsClientGatedLive, InnerAwsClient } from "@knpkv/codecommit-core/AwsClient/AwsClientGated.js";
5
+ import { AuditLogRepo } from "@knpkv/codecommit-core/PermissionService/AuditLog.js";
6
+ import { PermissionGateLiveLayer, PermissionGateLiveTag } from "@knpkv/codecommit-core/PermissionService/PermissionGateLive.js";
4
7
  import { Cause, Config, Duration, Effect, Layer, Option, Predicate, Ref } from "effect";
5
8
  import { fileURLToPath } from "node:url";
6
9
  import { CodeCommitApi } from "./Api.js";
7
- import { AccountsLive, ConfigLive, EventsLive, NotificationsLive, PrsLive, SandboxLive, StatsLive, SubscriptionsLive } from "./handlers/index.js";
10
+ import { AccountsLive, AuditLive, ConfigLive, EventsLive, NotificationsLive, PermissionsLive, PrsLive, SandboxLive, StatsLive, SubscriptionsLive } from "./handlers/index.js";
8
11
  // MIME types for common files
9
12
  const mimeTypes = {
10
13
  ".html": "text/html",
@@ -65,7 +68,7 @@ const serveStatic = Effect.gen(function* () {
65
68
  return HttpServerResponse.text("Not Found", { status: 404 });
66
69
  });
67
70
  // API handlers layer
68
- const HandlersLive = Layer.mergeAll(PrsLive, ConfigLive, AccountsLive, EventsLive, NotificationsLive, SubscriptionsLive, SandboxLive, StatsLive);
71
+ const HandlersLive = Layer.mergeAll(PrsLive, ConfigLive, AccountsLive, EventsLive, NotificationsLive, SubscriptionsLive, SandboxLive, StatsLive, PermissionsLive, AuditLive);
69
72
  // Platform dependencies
70
73
  const PlatformLive = Layer.mergeAll(Path.layer, BunFileSystem.layer, FetchHttpClient.layer);
71
74
  // Base services - ConfigService needs Platform + EventsHub
@@ -74,19 +77,36 @@ const ConfigLive_ = ConfigService.ConfigServiceLive.pipe(Layer.provide(PlatformL
74
77
  // EventsHub.Default is shared across all repos via layer memoization
75
78
  // orDie scoped to cache layers only: DB/migration errors become defects here
76
79
  const ReposLive = Layer.mergeAll(CacheService.PullRequestRepo.Default, CacheService.CommentRepo.Default, CacheService.NotificationRepo.Default, CacheService.SubscriptionRepo.Default, CacheService.SyncMetadataRepo.Default, CacheService.EventsHub.Default).pipe(Layer.orDie);
80
+ // Permission infrastructure
81
+ const PermissionLive = Layer.mergeAll(PermissionService.PermissionService.Default, PermissionGateLiveTag.Default, AuditLogRepo.Default).pipe(Layer.provide(PlatformLive), Layer.provide(ReposLive));
82
+ // PermissionGate (abstract) provided from PermissionGateLive (concrete)
83
+ const PermissionGateLive_ = PermissionGateLiveLayer.pipe(Layer.provide(PermissionGateLiveTag.Default), Layer.provide(ReposLive));
84
+ // Original AwsClient → InnerAwsClient
85
+ const InnerAwsClientLive = Layer.effect(InnerAwsClient, AwsClient.AwsClient).pipe(Layer.provide(AwsClient.AwsClientLive), Layer.provide(AwsClientConfig.Default), Layer.provide(FetchHttpClient.layer));
86
+ // Gated AwsClient wrapping InnerAwsClient with permission checks + audit
87
+ const GatedAwsClientLive = AwsClientGatedLive.pipe(Layer.provide(InnerAwsClientLive), Layer.provide(PermissionLive), Layer.provide(PermissionGateLive_));
77
88
  // PRService dependencies
78
- const PRServiceDeps = Layer.mergeAll(AwsClient.AwsClientLive, ReposLive).pipe(Layer.provideMerge(ConfigLive_), Layer.provide(AwsClientConfig.Default), Layer.provide(PlatformLive));
89
+ const PRServiceDeps = Layer.mergeAll(GatedAwsClientLive, ReposLive).pipe(Layer.provideMerge(ConfigLive_), Layer.provide(AwsClientConfig.Default), Layer.provide(PlatformLive));
79
90
  // PRService with all dependencies
80
91
  const PRServiceLive_ = PRService.PRServiceLive.pipe(Layer.provideMerge(PRServiceDeps));
81
92
  // AwsClient for handlers that call AWS directly (e.g., createPR)
82
- const AwsClientLive_ = AwsClient.AwsClientLive.pipe(Layer.provide(FetchHttpClient.layer), Layer.provide(AwsClientConfig.Default));
93
+ const AwsClientLive_ = GatedAwsClientLive;
83
94
  // Sandbox services — DockerService uses `docker` CLI via Command, no HttpClient needed
84
95
  // SandboxService reads ConfigService at runtime for sandbox settings
85
96
  const SandboxServicesLive = Layer.mergeAll(SandboxService.SandboxService.Default, SandboxService.DockerService.Default, CacheService.SandboxRepo.Default).pipe(Layer.provide(ConfigLive_), Layer.provide(ReposLive), Layer.provide(PlatformLive));
86
97
  // Stats service — StatsRepo provided first, then rest via PRServiceDeps
87
98
  const StatsServiceLive = StatsService.StatsService.Default.pipe(Layer.provide(CacheService.StatsRepo.Default), Layer.provide(PRServiceDeps));
88
99
  // All services needed by handlers
89
- const AllServicesLive = Layer.mergeAll(PRServiceLive_, ConfigLive_, AwsClientLive_, SandboxServicesLive, StatsServiceLive);
100
+ const AllServicesLive = Layer.mergeAll(PRServiceLive_, ConfigLive_, AwsClientLive_, SandboxServicesLive, StatsServiceLive, PermissionLive);
101
+ // Prune old audit log entries on startup
102
+ const AuditPrune = Layer.effectDiscard(Effect.gen(function* () {
103
+ const auditLog = yield* AuditLogRepo;
104
+ const permService = yield* PermissionService.PermissionService;
105
+ const retentionDays = yield* permService.getAuditRetention();
106
+ const deleted = yield* auditLog.prune(retentionDays).pipe(Effect.catchAll(() => Effect.succeed(0)));
107
+ if (deleted > 0)
108
+ yield* Effect.logInfo(`Pruned ${deleted} audit log entries older than ${retentionDays} days`);
109
+ }));
90
110
  // Fork auto-refresh loop: initial refresh + recurring based on config
91
111
  const AutoRefresh = Layer.effectDiscard(Effect.gen(function* () {
92
112
  const prService = yield* PRService.PRService;
@@ -128,7 +148,7 @@ const SandboxStartup = Layer.effectDiscard(Effect.gen(function* () {
128
148
  : Effect.logWarning("Sandbox GC failed", c)))));
129
149
  }));
130
150
  // API router with handlers — AutoRefresh shares AllServicesLive with handlers
131
- const ApiLive = Layer.mergeAll(HttpLayerRouter.addHttpApi(CodeCommitApi).pipe(Layer.provide(HandlersLive)), AutoRefresh, SandboxStartup).pipe(Layer.provide(AllServicesLive), Layer.provide(FetchHttpClient.layer));
151
+ const ApiLive = Layer.mergeAll(HttpLayerRouter.addHttpApi(CodeCommitApi).pipe(Layer.provide(HandlersLive)), AutoRefresh, AuditPrune, SandboxStartup).pipe(Layer.provide(AllServicesLive), Layer.provide(FetchHttpClient.layer));
132
152
  // Static file router - catches all non-API routes
133
153
  const StaticRouter = HttpLayerRouter.use((router) => router.add("GET", "/*", serveStatic));
134
154
  const AllowedOrigins = Config.string("ALLOWED_ORIGINS").pipe(Config.map((s) => s.split(",")), Config.withDefault(["http://localhost:3000", "http://127.0.0.1:3000"]));
@@ -1 +1 @@
1
- {"version":3,"file":"Server.js","sourceRoot":"","sources":["../../src/server/Server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Server.js","sourceRoot":"","sources":["../../src/server/Server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { AuditLogRepo } from "@knpkv/codecommit-core/PermissionService/AuditLog.js";
2
+ export declare const AuditLive: import("effect/Layer").Layer<import("@effect/platform/HttpApiGroup").ApiGroup<"CodeCommitApi", "audit">, never, AuditLogRepo>;
3
+ //# sourceMappingURL=audit-live.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-live.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/audit-live.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,sDAAsD,CAAA;AAInF,eAAO,MAAM,SAAS,+HAqCrB,CAAA"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @title Audit log handler — query and export API call history
3
+ *
4
+ * @module
5
+ */
6
+ import { HttpApiBuilder } from "@effect/platform";
7
+ import { AuditLogRepo } from "@knpkv/codecommit-core/PermissionService/AuditLog.js";
8
+ import { Effect } from "effect";
9
+ import { ApiError, CodeCommitApi } from "../Api.js";
10
+ export const AuditLive = HttpApiBuilder.group(CodeCommitApi, "audit", (handlers) => Effect.gen(function* () {
11
+ const auditLog = yield* AuditLogRepo;
12
+ return handlers
13
+ .handle("list", ({ urlParams }) => auditLog.findAll({
14
+ limit: urlParams.limit ?? 50,
15
+ offset: urlParams.offset ?? 0,
16
+ operation: urlParams.operation,
17
+ accountProfile: urlParams.accountProfile,
18
+ permissionState: urlParams.permissionState,
19
+ from: urlParams.from,
20
+ to: urlParams.to,
21
+ search: urlParams.search
22
+ }).pipe(Effect.tapError((e) => Effect.logWarning("Audit operation failed", e)), Effect.mapError(() => new ApiError({ message: "Audit query failed" }))))
23
+ .handle("export", ({ urlParams }) => auditLog.exportAll({
24
+ from: urlParams.from,
25
+ to: urlParams.to
26
+ }).pipe(Effect.tapError((e) => Effect.logWarning("Audit operation failed", e)), Effect.mapError(() => new ApiError({ message: "Audit query failed" }))))
27
+ .handle("clear", () => auditLog.clearAll().pipe(Effect.map((deleted) => ({ deleted })), Effect.tapError((e) => Effect.logWarning("Audit operation failed", e)), Effect.mapError(() => new ApiError({ message: "Audit query failed" }))));
28
+ }));
29
+ //# sourceMappingURL=audit-live.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-live.js","sourceRoot":"","sources":["../../../src/server/handlers/audit-live.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,sDAAsD,CAAA;AACnF,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAEnD,MAAM,CAAC,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAC3C,aAAa,EACb,OAAO,EACP,CAAC,QAAQ,EAAE,EAAE,CACX,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,YAAY,CAAA;IAEpC,OAAO,QAAQ;SACZ,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAChC,QAAQ,CAAC,OAAO,CAAC;QACf,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,EAAE;QAC5B,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,CAAC;QAC7B,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,cAAc,EAAE,SAAS,CAAC,cAAc;QACxC,eAAe,EAAE,SAAS,CAAC,eAAe;QAC1C,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,EAAE,EAAE,SAAS,CAAC,EAAE;QAChB,MAAM,EAAE,SAAS,CAAC,MAAM;KACzB,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,EACtE,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,QAAQ,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAC,CACvE,CAAC;SACH,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAClC,QAAQ,CAAC,SAAS,CAAC;QACjB,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,EAAE,EAAE,SAAS,CAAC,EAAE;KACjB,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,EACtE,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,QAAQ,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAC,CACvE,CAAC;SACH,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,CACpB,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,CACtB,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EACtC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,EACtE,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,QAAQ,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAC,CACvE,CAAC,CAAA;AACR,CAAC,CAAC,CACL,CAAA"}
@@ -1,3 +1,3 @@
1
1
  import { CacheService, PRService } from "@knpkv/codecommit-core";
2
- export declare const EventsLive: import("effect/Layer").Layer<import("@effect/platform/HttpApiGroup").ApiGroup<"CodeCommitApi", "events">, never, CacheService.EventsHub | CacheService.NotificationRepo | CacheService.PullRequestRepo | CacheService.SandboxRepo | PRService.PRService>;
2
+ export declare const EventsLive: import("effect/Layer").Layer<import("@effect/platform/HttpApiGroup").ApiGroup<"CodeCommitApi", "events">, never, CacheService.EventsHub | CacheService.NotificationRepo | CacheService.PullRequestRepo | CacheService.SandboxRepo | PRService.PRService | import("@knpkv/codecommit-core/PermissionService/PermissionGateLive.js").PermissionGateLive>;
3
3
  //# sourceMappingURL=events-live.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"events-live.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/events-live.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAsChE,eAAO,MAAM,UAAU,0PAkGlB,CAAA"}
1
+ {"version":3,"file":"events-live.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/events-live.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AA8ChE,eAAO,MAAM,UAAU,wVA6GlB,CAAA"}
@@ -1,6 +1,22 @@
1
+ /**
2
+ * SSE event stream handler — pushes full app state to the browser.
3
+ *
4
+ * Streams a serialized SsePayload (pull requests, accounts, notifications,
5
+ * sandboxes, pending review count, permission prompts) on every state or
6
+ * repo change. Computes `pendingReviewCount` via {@link needsMyReview}.
7
+ *
8
+ * **Mental model**
9
+ *
10
+ * - Uses handleRaw (not handle) to bypass schema response encoding
11
+ * - Merges stateChanges (SubscriptionRef) + repoChanges (EventsHub), debounced 200ms
12
+ * - 30s keepalive heartbeat prevents browser/proxy timeout
13
+ *
14
+ * @module
15
+ */
1
16
  import { HttpApiBuilder, HttpServerResponse } from "@effect/platform";
2
17
  import { CacheService, PRService } from "@knpkv/codecommit-core";
3
- import { AppStatus, PullRequest } from "@knpkv/codecommit-core/Domain.js";
18
+ import { AppStatus, needsMyReview, PullRequest } from "@knpkv/codecommit-core/Domain.js";
19
+ import { PermissionGateLiveTag } from "@knpkv/codecommit-core/PermissionService/PermissionGateLive.js";
4
20
  import { Duration, Effect, Ref, Schedule, Schema, Stream, SubscriptionRef } from "effect";
5
21
  import { CodeCommitApi, NotificationResponse, SandboxResponse } from "../Api.js";
6
22
  import { encodeSandbox } from "./sandbox-live.js";
@@ -22,7 +38,14 @@ const SsePayload = Schema.Struct({
22
38
  items: Schema.Array(NotificationResponse),
23
39
  nextCursor: Schema.optional(Schema.Number)
24
40
  }),
25
- sandboxes: Schema.Array(SandboxResponse)
41
+ pendingReviewCount: Schema.optionalWith(Schema.Number, { default: () => 0 }),
42
+ sandboxes: Schema.Array(SandboxResponse),
43
+ permissionPrompt: Schema.optional(Schema.Struct({
44
+ id: Schema.String,
45
+ operation: Schema.String,
46
+ category: Schema.String,
47
+ context: Schema.String
48
+ }))
26
49
  });
27
50
  const encode = Schema.encode(SsePayload);
28
51
  const encoder = new TextEncoder();
@@ -34,6 +57,7 @@ export const EventsLive = HttpApiBuilder.group(CodeCommitApi, "events", (handler
34
57
  const notificationRepo = yield* CacheService.NotificationRepo;
35
58
  const sandboxRepo = yield* CacheService.SandboxRepo;
36
59
  const hub = yield* CacheService.EventsHub;
60
+ const permGate = yield* PermissionGateLiveTag;
37
61
  // Cache unread count + notifications — re-query on relevant triggers
38
62
  const initialCount = yield* notificationRepo.unreadCount().pipe(Effect.catchAll(() => Effect.succeed(0)));
39
63
  const lastUnreadRef = yield* Ref.make(initialCount);
@@ -50,6 +74,10 @@ export const EventsLive = HttpApiBuilder.group(CodeCommitApi, "events", (handler
50
74
  ? yield* notificationRepo.findAll({ limit: 20 }).pipe(Effect.tap((p) => Ref.set(lastNotificationsRef, p)), Effect.catchAllCause(() => Ref.get(lastNotificationsRef)))
51
75
  : yield* Ref.get(lastNotificationsRef);
52
76
  const sandboxes = yield* sandboxRepo.findAll().pipe(Effect.map((rows) => rows.map(encodeSandbox)), Effect.catchAllCause(() => Effect.succeed([])));
77
+ const pendingPrompt = yield* permGate.getFirstPending().pipe(Effect.catchAll(() => Effect.succeed(undefined)));
78
+ const pendingReviewCount = prState.currentUser
79
+ ? pullRequests.filter((pr) => needsMyReview(pr, prState.currentUser)).length
80
+ : 0;
53
81
  const payload = yield* encode({
54
82
  accounts: prState.accounts,
55
83
  status: prState.status,
@@ -58,9 +86,11 @@ export const EventsLive = HttpApiBuilder.group(CodeCommitApi, "events", (handler
58
86
  error: prState.error,
59
87
  lastUpdated: prState.lastUpdated,
60
88
  currentUser: prState.currentUser,
89
+ pendingReviewCount,
61
90
  unreadNotificationCount: unreadCount,
62
91
  notifications,
63
- sandboxes
92
+ sandboxes,
93
+ permissionPrompt: pendingPrompt
64
94
  });
65
95
  return encoder.encode(`data: ${JSON.stringify(payload)}\n\n`);
66
96
  }).pipe(Effect.catchAllCause((cause) => Effect.logWarning("SSE payload failed", cause).pipe(Effect.map(() => encoder.encode(":\n\n")))));
@@ -1 +1 @@
1
- {"version":3,"file":"events-live.js","sourceRoot":"","sources":["../../../src/server/handlers/events-live.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events-live.js","sourceRoot":"","sources":["../../../src/server/handlers/events-live.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  export { AccountsLive } from "./accounts-live.js";
2
+ export { AuditLive } from "./audit-live.js";
2
3
  export { ConfigLive } from "./config-live.js";
3
4
  export { EventsLive } from "./events-live.js";
4
5
  export { NotificationsLive } from "./notifications-live.js";
6
+ export { PermissionsLive } from "./permissions-live.js";
5
7
  export { PrsLive } from "./prs-live.js";
6
8
  export { SandboxLive } from "./sandbox-live.js";
7
9
  export { StatsLive } from "./stats-live.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA"}
@@ -1,7 +1,9 @@
1
1
  export { AccountsLive } from "./accounts-live.js";
2
+ export { AuditLive } from "./audit-live.js";
2
3
  export { ConfigLive } from "./config-live.js";
3
4
  export { EventsLive } from "./events-live.js";
4
5
  export { NotificationsLive } from "./notifications-live.js";
6
+ export { PermissionsLive } from "./permissions-live.js";
5
7
  export { PrsLive } from "./prs-live.js";
6
8
  export { SandboxLive } from "./sandbox-live.js";
7
9
  export { StatsLive } from "./stats-live.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/handlers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/handlers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"notifications-live.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/notifications-live.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAO3E,eAAO,MAAM,iBAAiB,iQA2I7B,CAAA"}
1
+ {"version":3,"file":"notifications-live.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/notifications-live.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAO3E,eAAO,MAAM,iBAAiB,iQAuH7B,CAAA"}
@@ -1,3 +1,13 @@
1
+ /**
2
+ * Notification endpoint handlers — SSO login/logout + CRUD for notifications.
3
+ *
4
+ * Provides list/count/markRead/markUnread/markAllRead for unified notifications,
5
+ * plus ssoLogin (forks daemon: `aws sso login` → getCallerIdentity → refresh)
6
+ * and ssoLogout. Only login success and errors produce system notifications.
7
+ * `ssoSemaphore(1)` serializes concurrent SSO commands.
8
+ *
9
+ * @module
10
+ */
1
11
  import { Command, HttpApiBuilder } from "@effect/platform";
2
12
  import { AwsClient, CacheService, PRService } from "@knpkv/codecommit-core";
3
13
  import { Duration, Effect, SubscriptionRef } from "effect";
@@ -20,12 +30,6 @@ export const NotificationsLive = HttpApiBuilder.group(CodeCommitApi, "notificati
20
30
  .handle("markUnread", ({ payload }) => notificationRepo.markUnread(payload.id).pipe(Effect.map(() => "ok"), Effect.orDie))
21
31
  .handle("markAllRead", () => notificationRepo.markAllRead().pipe(Effect.map(() => "ok"), Effect.orDie))
22
32
  .handle("ssoLogin", ({ payload }) => Effect.gen(function* () {
23
- yield* notificationRepo.addSystem({
24
- type: "info",
25
- title: payload.profile,
26
- message: `Starting SSO login for ${payload.profile}...`,
27
- profile: payload.profile
28
- });
29
33
  const cmd = Command.make("aws", "sso", "login", "--profile", payload.profile).pipe(Command.stdout("inherit"), Command.stderr("inherit"));
30
34
  yield* Effect.forkDaemon(ssoSemaphore.withPermits(1)(Command.exitCode(cmd).pipe(Effect.timeout(SSO_TIMEOUT), Effect.tap(() => Effect.gen(function* () {
31
35
  const state = yield* SubscriptionRef.get(prService.state);
@@ -55,17 +59,8 @@ export const NotificationsLive = HttpApiBuilder.group(CodeCommitApi, "notificati
55
59
  return "ok";
56
60
  }).pipe(Effect.mapError((e) => new ApiError({ message: String(e) || "Failed to start SSO login" }))))
57
61
  .handle("ssoLogout", () => Effect.gen(function* () {
58
- yield* notificationRepo.addSystem({
59
- type: "info",
60
- title: "SSO",
61
- message: "Logging out SSO session..."
62
- });
63
62
  const cmd = Command.make("aws", "sso", "logout").pipe(Command.stdout("inherit"), Command.stderr("inherit"));
64
- yield* Effect.forkDaemon(ssoSemaphore.withPermits(1)(Command.exitCode(cmd).pipe(Effect.timeout(SSO_TIMEOUT), Effect.tap(() => SubscriptionRef.update(prService.state, ({ currentUser: _, ...rest }) => rest)), Effect.tap(() => notificationRepo.addSystem({
65
- type: "success",
66
- title: "SSO",
67
- message: "SSO logout successful"
68
- })), Effect.catchAll((e) => Effect.logWarning("SSO logout failed", e).pipe(Effect.zipRight(notificationRepo.addSystem({
63
+ yield* Effect.forkDaemon(ssoSemaphore.withPermits(1)(Command.exitCode(cmd).pipe(Effect.timeout(SSO_TIMEOUT), Effect.tap(() => SubscriptionRef.update(prService.state, ({ currentUser: _, ...rest }) => rest)), Effect.catchAll((e) => Effect.logWarning("SSO logout failed", e).pipe(Effect.zipRight(notificationRepo.addSystem({
69
64
  type: "error",
70
65
  title: "SSO Logout Failed",
71
66
  message: "SSO logout failed"
@@ -1 +1 @@
1
- {"version":3,"file":"notifications-live.js","sourceRoot":"","sources":["../../../src/server/handlers/notifications-live.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notifications-live.js","sourceRoot":"","sources":["../../../src/server/handlers/notifications-live.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAE3E,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AAC1D,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAEnD,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAEvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,cAAc,CAAC,KAAK,CACnD,aAAa,EACb,eAAe,EACf,CAAC,QAAQ,EAAE,EAAE,CACX,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,SAAS,CAAA;IAC5C,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,SAAS,CAAA;IAC5C,MAAM,gBAAgB,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAA;IAC7D,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;IAEnD,OAAO,QAAQ;SACZ,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAChC,gBAAgB,CAAC,OAAO,CAAC;QACvB,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,EAAE;QAC5B,GAAG,CAAC,SAAS,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,GAAG,CAAC,SAAS,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACvB,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,CACpB,gBAAgB,CAAC,WAAW,EAAE,CAAC,IAAI,CACjC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EACpC,MAAM,CAAC,KAAK,CACb,CAAC;SACH,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAClC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CACxC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EACtB,MAAM,CAAC,KAAK,CACb,CAAC;SACH,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CACpC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAC1C,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EACtB,MAAM,CAAC,KAAK,CACb,CAAC;SACH,MAAM,CAAC,aAAa,EAAE,GAAG,EAAE,CAC1B,gBAAgB,CAAC,WAAW,EAAE,CAAC,IAAI,CACjC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EACtB,MAAM,CAAC,KAAK,CACb,CAAC;SACH,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAClC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAChF,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EACzB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAC1B,CAAA;QACD,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CACtB,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CACzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CACxB,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CACd,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YACzD,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;YACzE,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAK,WAAyB,CAAA;YAC5D,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC;gBAClD,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,MAAM;aACP,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;YACzD,IAAI,QAAQ,EAAE,CAAC;gBACb,KAAK,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACrD,GAAG,CAAC;oBACJ,WAAW,EAAE,QAAQ,CAAC,QAAQ;iBAC/B,CAAC,CAAC,CAAA;YACL,CAAC;QACH,CAAC,CAAC,CACH,EACD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CACd,gBAAgB,CAAC,SAAS,CAAC;YACzB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,OAAO,CAAC,OAAO;YACtB,OAAO,EAAE,4BAA4B,OAAO,CAAC,OAAO,EAAE;YACtD,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CACH,EACD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EACnC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CACpB,MAAM,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,CAC3C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC;YACzC,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,kBAAkB;YACzB,OAAO,EAAE,sCAAsC;YAC/C,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC,CACJ,CACF,CACF,CACF,CACF,CAAA;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,2BAA2B,EAAE,CAAC,CAAC,CAC5F,CAAC;SACH,MAAM,CAAC,WAAW,EAAE,GAAG,EAAE,CACxB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,IAAI,CACnD,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EACzB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAC1B,CAAA;QACD,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CACtB,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CACzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CACxB,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAChG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CACpB,MAAM,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,IAAI,CAC5C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC;YACzC,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,mBAAmB;YAC1B,OAAO,EAAE,mBAAmB;SAC7B,CAAC,CAAC,CACJ,CACF,CACF,CACF,CACF,CAAA;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,4BAA4B,EAAE,CAAC,CAAC,CAC7F,CAAC,CAAA;AACR,CAAC,CAAC,CACL,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { PermissionService } from "@knpkv/codecommit-core";
2
+ export declare const PermissionsLive: import("effect/Layer").Layer<import("@effect/platform/HttpApiGroup").ApiGroup<"CodeCommitApi", "permissions">, never, PermissionService.PermissionService | import("@knpkv/codecommit-core/PermissionService/PermissionGateLive.js").PermissionGateLive>;
3
+ //# sourceMappingURL=permissions-live.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions-live.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/permissions-live.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAK1D,eAAO,MAAM,eAAe,0PA0C3B,CAAA"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @title Permissions handler — respond to prompts, manage permission state
3
+ *
4
+ * @module
5
+ */
6
+ import { HttpApiBuilder } from "@effect/platform";
7
+ import { PermissionService } from "@knpkv/codecommit-core";
8
+ import { PermissionGateLiveTag } from "@knpkv/codecommit-core/PermissionService/PermissionGateLive.js";
9
+ import { Effect } from "effect";
10
+ import { ApiError, CodeCommitApi } from "../Api.js";
11
+ export const PermissionsLive = HttpApiBuilder.group(CodeCommitApi, "permissions", (handlers) => Effect.gen(function* () {
12
+ const permService = yield* PermissionService.PermissionService;
13
+ const gate = yield* PermissionGateLiveTag;
14
+ return handlers
15
+ .handle("respond", ({ payload }) => gate.resolve(payload.id, payload.response).pipe(Effect.map(() => "ok"), Effect.mapError((e) => new ApiError({ message: String(e) }))))
16
+ .handle("list", () => Effect.gen(function* () {
17
+ const permissions = yield* permService.getAll();
18
+ const ops = PermissionService.allOperations();
19
+ return ops.map(([name, meta]) => ({
20
+ operation: name,
21
+ state: permissions[name] ?? "allow",
22
+ category: meta.category,
23
+ description: meta.description
24
+ }));
25
+ }))
26
+ .handle("update", ({ payload }) => permService.set(payload.operation, payload.state).pipe(Effect.map(() => "ok"), Effect.mapError((e) => new ApiError({ message: String(e) }))))
27
+ .handle("reset", () => permService.resetAll().pipe(Effect.map(() => "ok")))
28
+ .handle("auditSettings", () => Effect.all({
29
+ enabled: permService.isAuditEnabled(),
30
+ retentionDays: permService.getAuditRetention()
31
+ }))
32
+ .handle("updateAuditSettings", ({ payload }) => permService.setAudit(payload).pipe(Effect.map(() => "ok"), Effect.mapError((e) => new ApiError({ message: String(e) }))));
33
+ }));
34
+ //# sourceMappingURL=permissions-live.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions-live.js","sourceRoot":"","sources":["../../../src/server/handlers/permissions-live.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"prs-live.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/prs-live.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAgB3E,eAAO,MAAM,OAAO,uPA6Ff,CAAA"}
1
+ {"version":3,"file":"prs-live.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/prs-live.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AA4C3E,eAAO,MAAM,OAAO,uPAkIf,CAAA"}
@@ -1,3 +1,15 @@
1
+ /**
2
+ * PR endpoint handlers — list, refresh, create, open, comments, approval rules.
3
+ *
4
+ * Handles PR CRUD (list, search, refresh, create, open in console via Granted),
5
+ * comments fetch, and approval rule management (create/update/delete).
6
+ * {@link buildApprovalRuleContent} constructs the AWS JSON format
7
+ * `{Version, Statements, ApprovalPoolMembers}`. {@link extractAwsMessage}
8
+ * drills into AwsApiError.cause.message for human-readable error text.
9
+ * Approval rule errors produce system notifications via tapError.
10
+ *
11
+ * @module
12
+ */
1
13
  import { Command, HttpApiBuilder } from "@effect/platform";
2
14
  import { AwsClient, CacheService, PRService } from "@knpkv/codecommit-core";
3
15
  import { encodeCommentLocations } from "@knpkv/codecommit-core/Domain.js";
@@ -10,6 +22,35 @@ const copyToClipboard = (text) => {
10
22
  : Command.make("xclip", "-selection", "clipboard");
11
23
  return Command.exitCode(Command.stdin(cmd, Stream.make(text).pipe(Stream.encodeText)));
12
24
  };
25
+ const extractAwsMessage = (e) => {
26
+ if (!e || typeof e !== "object")
27
+ return String(e);
28
+ const err = e;
29
+ // AwsApiError.cause may contain the real AWS exception
30
+ const cause = err.cause;
31
+ if (cause && typeof cause === "object" && "message" in cause) {
32
+ return String(cause.message);
33
+ }
34
+ if ("message" in err && typeof err.message === "string" && err.message)
35
+ return err.message;
36
+ // PermissionDeniedError or other tagged errors
37
+ if ("reason" in err)
38
+ return `Permission ${err.reason}: ${err.operation ?? "unknown operation"}`;
39
+ try {
40
+ return JSON.stringify(e);
41
+ }
42
+ catch {
43
+ return String(e);
44
+ }
45
+ };
46
+ const buildApprovalRuleContent = (requiredApprovals, poolMembers) => JSON.stringify({
47
+ Version: "2018-11-08",
48
+ Statements: [{
49
+ Type: "Approvers",
50
+ NumberOfApprovalsNeeded: requiredApprovals,
51
+ ApprovalPoolMembers: poolMembers
52
+ }]
53
+ });
13
54
  export const PrsLive = HttpApiBuilder.group(CodeCommitApi, "prs", (handlers) => Effect.gen(function* () {
14
55
  const prService = yield* PRService.PRService;
15
56
  const awsClient = yield* AwsClient.AwsClient;
@@ -41,23 +82,43 @@ export const PrsLive = HttpApiBuilder.group(CodeCommitApi, "prs", (handlers) =>
41
82
  }).pipe(Effect.map(encodeCommentLocations), Effect.mapError((e) => new ApiError({ message: e.message }))))
42
83
  .handle("open", ({ payload }) => Effect.gen(function* () {
43
84
  yield* copyToClipboard(payload.link).pipe(Effect.catchAll(() => Effect.void));
44
- yield* notificationRepo.addSystem({
45
- type: "info",
46
- title: "Assume",
47
- message: `Opening ${payload.profile} → PR console...`
48
- });
49
85
  // -c: console login, -d: open URL in default browser
50
86
  const cmd = Command.make("assume", "-cd", payload.link, payload.profile).pipe(Command.stdout("inherit"), Command.stderr("inherit"), Command.env({ GRANTED_ALIAS_CONFIGURED: "true" }));
51
- yield* Effect.forkDaemon(Command.exitCode(cmd).pipe(Effect.tap(() => notificationRepo.addSystem({
52
- type: "success",
53
- title: "Assume",
54
- message: `Assumed ${payload.profile}`
55
- })), Effect.catchAll((e) => notificationRepo.addSystem({
87
+ yield* Effect.forkDaemon(Command.exitCode(cmd).pipe(Effect.catchAll((e) => notificationRepo.addSystem({
56
88
  type: "error",
57
89
  title: "Assume Failed",
58
90
  message: e instanceof Error ? e.message : String(e)
59
91
  }))));
60
92
  return payload.link;
61
- }).pipe(Effect.mapError((e) => new ApiError({ message: String(e) }))));
93
+ }).pipe(Effect.mapError((e) => new ApiError({ message: String(e) }))))
94
+ .handle("createApprovalRule", ({ payload }) => awsClient.createApprovalRule({
95
+ account: { profile: payload.account.profile, region: payload.account.region },
96
+ pullRequestId: payload.pullRequestId,
97
+ approvalRuleName: payload.approvalRuleName,
98
+ approvalRuleContent: buildApprovalRuleContent(payload.requiredApprovals, payload.poolMembers)
99
+ }).pipe(Effect.map(() => "ok"), Effect.tapError((e) => notificationRepo.addSystem({
100
+ type: "error",
101
+ title: "Approval Rule",
102
+ message: extractAwsMessage(e)
103
+ })), Effect.mapError((e) => new ApiError({ message: e.message }))))
104
+ .handle("updateApprovalRule", ({ payload }) => awsClient.updateApprovalRule({
105
+ account: { profile: payload.account.profile, region: payload.account.region },
106
+ pullRequestId: payload.pullRequestId,
107
+ approvalRuleName: payload.approvalRuleName,
108
+ newApprovalRuleContent: buildApprovalRuleContent(payload.requiredApprovals, payload.poolMembers)
109
+ }).pipe(Effect.map(() => "ok"), Effect.tapError((e) => notificationRepo.addSystem({
110
+ type: "error",
111
+ title: "Approval Rule",
112
+ message: extractAwsMessage(e)
113
+ })), Effect.mapError((e) => new ApiError({ message: e.message }))))
114
+ .handle("deleteApprovalRule", ({ payload }) => awsClient.deleteApprovalRule({
115
+ account: { profile: payload.account.profile, region: payload.account.region },
116
+ pullRequestId: payload.pullRequestId,
117
+ approvalRuleName: payload.approvalRuleName
118
+ }).pipe(Effect.map(() => "ok"), Effect.tapError((e) => notificationRepo.addSystem({
119
+ type: "error",
120
+ title: "Approval Rule",
121
+ message: extractAwsMessage(e)
122
+ })), Effect.mapError((e) => new ApiError({ message: e.message }))));
62
123
  }));
63
124
  //# sourceMappingURL=prs-live.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prs-live.js","sourceRoot":"","sources":["../../../src/server/handlers/prs-live.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prs-live.js","sourceRoot":"","sources":["../../../src/server/handlers/prs-live.ts"],"names":[],"mappings":"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"}