@knpkv/herdr-approvals 0.2.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 (133) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +22 -0
  3. package/dist/activity-history.d.ts +36 -0
  4. package/dist/activity-history.d.ts.map +1 -0
  5. package/dist/activity-history.js +233 -0
  6. package/dist/activity-history.js.map +1 -0
  7. package/dist/approval-app-view.d.ts +26 -0
  8. package/dist/approval-app-view.d.ts.map +1 -0
  9. package/dist/approval-app-view.js +79 -0
  10. package/dist/approval-app-view.js.map +1 -0
  11. package/dist/approval-client.d.ts +2 -0
  12. package/dist/approval-client.d.ts.map +1 -0
  13. package/dist/approval-client.js +520 -0
  14. package/dist/approval-client.js.map +1 -0
  15. package/dist/approval-sw.js +28 -0
  16. package/dist/approval-sw.js.map +7 -0
  17. package/dist/approval-url.d.ts +37 -0
  18. package/dist/approval-url.d.ts.map +1 -0
  19. package/dist/approval-url.js +37 -0
  20. package/dist/approval-url.js.map +1 -0
  21. package/dist/approval.js +188 -0
  22. package/dist/approval.js.map +7 -0
  23. package/dist/auth.d.ts +10 -0
  24. package/dist/auth.d.ts.map +1 -0
  25. package/dist/auth.js +14 -0
  26. package/dist/auth.js.map +1 -0
  27. package/dist/bin.d.ts +3 -0
  28. package/dist/bin.d.ts.map +1 -0
  29. package/dist/bin.js +47 -0
  30. package/dist/bin.js.map +1 -0
  31. package/dist/connect-entry.d.ts +2 -0
  32. package/dist/connect-entry.d.ts.map +1 -0
  33. package/dist/connect-entry.js +2 -0
  34. package/dist/connect-entry.js.map +1 -0
  35. package/dist/connect.js +188 -0
  36. package/dist/connect.js.map +7 -0
  37. package/dist/dashboard-model.d.ts +719 -0
  38. package/dist/dashboard-model.d.ts.map +1 -0
  39. package/dist/dashboard-model.js +83 -0
  40. package/dist/dashboard-model.js.map +1 -0
  41. package/dist/dashboard-view.d.ts +42 -0
  42. package/dist/dashboard-view.d.ts.map +1 -0
  43. package/dist/dashboard-view.js +194 -0
  44. package/dist/dashboard-view.js.map +1 -0
  45. package/dist/errors.d.ts +33 -0
  46. package/dist/errors.d.ts.map +1 -0
  47. package/dist/errors.js +12 -0
  48. package/dist/errors.js.map +1 -0
  49. package/dist/fleetctl-submission.d.ts +68 -0
  50. package/dist/fleetctl-submission.d.ts.map +1 -0
  51. package/dist/fleetctl-submission.js +31 -0
  52. package/dist/fleetctl-submission.js.map +1 -0
  53. package/dist/fleetctl.d.ts +22 -0
  54. package/dist/fleetctl.d.ts.map +1 -0
  55. package/dist/fleetctl.js +264 -0
  56. package/dist/fleetctl.js.map +1 -0
  57. package/dist/geist-latin-wght-normal.woff2 +0 -0
  58. package/dist/geist-mono-latin-wght-normal.woff2 +0 -0
  59. package/dist/http.d.ts +1512 -0
  60. package/dist/http.d.ts.map +1 -0
  61. package/dist/http.js +1653 -0
  62. package/dist/http.js.map +1 -0
  63. package/dist/index.css +2 -0
  64. package/dist/index.css.map +7 -0
  65. package/dist/index.d.ts +12 -0
  66. package/dist/index.d.ts.map +1 -0
  67. package/dist/index.js +12 -0
  68. package/dist/index.js.map +1 -0
  69. package/dist/internal/config-path.d.ts +3 -0
  70. package/dist/internal/config-path.d.ts.map +1 -0
  71. package/dist/internal/config-path.js +3 -0
  72. package/dist/internal/config-path.js.map +1 -0
  73. package/dist/internal/dashboard-pending-state.d.ts +49 -0
  74. package/dist/internal/dashboard-pending-state.d.ts.map +1 -0
  75. package/dist/internal/dashboard-pending-state.js +98 -0
  76. package/dist/internal/dashboard-pending-state.js.map +1 -0
  77. package/dist/internal/fleet-follow.d.ts +54 -0
  78. package/dist/internal/fleet-follow.d.ts.map +1 -0
  79. package/dist/internal/fleet-follow.js +10 -0
  80. package/dist/internal/fleet-follow.js.map +1 -0
  81. package/dist/internal/fleet-request.d.ts +4 -0
  82. package/dist/internal/fleet-request.d.ts.map +1 -0
  83. package/dist/internal/fleet-request.js +11 -0
  84. package/dist/internal/fleet-request.js.map +1 -0
  85. package/dist/internal/html.d.ts +3 -0
  86. package/dist/internal/html.d.ts.map +1 -0
  87. package/dist/internal/html.js +8 -0
  88. package/dist/internal/html.js.map +1 -0
  89. package/dist/internal/websocket.d.ts +4 -0
  90. package/dist/internal/websocket.d.ts.map +1 -0
  91. package/dist/internal/websocket.js +12 -0
  92. package/dist/internal/websocket.js.map +1 -0
  93. package/dist/model.d.ts +40 -0
  94. package/dist/model.d.ts.map +1 -0
  95. package/dist/model.js +53 -0
  96. package/dist/model.js.map +1 -0
  97. package/dist/operations.d.ts +72 -0
  98. package/dist/operations.d.ts.map +1 -0
  99. package/dist/operations.js +284 -0
  100. package/dist/operations.js.map +1 -0
  101. package/dist/push-policy.d.ts +3 -0
  102. package/dist/push-policy.d.ts.map +1 -0
  103. package/dist/push-policy.js +3 -0
  104. package/dist/push-policy.js.map +1 -0
  105. package/dist/push-sender.d.ts +18 -0
  106. package/dist/push-sender.d.ts.map +1 -0
  107. package/dist/push-sender.js +33 -0
  108. package/dist/push-sender.js.map +1 -0
  109. package/dist/push-subscription.d.ts +17 -0
  110. package/dist/push-subscription.d.ts.map +1 -0
  111. package/dist/push-subscription.js +62 -0
  112. package/dist/push-subscription.js.map +1 -0
  113. package/dist/push-worker.d.ts +20 -0
  114. package/dist/push-worker.d.ts.map +1 -0
  115. package/dist/push-worker.js +32 -0
  116. package/dist/push-worker.js.map +1 -0
  117. package/dist/pwa.d.ts +39 -0
  118. package/dist/pwa.d.ts.map +1 -0
  119. package/dist/pwa.js +51 -0
  120. package/dist/pwa.js.map +1 -0
  121. package/dist/shell-view.d.ts +20 -0
  122. package/dist/shell-view.d.ts.map +1 -0
  123. package/dist/shell-view.js +86 -0
  124. package/dist/shell-view.js.map +1 -0
  125. package/dist/store.d.ts +46 -0
  126. package/dist/store.d.ts.map +1 -0
  127. package/dist/store.js +291 -0
  128. package/dist/store.js.map +1 -0
  129. package/dist/work-checkpoint.d.ts +107 -0
  130. package/dist/work-checkpoint.d.ts.map +1 -0
  131. package/dist/work-checkpoint.js +37 -0
  132. package/dist/work-checkpoint.js.map +1 -0
  133. package/package.json +90 -0
@@ -0,0 +1,37 @@
1
+ import { FleetOperationError, FleetValidationError } from "@knpkv/herdr-fleet";
2
+ import { type TailscaleClient } from "@knpkv/herdr-tailscale";
3
+ import { Effect } from "effect";
4
+ export declare const resolveApprovalPage: (config: {
5
+ readonly host: string;
6
+ readonly repository: string;
7
+ readonly stateDirectory: string;
8
+ readonly crossHost: boolean;
9
+ readonly port: number;
10
+ readonly localPort: number;
11
+ readonly approvalPort: number;
12
+ readonly allowedUsers: readonly string[];
13
+ readonly approvalNodes: readonly string[];
14
+ readonly machines: readonly {
15
+ readonly host: string;
16
+ readonly nodeId: string;
17
+ }[];
18
+ readonly applyMachines: readonly string[];
19
+ readonly checkCommand: readonly string[];
20
+ readonly applyCommand: readonly string[] | null;
21
+ readonly browserMcpRecoverCommand: readonly string[] | null;
22
+ readonly coordinatorCommand: readonly string[];
23
+ readonly herdrCommand: string;
24
+ readonly tailscaleCommand: string;
25
+ readonly approvalTls: {
26
+ readonly certificatePath: string;
27
+ readonly privateKeyPath: string;
28
+ } | null;
29
+ readonly approvalHub: {
30
+ readonly host: string;
31
+ readonly nodeId: string;
32
+ readonly url: string;
33
+ };
34
+ readonly pushAllowedOrigins: readonly string[];
35
+ readonly pushSubject: string;
36
+ }, tailscale: TailscaleClient, target: string) => Effect.Effect<string, FleetOperationError | FleetValidationError, never>;
37
+ //# sourceMappingURL=approval-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval-url.d.ts","sourceRoot":"","sources":["../src/approval-url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAA0B,MAAM,oBAAoB,CAAA;AACtG,OAAO,EAA8B,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACzF,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0HAgD9B,CAAA"}
@@ -0,0 +1,37 @@
1
+ import { FleetOperationError, FleetValidationError } from "@knpkv/herdr-fleet";
2
+ import { nodeIpv4, resolveFleetNode } from "@knpkv/herdr-tailscale";
3
+ import { Effect } from "effect";
4
+ export const resolveApprovalPage = Effect.fn("Fleetctl.resolveApprovalPage")(function* (config, tailscale, target) {
5
+ if (!config.crossHost) {
6
+ return yield* new FleetValidationError({
7
+ detail: "cross-host approval is disabled on this machine"
8
+ });
9
+ }
10
+ const known = config.machines.find(({ host }) => host.toLowerCase() === target.toLowerCase());
11
+ if (known === undefined) {
12
+ return yield* new FleetValidationError({ detail: `unknown host: ${target}` });
13
+ }
14
+ if (known.host.toLowerCase() === config.approvalHub.host.toLowerCase()) {
15
+ return config.approvalHub.url;
16
+ }
17
+ const status = yield* tailscale.status.pipe(Effect.mapError((cause) => new FleetOperationError({
18
+ cause,
19
+ detail: String(cause),
20
+ operation: "tailscale.status"
21
+ })));
22
+ const node = yield* resolveFleetNode(status, known).pipe(Effect.mapError((cause) => new FleetOperationError({
23
+ cause,
24
+ detail: String(cause),
25
+ operation: "fleet.resolve_approval_page.identity"
26
+ })));
27
+ const address = nodeIpv4(node);
28
+ if (address === undefined || !node.Online) {
29
+ return yield* new FleetOperationError({
30
+ cause: known.host,
31
+ detail: `${known.host} is not online in Tailscale status`,
32
+ operation: "fleet.resolve_approval_page"
33
+ });
34
+ }
35
+ return `http://${address}:${config.approvalPort}/`;
36
+ });
37
+ //# sourceMappingURL=approval-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval-url.js","sourceRoot":"","sources":["../src/approval-url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAA0B,MAAM,oBAAoB,CAAA;AACtG,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAwB,MAAM,wBAAwB,CAAA;AACzF,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,EAAE,CAAC,8BAA8B,CAAC,CAAC,QAAQ,CAAC,EACpF,MAAyB,EACzB,SAA0B,EAC1B,MAAc;IAEd,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC,CAAC,IAAI,oBAAoB,CAAC;YACrC,MAAM,EAAE,iDAAiD;SAC1D,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAChC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,EAAE,CAC1D,CAAA;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC,CAAC,IAAI,oBAAoB,CAAC,EAAE,MAAM,EAAE,iBAAiB,MAAM,EAAE,EAAE,CAAC,CAAA;IAC/E,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QACvE,OAAO,MAAM,CAAC,WAAW,CAAC,GAAG,CAAA;IAC/B,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CACzC,MAAM,CAAC,QAAQ,CACb,CAAC,KAAK,EAAE,EAAE,CACR,IAAI,mBAAmB,CAAC;QACtB,KAAK;QACL,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;QACrB,SAAS,EAAE,kBAAkB;KAC9B,CAAC,CACL,CACF,CAAA;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,IAAI,CACtD,MAAM,CAAC,QAAQ,CACb,CAAC,KAAK,EAAE,EAAE,CACR,IAAI,mBAAmB,CAAC;QACtB,KAAK;QACL,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;QACrB,SAAS,EAAE,sCAAsC;KAClD,CAAC,CACL,CACF,CAAA;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC9B,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC,CAAC,IAAI,mBAAmB,CAAC;YACpC,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,oCAAoC;YACzD,SAAS,EAAE,6BAA6B;SACzC,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,UAAU,OAAO,IAAI,MAAM,CAAC,YAAY,GAAG,CAAA;AACpD,CAAC,CAAC,CAAA"}