@aeolus-fleet/core 0.0.0 → 0.19.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.
- package/LICENSE +201 -0
- package/README.md +98 -1
- package/dist/adapters/cli/fleet-init.d.ts +14 -0
- package/dist/adapters/cli/fleet-init.js +68 -0
- package/dist/adapters/cli/fleet-init.js.map +1 -0
- package/dist/adapters/cli/io.d.ts +35 -0
- package/dist/adapters/cli/io.js +21 -0
- package/dist/adapters/cli/io.js.map +1 -0
- package/dist/adapters/cli/migrate.d.ts +11 -0
- package/dist/adapters/cli/migrate.js +12 -0
- package/dist/adapters/cli/migrate.js.map +1 -0
- package/dist/adapters/cli/operator-reset-password.d.ts +12 -0
- package/dist/adapters/cli/operator-reset-password.js +49 -0
- package/dist/adapters/cli/operator-reset-password.js.map +1 -0
- package/dist/adapters/cli/run.d.ts +14 -0
- package/dist/adapters/cli/run.js +40 -0
- package/dist/adapters/cli/run.js.map +1 -0
- package/dist/adapters/cli/terminal.d.ts +20 -0
- package/dist/adapters/cli/terminal.js +68 -0
- package/dist/adapters/cli/terminal.js.map +1 -0
- package/dist/adapters/crypto/passwords.d.ts +2 -0
- package/dist/adapters/crypto/passwords.js +59 -0
- package/dist/adapters/crypto/passwords.js.map +1 -0
- package/dist/adapters/crypto/secrets.d.ts +5 -0
- package/dist/adapters/crypto/secrets.js +10 -0
- package/dist/adapters/crypto/secrets.js.map +1 -0
- package/dist/adapters/http/device-label.d.ts +9 -0
- package/dist/adapters/http/device-label.js +39 -0
- package/dist/adapters/http/device-label.js.map +1 -0
- package/dist/adapters/http/rate-limiter.d.ts +21 -0
- package/dist/adapters/http/rate-limiter.js +44 -0
- package/dist/adapters/http/rate-limiter.js.map +1 -0
- package/dist/adapters/http/request-credentials.d.ts +23 -0
- package/dist/adapters/http/request-credentials.js +45 -0
- package/dist/adapters/http/request-credentials.js.map +1 -0
- package/dist/adapters/http/server.d.ts +47 -0
- package/dist/adapters/http/server.js +216 -0
- package/dist/adapters/http/server.js.map +1 -0
- package/dist/adapters/http/version.d.ts +9 -0
- package/dist/adapters/http/version.js +23 -0
- package/dist/adapters/http/version.js.map +1 -0
- package/dist/adapters/mcp/mcp-endpoint.d.ts +8 -0
- package/dist/adapters/mcp/mcp-endpoint.js +127 -0
- package/dist/adapters/mcp/mcp-endpoint.js.map +1 -0
- package/dist/adapters/prisma/client.d.ts +10 -0
- package/dist/adapters/prisma/client.js +20 -0
- package/dist/adapters/prisma/client.js.map +1 -0
- package/dist/adapters/prisma/delivery-notices.d.ts +34 -0
- package/dist/adapters/prisma/delivery-notices.js +113 -0
- package/dist/adapters/prisma/delivery-notices.js.map +1 -0
- package/dist/adapters/prisma/event-log.d.ts +11 -0
- package/dist/adapters/prisma/event-log.js +61 -0
- package/dist/adapters/prisma/event-log.js.map +1 -0
- package/dist/adapters/prisma/failure-log.d.ts +22 -0
- package/dist/adapters/prisma/failure-log.js +70 -0
- package/dist/adapters/prisma/failure-log.js.map +1 -0
- package/dist/adapters/prisma/fleet-counter.d.ts +3 -0
- package/dist/adapters/prisma/fleet-counter.js +6 -0
- package/dist/adapters/prisma/fleet-counter.js.map +1 -0
- package/dist/adapters/prisma/fleet-event-wakeups.d.ts +33 -0
- package/dist/adapters/prisma/fleet-event-wakeups.js +86 -0
- package/dist/adapters/prisma/fleet-event-wakeups.js.map +1 -0
- package/dist/adapters/prisma/generated/browser.d.ts +127 -0
- package/dist/adapters/prisma/generated/browser.js +18 -0
- package/dist/adapters/prisma/generated/browser.js.map +1 -0
- package/dist/adapters/prisma/generated/client.d.ts +146 -0
- package/dist/adapters/prisma/generated/client.js +38 -0
- package/dist/adapters/prisma/generated/client.js.map +1 -0
- package/dist/adapters/prisma/generated/commonInputTypes.d.ts +879 -0
- package/dist/adapters/prisma/generated/commonInputTypes.js +11 -0
- package/dist/adapters/prisma/generated/commonInputTypes.js.map +1 -0
- package/dist/adapters/prisma/generated/enums.d.ts +75 -0
- package/dist/adapters/prisma/generated/enums.js +73 -0
- package/dist/adapters/prisma/generated/enums.js.map +1 -0
- package/dist/adapters/prisma/generated/internal/class.d.ts +308 -0
- package/dist/adapters/prisma/generated/internal/class.js +52 -0
- package/dist/adapters/prisma/generated/internal/class.js.map +1 -0
- package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +2131 -0
- package/dist/adapters/prisma/generated/internal/prismaNamespace.js +295 -0
- package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -0
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +273 -0
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +265 -0
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -0
- package/dist/adapters/prisma/generated/models/ConsoleSession.d.ts +2137 -0
- package/dist/adapters/prisma/generated/models/ConsoleSession.js +2 -0
- package/dist/adapters/prisma/generated/models/ConsoleSession.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Credential.d.ts +1360 -0
- package/dist/adapters/prisma/generated/models/Credential.js +2 -0
- package/dist/adapters/prisma/generated/models/Credential.js.map +1 -0
- package/dist/adapters/prisma/generated/models/CrewRequest.d.ts +1558 -0
- package/dist/adapters/prisma/generated/models/CrewRequest.js +2 -0
- package/dist/adapters/prisma/generated/models/CrewRequest.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Delivery.d.ts +2211 -0
- package/dist/adapters/prisma/generated/models/Delivery.js +2 -0
- package/dist/adapters/prisma/generated/models/Delivery.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Event.d.ts +1991 -0
- package/dist/adapters/prisma/generated/models/Event.js +2 -0
- package/dist/adapters/prisma/generated/models/Event.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Fleet.d.ts +3032 -0
- package/dist/adapters/prisma/generated/models/Fleet.js +2 -0
- package/dist/adapters/prisma/generated/models/Fleet.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Guide.d.ts +943 -0
- package/dist/adapters/prisma/generated/models/Guide.js +2 -0
- package/dist/adapters/prisma/generated/models/Guide.js.map +1 -0
- package/dist/adapters/prisma/generated/models/GuideProgress.d.ts +1323 -0
- package/dist/adapters/prisma/generated/models/GuideProgress.js +2 -0
- package/dist/adapters/prisma/generated/models/GuideProgress.js.map +1 -0
- package/dist/adapters/prisma/generated/models/InstallationRequest.d.ts +1036 -0
- package/dist/adapters/prisma/generated/models/InstallationRequest.js +2 -0
- package/dist/adapters/prisma/generated/models/InstallationRequest.js.map +1 -0
- package/dist/adapters/prisma/generated/models/InstallationSettings.d.ts +1027 -0
- package/dist/adapters/prisma/generated/models/InstallationSettings.js +2 -0
- package/dist/adapters/prisma/generated/models/InstallationSettings.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Lease.d.ts +2076 -0
- package/dist/adapters/prisma/generated/models/Lease.js +2 -0
- package/dist/adapters/prisma/generated/models/Lease.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Message.d.ts +2869 -0
- package/dist/adapters/prisma/generated/models/Message.js +2 -0
- package/dist/adapters/prisma/generated/models/Message.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Notice.d.ts +1068 -0
- package/dist/adapters/prisma/generated/models/Notice.js +2 -0
- package/dist/adapters/prisma/generated/models/Notice.js.map +1 -0
- package/dist/adapters/prisma/generated/models/NoticeDismissal.d.ts +1245 -0
- package/dist/adapters/prisma/generated/models/NoticeDismissal.js +2 -0
- package/dist/adapters/prisma/generated/models/NoticeDismissal.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Operator.d.ts +1173 -0
- package/dist/adapters/prisma/generated/models/Operator.js +2 -0
- package/dist/adapters/prisma/generated/models/Operator.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Ship.d.ts +3320 -0
- package/dist/adapters/prisma/generated/models/Ship.js +2 -0
- package/dist/adapters/prisma/generated/models/Ship.js.map +1 -0
- package/dist/adapters/prisma/generated/models/SignInTicket.d.ts +1222 -0
- package/dist/adapters/prisma/generated/models/SignInTicket.js +2 -0
- package/dist/adapters/prisma/generated/models/SignInTicket.js.map +1 -0
- package/dist/adapters/prisma/generated/models.d.ts +18 -0
- package/dist/adapters/prisma/generated/models.js +2 -0
- package/dist/adapters/prisma/generated/models.js.map +1 -0
- package/dist/adapters/prisma/history.d.ts +3 -0
- package/dist/adapters/prisma/history.js +289 -0
- package/dist/adapters/prisma/history.js.map +1 -0
- package/dist/adapters/prisma/identity.d.ts +10 -0
- package/dist/adapters/prisma/identity.js +213 -0
- package/dist/adapters/prisma/identity.js.map +1 -0
- package/dist/adapters/prisma/installation.d.ts +13 -0
- package/dist/adapters/prisma/installation.js +155 -0
- package/dist/adapters/prisma/installation.js.map +1 -0
- package/dist/adapters/prisma/messaging.d.ts +4 -0
- package/dist/adapters/prisma/messaging.js +156 -0
- package/dist/adapters/prisma/messaging.js.map +1 -0
- package/dist/adapters/prisma/migrate.d.ts +5 -0
- package/dist/adapters/prisma/migrate.js +40 -0
- package/dist/adapters/prisma/migrate.js.map +1 -0
- package/dist/adapters/prisma/receiver-wakeups.d.ts +26 -0
- package/dist/adapters/prisma/receiver-wakeups.js +79 -0
- package/dist/adapters/prisma/receiver-wakeups.js.map +1 -0
- package/dist/adapters/prisma/registry.d.ts +8 -0
- package/dist/adapters/prisma/registry.js +427 -0
- package/dist/adapters/prisma/registry.js.map +1 -0
- package/dist/adapters/prisma/rows.d.ts +58 -0
- package/dist/adapters/prisma/rows.js +408 -0
- package/dist/adapters/prisma/rows.js.map +1 -0
- package/dist/adapters/prisma/unit-of-work.d.ts +36 -0
- package/dist/adapters/prisma/unit-of-work.js +66 -0
- package/dist/adapters/prisma/unit-of-work.js.map +1 -0
- package/dist/adapters/rest/openapi.d.ts +12 -0
- package/dist/adapters/rest/openapi.js +62 -0
- package/dist/adapters/rest/openapi.js.map +1 -0
- package/dist/adapters/rest/rest-api.d.ts +8 -0
- package/dist/adapters/rest/rest-api.js +61 -0
- package/dist/adapters/rest/rest-api.js.map +1 -0
- package/dist/adapters/trpc/console.d.ts +150 -0
- package/dist/adapters/trpc/console.js +102 -0
- package/dist/adapters/trpc/console.js.map +1 -0
- package/dist/adapters/trpc/context.d.ts +201 -0
- package/dist/adapters/trpc/context.js +2 -0
- package/dist/adapters/trpc/context.js.map +1 -0
- package/dist/adapters/trpc/fleet.d.ts +637 -0
- package/dist/adapters/trpc/fleet.js +437 -0
- package/dist/adapters/trpc/fleet.js.map +1 -0
- package/dist/adapters/trpc/installation.d.ts +414 -0
- package/dist/adapters/trpc/installation.js +138 -0
- package/dist/adapters/trpc/installation.js.map +1 -0
- package/dist/adapters/trpc/router.d.ts +1263 -0
- package/dist/adapters/trpc/router.js +15 -0
- package/dist/adapters/trpc/router.js.map +1 -0
- package/dist/adapters/trpc/ship-contract.d.ts +107 -0
- package/dist/adapters/trpc/ship-contract.js +165 -0
- package/dist/adapters/trpc/ship-contract.js.map +1 -0
- package/dist/adapters/trpc/ship-protocol.d.ts +9 -0
- package/dist/adapters/trpc/ship-protocol.js +25 -0
- package/dist/adapters/trpc/ship-protocol.js.map +1 -0
- package/dist/adapters/trpc/ship.d.ts +209 -0
- package/dist/adapters/trpc/ship.js +214 -0
- package/dist/adapters/trpc/ship.js.map +1 -0
- package/dist/adapters/trpc/starting-prompt-text.d.ts +7 -0
- package/dist/adapters/trpc/starting-prompt-text.js +60 -0
- package/dist/adapters/trpc/starting-prompt-text.js.map +1 -0
- package/dist/adapters/trpc/system.d.ts +29 -0
- package/dist/adapters/trpc/system.js +15 -0
- package/dist/adapters/trpc/system.js.map +1 -0
- package/dist/adapters/trpc/trpc.d.ts +131 -0
- package/dist/adapters/trpc/trpc.js +350 -0
- package/dist/adapters/trpc/trpc.js.map +1 -0
- package/dist/app.d.ts +31 -0
- package/dist/app.js +80 -0
- package/dist/app.js.map +1 -0
- package/dist/bin/aeolus-core.d.ts +2 -0
- package/dist/bin/aeolus-core.js +45 -0
- package/dist/bin/aeolus-core.js.map +1 -0
- package/dist/config.d.ts +35 -0
- package/dist/config.js +74 -0
- package/dist/config.js.map +1 -0
- package/dist/domain/identity/authenticate.d.ts +46 -0
- package/dist/domain/identity/authenticate.js +18 -0
- package/dist/domain/identity/authenticate.js.map +1 -0
- package/dist/domain/identity/console-session.d.ts +54 -0
- package/dist/domain/identity/console-session.js +29 -0
- package/dist/domain/identity/console-session.js.map +1 -0
- package/dist/domain/identity/credential.d.ts +76 -0
- package/dist/domain/identity/credential.js +63 -0
- package/dist/domain/identity/credential.js.map +1 -0
- package/dist/domain/identity/dismiss-notice.d.ts +19 -0
- package/dist/domain/identity/dismiss-notice.js +23 -0
- package/dist/domain/identity/dismiss-notice.js.map +1 -0
- package/dist/domain/identity/get-guide.d.ts +7 -0
- package/dist/domain/identity/get-guide.js +5 -0
- package/dist/domain/identity/get-guide.js.map +1 -0
- package/dist/domain/identity/get-notices.d.ts +7 -0
- package/dist/domain/identity/get-notices.js +5 -0
- package/dist/domain/identity/get-notices.js.map +1 -0
- package/dist/domain/identity/guide.d.ts +24 -0
- package/dist/domain/identity/guide.js +3 -0
- package/dist/domain/identity/guide.js.map +1 -0
- package/dist/domain/identity/issue-sign-in-ticket.d.ts +38 -0
- package/dist/domain/identity/issue-sign-in-ticket.js +39 -0
- package/dist/domain/identity/issue-sign-in-ticket.js.map +1 -0
- package/dist/domain/identity/notice.d.ts +16 -0
- package/dist/domain/identity/notice.js +12 -0
- package/dist/domain/identity/notice.js.map +1 -0
- package/dist/domain/identity/operator-account.d.ts +28 -0
- package/dist/domain/identity/operator-account.js +21 -0
- package/dist/domain/identity/operator-account.js.map +1 -0
- package/dist/domain/identity/ports.d.ts +193 -0
- package/dist/domain/identity/ports.js +2 -0
- package/dist/domain/identity/ports.js.map +1 -0
- package/dist/domain/identity/public.d.ts +3 -0
- package/dist/domain/identity/public.js +5 -0
- package/dist/domain/identity/public.js.map +1 -0
- package/dist/domain/identity/read-account.d.ts +35 -0
- package/dist/domain/identity/read-account.js +27 -0
- package/dist/domain/identity/read-account.js.map +1 -0
- package/dist/domain/identity/read-guide.d.ts +18 -0
- package/dist/domain/identity/read-guide.js +21 -0
- package/dist/domain/identity/read-guide.js.map +1 -0
- package/dist/domain/identity/read-notices.d.ts +13 -0
- package/dist/domain/identity/read-notices.js +17 -0
- package/dist/domain/identity/read-notices.js.map +1 -0
- package/dist/domain/identity/record-guide-progress.d.ts +19 -0
- package/dist/domain/identity/record-guide-progress.js +24 -0
- package/dist/domain/identity/record-guide-progress.js.map +1 -0
- package/dist/domain/identity/redeem-sign-in-ticket.d.ts +34 -0
- package/dist/domain/identity/redeem-sign-in-ticket.js +25 -0
- package/dist/domain/identity/redeem-sign-in-ticket.js.map +1 -0
- package/dist/domain/identity/reset-operator-password.d.ts +34 -0
- package/dist/domain/identity/reset-operator-password.js +55 -0
- package/dist/domain/identity/reset-operator-password.js.map +1 -0
- package/dist/domain/identity/set-guide.d.ts +13 -0
- package/dist/domain/identity/set-guide.js +12 -0
- package/dist/domain/identity/set-guide.js.map +1 -0
- package/dist/domain/identity/set-notices.d.ts +13 -0
- package/dist/domain/identity/set-notices.js +12 -0
- package/dist/domain/identity/set-notices.js.map +1 -0
- package/dist/domain/identity/set-theme.d.ts +21 -0
- package/dist/domain/identity/set-theme.js +19 -0
- package/dist/domain/identity/set-theme.js.map +1 -0
- package/dist/domain/identity/sign-in-ticket.d.ts +21 -0
- package/dist/domain/identity/sign-in-ticket.js +5 -0
- package/dist/domain/identity/sign-in-ticket.js.map +1 -0
- package/dist/domain/identity/sign-in.d.ts +51 -0
- package/dist/domain/identity/sign-in.js +43 -0
- package/dist/domain/identity/sign-in.js.map +1 -0
- package/dist/domain/identity/sign-out.d.ts +20 -0
- package/dist/domain/identity/sign-out.js +32 -0
- package/dist/domain/identity/sign-out.js.map +1 -0
- package/dist/domain/identity/start-console-session.d.ts +27 -0
- package/dist/domain/identity/start-console-session.js +54 -0
- package/dist/domain/identity/start-console-session.js.map +1 -0
- package/dist/domain/identity/start-viewer-session.d.ts +29 -0
- package/dist/domain/identity/start-viewer-session.js +42 -0
- package/dist/domain/identity/start-viewer-session.js.map +1 -0
- package/dist/domain/messaging/acknowledge-delivery.d.ts +30 -0
- package/dist/domain/messaging/acknowledge-delivery.js +31 -0
- package/dist/domain/messaging/acknowledge-delivery.js.map +1 -0
- package/dist/domain/messaging/answer-ping.d.ts +33 -0
- package/dist/domain/messaging/answer-ping.js +37 -0
- package/dist/domain/messaging/answer-ping.js.map +1 -0
- package/dist/domain/messaging/check-inbox.d.ts +33 -0
- package/dist/domain/messaging/check-inbox.js +61 -0
- package/dist/domain/messaging/check-inbox.js.map +1 -0
- package/dist/domain/messaging/content-type.d.ts +9 -0
- package/dist/domain/messaging/content-type.js +18 -0
- package/dist/domain/messaging/content-type.js.map +1 -0
- package/dist/domain/messaging/daily-message-limit.d.ts +19 -0
- package/dist/domain/messaging/daily-message-limit.js +24 -0
- package/dist/domain/messaging/daily-message-limit.js.map +1 -0
- package/dist/domain/messaging/delivery.d.ts +116 -0
- package/dist/domain/messaging/delivery.js +201 -0
- package/dist/domain/messaging/delivery.js.map +1 -0
- package/dist/domain/messaging/dismiss-delivery.d.ts +28 -0
- package/dist/domain/messaging/dismiss-delivery.js +29 -0
- package/dist/domain/messaging/dismiss-delivery.js.map +1 -0
- package/dist/domain/messaging/inbox-wait.d.ts +8 -0
- package/dist/domain/messaging/inbox-wait.js +19 -0
- package/dist/domain/messaging/inbox-wait.js.map +1 -0
- package/dist/domain/messaging/mark-done.d.ts +45 -0
- package/dist/domain/messaging/mark-done.js +49 -0
- package/dist/domain/messaging/mark-done.js.map +1 -0
- package/dist/domain/messaging/mark-read.d.ts +27 -0
- package/dist/domain/messaging/mark-read.js +34 -0
- package/dist/domain/messaging/mark-read.js.map +1 -0
- package/dist/domain/messaging/message.d.ts +104 -0
- package/dist/domain/messaging/message.js +84 -0
- package/dist/domain/messaging/message.js.map +1 -0
- package/dist/domain/messaging/payload.d.ts +9 -0
- package/dist/domain/messaging/payload.js +16 -0
- package/dist/domain/messaging/payload.js.map +1 -0
- package/dist/domain/messaging/ping-ship.d.ts +38 -0
- package/dist/domain/messaging/ping-ship.js +42 -0
- package/dist/domain/messaging/ping-ship.js.map +1 -0
- package/dist/domain/messaging/ports.d.ts +116 -0
- package/dist/domain/messaging/ports.js +2 -0
- package/dist/domain/messaging/ports.js.map +1 -0
- package/dist/domain/messaging/receive-deliveries.d.ts +68 -0
- package/dist/domain/messaging/receive-deliveries.js +119 -0
- package/dist/domain/messaging/receive-deliveries.js.map +1 -0
- package/dist/domain/messaging/receive-max.d.ts +8 -0
- package/dist/domain/messaging/receive-max.js +17 -0
- package/dist/domain/messaging/receive-max.js.map +1 -0
- package/dist/domain/messaging/reply-to-message.d.ts +35 -0
- package/dist/domain/messaging/reply-to-message.js +49 -0
- package/dist/domain/messaging/reply-to-message.js.map +1 -0
- package/dist/domain/messaging/resend-delivery.d.ts +48 -0
- package/dist/domain/messaging/resend-delivery.js +97 -0
- package/dist/domain/messaging/resend-delivery.js.map +1 -0
- package/dist/domain/messaging/send-message.d.ts +88 -0
- package/dist/domain/messaging/send-message.js +115 -0
- package/dist/domain/messaging/send-message.js.map +1 -0
- package/dist/domain/messaging/send-request.d.ts +16 -0
- package/dist/domain/messaging/send-request.js +18 -0
- package/dist/domain/messaging/send-request.js.map +1 -0
- package/dist/domain/registry/applied-limits.d.ts +15 -0
- package/dist/domain/registry/applied-limits.js +15 -0
- package/dist/domain/registry/applied-limits.js.map +1 -0
- package/dist/domain/registry/assign-crew.d.ts +31 -0
- package/dist/domain/registry/assign-crew.js +35 -0
- package/dist/domain/registry/assign-crew.js.map +1 -0
- package/dist/domain/registry/claim-ship.d.ts +49 -0
- package/dist/domain/registry/claim-ship.js +59 -0
- package/dist/domain/registry/claim-ship.js.map +1 -0
- package/dist/domain/registry/commission-ship.d.ts +54 -0
- package/dist/domain/registry/commission-ship.js +70 -0
- package/dist/domain/registry/commission-ship.js.map +1 -0
- package/dist/domain/registry/confirm-crew-release.d.ts +28 -0
- package/dist/domain/registry/confirm-crew-release.js +28 -0
- package/dist/domain/registry/confirm-crew-release.js.map +1 -0
- package/dist/domain/registry/create-fleet.d.ts +39 -0
- package/dist/domain/registry/create-fleet.js +56 -0
- package/dist/domain/registry/create-fleet.js.map +1 -0
- package/dist/domain/registry/crew-request.d.ts +148 -0
- package/dist/domain/registry/crew-request.js +175 -0
- package/dist/domain/registry/crew-request.js.map +1 -0
- package/dist/domain/registry/delete-fleet.d.ts +46 -0
- package/dist/domain/registry/delete-fleet.js +34 -0
- package/dist/domain/registry/delete-fleet.js.map +1 -0
- package/dist/domain/registry/deregister.d.ts +32 -0
- package/dist/domain/registry/deregister.js +38 -0
- package/dist/domain/registry/deregister.js.map +1 -0
- package/dist/domain/registry/explain-crew-request.d.ts +30 -0
- package/dist/domain/registry/explain-crew-request.js +31 -0
- package/dist/domain/registry/explain-crew-request.js.map +1 -0
- package/dist/domain/registry/fleet.d.ts +12 -0
- package/dist/domain/registry/fleet.js +12 -0
- package/dist/domain/registry/fleet.js.map +1 -0
- package/dist/domain/registry/found-fleet.d.ts +32 -0
- package/dist/domain/registry/found-fleet.js +43 -0
- package/dist/domain/registry/found-fleet.js.map +1 -0
- package/dist/domain/registry/get-fleet-limits.d.ts +17 -0
- package/dist/domain/registry/get-fleet-limits.js +14 -0
- package/dist/domain/registry/get-fleet-limits.js.map +1 -0
- package/dist/domain/registry/get-installation-fleet.d.ts +15 -0
- package/dist/domain/registry/get-installation-fleet.js +12 -0
- package/dist/domain/registry/get-installation-fleet.js.map +1 -0
- package/dist/domain/registry/get-installation-settings.d.ts +7 -0
- package/dist/domain/registry/get-installation-settings.js +5 -0
- package/dist/domain/registry/get-installation-settings.js.map +1 -0
- package/dist/domain/registry/get-ship.d.ts +34 -0
- package/dist/domain/registry/get-ship.js +36 -0
- package/dist/domain/registry/get-ship.js.map +1 -0
- package/dist/domain/registry/get-starting-prompt.d.ts +24 -0
- package/dist/domain/registry/get-starting-prompt.js +46 -0
- package/dist/domain/registry/get-starting-prompt.js.map +1 -0
- package/dist/domain/registry/initialise-fleet.d.ts +28 -0
- package/dist/domain/registry/initialise-fleet.js +39 -0
- package/dist/domain/registry/initialise-fleet.js.map +1 -0
- package/dist/domain/registry/installation-fleet.d.ts +36 -0
- package/dist/domain/registry/installation-fleet.js +22 -0
- package/dist/domain/registry/installation-fleet.js.map +1 -0
- package/dist/domain/registry/installation-request.d.ts +23 -0
- package/dist/domain/registry/installation-request.js +5 -0
- package/dist/domain/registry/installation-request.js.map +1 -0
- package/dist/domain/registry/lease.d.ts +51 -0
- package/dist/domain/registry/lease.js +39 -0
- package/dist/domain/registry/lease.js.map +1 -0
- package/dist/domain/registry/leases.d.ts +66 -0
- package/dist/domain/registry/leases.js +80 -0
- package/dist/domain/registry/leases.js.map +1 -0
- package/dist/domain/registry/limits.d.ts +50 -0
- package/dist/domain/registry/limits.js +24 -0
- package/dist/domain/registry/limits.js.map +1 -0
- package/dist/domain/registry/list-fleet.d.ts +70 -0
- package/dist/domain/registry/list-fleet.js +47 -0
- package/dist/domain/registry/list-fleet.js.map +1 -0
- package/dist/domain/registry/list-fleets.d.ts +11 -0
- package/dist/domain/registry/list-fleets.js +9 -0
- package/dist/domain/registry/list-fleets.js.map +1 -0
- package/dist/domain/registry/list-installation-fleets.d.ts +15 -0
- package/dist/domain/registry/list-installation-fleets.js +15 -0
- package/dist/domain/registry/list-installation-fleets.js.map +1 -0
- package/dist/domain/registry/ping-status.d.ts +17 -0
- package/dist/domain/registry/ping-status.js +28 -0
- package/dist/domain/registry/ping-status.js.map +1 -0
- package/dist/domain/registry/pingable-ship.d.ts +22 -0
- package/dist/domain/registry/pingable-ship.js +21 -0
- package/dist/domain/registry/pingable-ship.js.map +1 -0
- package/dist/domain/registry/ports.d.ts +318 -0
- package/dist/domain/registry/ports.js +2 -0
- package/dist/domain/registry/ports.js.map +1 -0
- package/dist/domain/registry/public.d.ts +8 -0
- package/dist/domain/registry/public.js +10 -0
- package/dist/domain/registry/public.js.map +1 -0
- package/dist/domain/registry/read-assigned-crew-requests.d.ts +14 -0
- package/dist/domain/registry/read-assigned-crew-requests.js +15 -0
- package/dist/domain/registry/read-assigned-crew-requests.js.map +1 -0
- package/dist/domain/registry/recrew-ship.d.ts +33 -0
- package/dist/domain/registry/recrew-ship.js +34 -0
- package/dist/domain/registry/recrew-ship.js.map +1 -0
- package/dist/domain/registry/release-ship.d.ts +38 -0
- package/dist/domain/registry/release-ship.js +47 -0
- package/dist/domain/registry/release-ship.js.map +1 -0
- package/dist/domain/registry/remove-crew-request.d.ts +28 -0
- package/dist/domain/registry/remove-crew-request.js +36 -0
- package/dist/domain/registry/remove-crew-request.js.map +1 -0
- package/dist/domain/registry/rename-ship.d.ts +30 -0
- package/dist/domain/registry/rename-ship.js +39 -0
- package/dist/domain/registry/rename-ship.js.map +1 -0
- package/dist/domain/registry/report-crew-status.d.ts +29 -0
- package/dist/domain/registry/report-crew-status.js +30 -0
- package/dist/domain/registry/report-crew-status.js.map +1 -0
- package/dist/domain/registry/report-details.d.ts +18 -0
- package/dist/domain/registry/report-details.js +41 -0
- package/dist/domain/registry/report-details.js.map +1 -0
- package/dist/domain/registry/report-log.d.ts +21 -0
- package/dist/domain/registry/report-log.js +16 -0
- package/dist/domain/registry/report-log.js.map +1 -0
- package/dist/domain/registry/report.d.ts +30 -0
- package/dist/domain/registry/report.js +30 -0
- package/dist/domain/registry/report.js.map +1 -0
- package/dist/domain/registry/request-crew.d.ts +32 -0
- package/dist/domain/registry/request-crew.js +29 -0
- package/dist/domain/registry/request-crew.js.map +1 -0
- package/dist/domain/registry/resolve-selector.d.ts +25 -0
- package/dist/domain/registry/resolve-selector.js +32 -0
- package/dist/domain/registry/resolve-selector.js.map +1 -0
- package/dist/domain/registry/retire-ship.d.ts +42 -0
- package/dist/domain/registry/retire-ship.js +68 -0
- package/dist/domain/registry/retire-ship.js.map +1 -0
- package/dist/domain/registry/set-fleet-limits.d.ts +30 -0
- package/dist/domain/registry/set-fleet-limits.js +54 -0
- package/dist/domain/registry/set-fleet-limits.js.map +1 -0
- package/dist/domain/registry/set-installation-settings.d.ts +18 -0
- package/dist/domain/registry/set-installation-settings.js +31 -0
- package/dist/domain/registry/set-installation-settings.js.map +1 -0
- package/dist/domain/registry/ship-handle.d.ts +5 -0
- package/dist/domain/registry/ship-handle.js +20 -0
- package/dist/domain/registry/ship-handle.js.map +1 -0
- package/dist/domain/registry/ship-note.d.ts +7 -0
- package/dist/domain/registry/ship-note.js +15 -0
- package/dist/domain/registry/ship-note.js.map +1 -0
- package/dist/domain/registry/ship-report.d.ts +42 -0
- package/dist/domain/registry/ship-report.js +93 -0
- package/dist/domain/registry/ship-report.js.map +1 -0
- package/dist/domain/registry/ship.d.ts +190 -0
- package/dist/domain/registry/ship.js +334 -0
- package/dist/domain/registry/ship.js.map +1 -0
- package/dist/domain/registry/ships.d.ts +25 -0
- package/dist/domain/registry/ships.js +22 -0
- package/dist/domain/registry/ships.js.map +1 -0
- package/dist/domain/registry/starting-prompt.d.ts +32 -0
- package/dist/domain/registry/starting-prompt.js +22 -0
- package/dist/domain/registry/starting-prompt.js.map +1 -0
- package/dist/domain/registry/whoami.d.ts +20 -0
- package/dist/domain/registry/whoami.js +15 -0
- package/dist/domain/registry/whoami.js.map +1 -0
- package/dist/domain/shared/caller.d.ts +25 -0
- package/dist/domain/shared/caller.js +8 -0
- package/dist/domain/shared/caller.js.map +1 -0
- package/dist/domain/shared/clock.d.ts +4 -0
- package/dist/domain/shared/clock.js +2 -0
- package/dist/domain/shared/clock.js.map +1 -0
- package/dist/domain/shared/errors.d.ts +13 -0
- package/dist/domain/shared/errors.js +6 -0
- package/dist/domain/shared/errors.js.map +1 -0
- package/dist/domain/shared/events.d.ts +75 -0
- package/dist/domain/shared/events.js +9 -0
- package/dist/domain/shared/events.js.map +1 -0
- package/dist/domain/shared/follow-fleet.d.ts +32 -0
- package/dist/domain/shared/follow-fleet.js +65 -0
- package/dist/domain/shared/follow-fleet.js.map +1 -0
- package/dist/domain/shared/history.d.ts +124 -0
- package/dist/domain/shared/history.js +16 -0
- package/dist/domain/shared/history.js.map +1 -0
- package/dist/domain/shared/idempotency-key.d.ts +8 -0
- package/dist/domain/shared/idempotency-key.js +14 -0
- package/dist/domain/shared/idempotency-key.js.map +1 -0
- package/dist/domain/shared/notifier.d.ts +17 -0
- package/dist/domain/shared/notifier.js +2 -0
- package/dist/domain/shared/notifier.js.map +1 -0
- package/dist/domain/shared/ping.d.ts +18 -0
- package/dist/domain/shared/ping.js +8 -0
- package/dist/domain/shared/ping.js.map +1 -0
- package/dist/domain/shared/read-fleet-events.d.ts +29 -0
- package/dist/domain/shared/read-fleet-events.js +25 -0
- package/dist/domain/shared/read-fleet-events.js.map +1 -0
- package/dist/domain/shared/read-fleet-limits.d.ts +39 -0
- package/dist/domain/shared/read-fleet-limits.js +24 -0
- package/dist/domain/shared/read-fleet-limits.js.map +1 -0
- package/dist/domain/shared/read-inbox.d.ts +20 -0
- package/dist/domain/shared/read-inbox.js +16 -0
- package/dist/domain/shared/read-inbox.js.map +1 -0
- package/dist/domain/shared/read-message.d.ts +21 -0
- package/dist/domain/shared/read-message.js +18 -0
- package/dist/domain/shared/read-message.js.map +1 -0
- package/dist/domain/shared/read-needs-attention.d.ts +12 -0
- package/dist/domain/shared/read-needs-attention.js +10 -0
- package/dist/domain/shared/read-needs-attention.js.map +1 -0
- package/dist/domain/shared/read-ship-messages.d.ts +28 -0
- package/dist/domain/shared/read-ship-messages.js +30 -0
- package/dist/domain/shared/read-ship-messages.js.map +1 -0
- package/dist/domain/shared/read-ship-timeline.d.ts +18 -0
- package/dist/domain/shared/read-ship-timeline.js +16 -0
- package/dist/domain/shared/read-ship-timeline.js.map +1 -0
- package/dist/domain/shared/result.d.ts +16 -0
- package/dist/domain/shared/result.js +7 -0
- package/dist/domain/shared/result.js.map +1 -0
- package/dist/domain/shared/secrets.d.ts +26 -0
- package/dist/domain/shared/secrets.js +2 -0
- package/dist/domain/shared/secrets.js.map +1 -0
- package/dist/domain/shared/selector.d.ts +29 -0
- package/dist/domain/shared/selector.js +2 -0
- package/dist/domain/shared/selector.js.map +1 -0
- package/dist/domain/shared/unit-of-work.d.ts +13 -0
- package/dist/domain/shared/unit-of-work.js +2 -0
- package/dist/domain/shared/unit-of-work.js.map +1 -0
- package/dist/domain/shared/utc-day.d.ts +4 -0
- package/dist/domain/shared/utc-day.js +9 -0
- package/dist/domain/shared/utc-day.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/start.d.ts +6 -0
- package/dist/start.js +29 -0
- package/dist/start.js.map +1 -0
- package/dist/wiring.d.ts +158 -0
- package/dist/wiring.js +185 -0
- package/dist/wiring.js.map +1 -0
- package/package.json +58 -3
- package/prisma.config.ts +18 -0
- package/src/adapters/prisma/migrations/20260929124818_init/migration.sql +201 -0
- package/src/adapters/prisma/migrations/20260929160000_fleet_argo_console_session/migration.sql +130 -0
- package/src/adapters/prisma/migrations/20260929220017_operator_login/migration.sql +27 -0
- package/src/adapters/prisma/migrations/20260930090000_crew_token/migration.sql +5 -0
- package/src/adapters/prisma/migrations/20260930120000_send/migration.sql +30 -0
- package/src/adapters/prisma/migrations/20260930150000_receive/migration.sql +24 -0
- package/src/adapters/prisma/migrations/20261001010000_event_seq/migration.sql +34 -0
- package/src/adapters/prisma/migrations/20261001020000_console_session_end_reason/migration.sql +14 -0
- package/src/adapters/prisma/migrations/20261001030000_account_theme_session_device/migration.sql +8 -0
- package/src/adapters/prisma/migrations/20261001040000_lease_last_seen/migration.sql +2 -0
- package/src/adapters/prisma/migrations/20261002190000_lease_report/migration.sql +7 -0
- package/src/adapters/prisma/migrations/20261003140000_commission_key/migration.sql +7 -0
- package/src/adapters/prisma/migrations/20261003200000_message_model/migration.sql +5 -0
- package/src/adapters/prisma/migrations/20261003201000_lease_harness/migration.sql +2 -0
- package/src/adapters/prisma/migrations/20261004120000_operator_without_password/migration.sql +2 -0
- package/src/adapters/prisma/migrations/20261004121000_installation_requests/migration.sql +21 -0
- package/src/adapters/prisma/migrations/20261004122000_events_deleted_with_their_fleet/migration.sql +11 -0
- package/src/adapters/prisma/migrations/20261004130000_sign_in_tickets/migration.sql +16 -0
- package/src/adapters/prisma/migrations/20261004140000_fleet_limits/migration.sql +6 -0
- package/src/adapters/prisma/migrations/20261004141000_installation_settings/migration.sql +12 -0
- package/src/adapters/prisma/migrations/20261005090000_viewer_ship/migration.sql +2 -0
- package/src/adapters/prisma/migrations/20261005100000_viewer_sessions/migration.sql +20 -0
- package/src/adapters/prisma/migrations/20261005110000_notices/migration.sql +37 -0
- package/src/adapters/prisma/migrations/20261005120000_guide/migration.sql +34 -0
- package/src/adapters/prisma/migrations/20261006100000_fleet_crew_scope/migration.sql +8 -0
- package/src/adapters/prisma/migrations/20261006140000_lease_report_details/migration.sql +3 -0
- package/src/adapters/prisma/migrations/20261006160000_crew_requests/migration.sql +20 -0
- package/src/adapters/prisma/migrations/20261006180000_crew_scopes/migration.sql +9 -0
- package/src/adapters/prisma/migrations/20261006190000_crew_assignment/migration.sql +13 -0
- package/src/adapters/prisma/migrations/20261006200000_crew_request_reason/migration.sql +3 -0
- package/src/adapters/prisma/migrations/20261007020000_broad_crewing_scope_retired/migration.sql +8 -0
- package/src/adapters/prisma/migrations/migration_lock.toml +3 -0
- package/src/adapters/prisma/schema.prisma +558 -0
|
@@ -0,0 +1,558 @@
|
|
|
1
|
+
// Aeolus core tables (docs/architecture.md, "Core tables").
|
|
2
|
+
//
|
|
3
|
+
// Prefixed ids, fleet_id on every table except fleets, and the columns and key
|
|
4
|
+
// constraints named in the architecture. Columns a later slice owns (a message's
|
|
5
|
+
// sender and selector, for one) arrive with that slice.
|
|
6
|
+
//
|
|
7
|
+
// References to rows of the same fleet carry fleet_id in the foreign key, so a
|
|
8
|
+
// row can never point at another fleet's ship, lease, message or delivery.
|
|
9
|
+
//
|
|
10
|
+
// Timestamps have no database default: the application's Clock port sets every
|
|
11
|
+
// one of them, so tests control time.
|
|
12
|
+
//
|
|
13
|
+
// Check constraints and the append-only rule for events live in the migration
|
|
14
|
+
// SQL, because Prisma does not model them.
|
|
15
|
+
|
|
16
|
+
generator client {
|
|
17
|
+
provider = "prisma-client"
|
|
18
|
+
output = "./generated"
|
|
19
|
+
moduleFormat = "esm"
|
|
20
|
+
importFileExtension = "js"
|
|
21
|
+
runtime = "nodejs"
|
|
22
|
+
previewFeatures = ["partialIndexes"]
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
datasource db {
|
|
26
|
+
provider = "postgresql"
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/// The tenant: one operator's ships, messages and history. Ids start with flt_.
|
|
30
|
+
model Fleet {
|
|
31
|
+
id String @id
|
|
32
|
+
name String
|
|
33
|
+
createdAt DateTime @map("created_at") @db.Timestamptz(3)
|
|
34
|
+
/// The sequence number of the fleet's last committed event. A unit of work
|
|
35
|
+
/// takes its numbers from it as its last statements, so the row lock orders
|
|
36
|
+
/// the numbers as the transactions commit.
|
|
37
|
+
lastEventSeq BigInt @default(0) @map("last_event_seq")
|
|
38
|
+
/// Whether the fleet sets its own ship limit (else it follows the installation
|
|
39
|
+
/// default), and that limit: null for no limit.
|
|
40
|
+
shipLimitSet Boolean @default(false) @map("ship_limit_set")
|
|
41
|
+
shipLimit Int? @map("ship_limit")
|
|
42
|
+
/// The same for its daily message limit.
|
|
43
|
+
dailyMessageLimitSet Boolean @default(false) @map("daily_message_limit_set")
|
|
44
|
+
dailyMessageLimit Int? @map("daily_message_limit")
|
|
45
|
+
|
|
46
|
+
ships Ship[]
|
|
47
|
+
leases Lease[]
|
|
48
|
+
crewRequests CrewRequest[]
|
|
49
|
+
credentials Credential[]
|
|
50
|
+
messages Message[]
|
|
51
|
+
deliveries Delivery[]
|
|
52
|
+
events Event[]
|
|
53
|
+
consoleSessions ConsoleSession[]
|
|
54
|
+
signInTickets SignInTicket[]
|
|
55
|
+
noticeDismissals NoticeDismissal[]
|
|
56
|
+
guideProgress GuideProgress[]
|
|
57
|
+
operator Operator?
|
|
58
|
+
|
|
59
|
+
@@map("fleets")
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/// `argo` is the one operator ship of a fleet; every other ship is an agent.
|
|
63
|
+
enum ShipKind {
|
|
64
|
+
operator
|
|
65
|
+
agent
|
|
66
|
+
viewer
|
|
67
|
+
|
|
68
|
+
@@map("ship_kind")
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/// A durable, addressable identity with an inbox. Ids start with shp_.
|
|
72
|
+
/// Scopes are set when the ship is created and checked before every call.
|
|
73
|
+
model Ship {
|
|
74
|
+
id String @id
|
|
75
|
+
fleetId String @map("fleet_id")
|
|
76
|
+
name String
|
|
77
|
+
type String
|
|
78
|
+
kind ShipKind
|
|
79
|
+
scopes String[]
|
|
80
|
+
note String?
|
|
81
|
+
createdAt DateTime @map("created_at") @db.Timestamptz(3)
|
|
82
|
+
retiredAt DateTime? @map("retired_at") @db.Timestamptz(3)
|
|
83
|
+
/// The ship that commissioned it, its idempotency key and the request's hash; null for argo.
|
|
84
|
+
commissionedBy String? @map("commissioned_by")
|
|
85
|
+
commissionKey String? @map("commission_key")
|
|
86
|
+
commissionRequestHash String? @map("commission_request_hash")
|
|
87
|
+
|
|
88
|
+
fleet Fleet @relation(fields: [fleetId], references: [id])
|
|
89
|
+
leases Lease[]
|
|
90
|
+
credentials Credential[]
|
|
91
|
+
sentMessages Message[] @relation("MessageSender")
|
|
92
|
+
addressedMessages Message[] @relation("MessageSelectorShip")
|
|
93
|
+
deliveries Delivery[] @relation("DeliveryRecipientShip")
|
|
94
|
+
claimedDeliveries Delivery[] @relation("DeliveryClaimedByShip")
|
|
95
|
+
consoleSessions ConsoleSession[]
|
|
96
|
+
actorOfEvents Event[] @relation("EventActorShip")
|
|
97
|
+
events Event[] @relation("EventShip")
|
|
98
|
+
crewRequest CrewRequest? @relation("CrewRequestShip")
|
|
99
|
+
assignedCrews CrewRequest[] @relation("CrewRequestAssignee")
|
|
100
|
+
|
|
101
|
+
@@unique([fleetId, id])
|
|
102
|
+
/// An idempotency key is used once per commissioning ship.
|
|
103
|
+
@@unique([fleetId, commissionedBy, commissionKey])
|
|
104
|
+
/// A name is unique among ships that are not retired, and reusable after retirement.
|
|
105
|
+
@@unique([fleetId, name], map: "ships_fleet_id_name_active_key", where: { retiredAt: null })
|
|
106
|
+
/// Exactly one operator ship per fleet.
|
|
107
|
+
@@unique([fleetId], map: "ships_fleet_id_operator_key", where: raw("kind = 'operator'::ship_kind"))
|
|
108
|
+
/// At most one viewer ship per fleet (decision 0022).
|
|
109
|
+
@@unique([fleetId], map: "ships_fleet_id_viewer_key", where: raw("kind = 'viewer'::ship_kind"))
|
|
110
|
+
@@map("ships")
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/// Where the session crewing a ship runs. OTHER carries a description; the other kinds none.
|
|
114
|
+
enum ReportState {
|
|
115
|
+
working
|
|
116
|
+
blocked
|
|
117
|
+
idle
|
|
118
|
+
|
|
119
|
+
@@map("report_state")
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
enum LocationKind {
|
|
123
|
+
DEVICE
|
|
124
|
+
CLOUD
|
|
125
|
+
SERVER
|
|
126
|
+
OTHER
|
|
127
|
+
|
|
128
|
+
@@map("location_kind")
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/// The exclusive right of one session to crew a ship, and where that session runs.
|
|
132
|
+
/// Ids start with lse_.
|
|
133
|
+
/// The hash of the crew token register gave the session, unique across all fleets:
|
|
134
|
+
/// finding a ship by its crew token is a lookup not scoped by fleet (ADR 0007). A
|
|
135
|
+
/// console session's lease on argo has none; the console session holds its token.
|
|
136
|
+
model Lease {
|
|
137
|
+
id String @id
|
|
138
|
+
fleetId String @map("fleet_id")
|
|
139
|
+
shipId String @map("ship_id")
|
|
140
|
+
location LocationKind
|
|
141
|
+
locationDescription String? @map("location_description")
|
|
142
|
+
/// The harness the session stated when it claimed the ship; none for argo's console lease and for leases from before harnesses were stated.
|
|
143
|
+
harness String?
|
|
144
|
+
crewTokenHash String? @unique @map("crew_token_hash")
|
|
145
|
+
startedAt DateTime @map("started_at") @db.Timestamptz(3)
|
|
146
|
+
/// The last call by its crew: observation only, nothing acts on it (ADR 0016).
|
|
147
|
+
lastSeenAt DateTime? @map("last_seen_at") @db.Timestamptz(3)
|
|
148
|
+
/// The crew's last report: plain data, nothing acts on it. Null until it reports.
|
|
149
|
+
reportState ReportState? @map("report_state")
|
|
150
|
+
reportNote String? @map("report_note")
|
|
151
|
+
reportedAt DateTime? @map("reported_at") @db.Timestamptz(3)
|
|
152
|
+
/// The report's details: one JSON object stored without meaning, at most 16 KB (decision 0028). Null when there are none.
|
|
153
|
+
reportDetails Json? @map("report_details")
|
|
154
|
+
/// Moves by one each time the details change; 0 before any.
|
|
155
|
+
reportDetailsVersion Int @default(0) @map("report_details_version")
|
|
156
|
+
endedAt DateTime? @map("ended_at") @db.Timestamptz(3)
|
|
157
|
+
|
|
158
|
+
fleet Fleet @relation(fields: [fleetId], references: [id])
|
|
159
|
+
ship Ship @relation(fields: [fleetId, shipId], references: [fleetId, id])
|
|
160
|
+
consoleSessions ConsoleSession[]
|
|
161
|
+
claimedDeliveries Delivery[]
|
|
162
|
+
|
|
163
|
+
@@unique([fleetId, id])
|
|
164
|
+
/// At most one open lease per ship.
|
|
165
|
+
@@unique([shipId], map: "leases_ship_id_open_key", where: { endedAt: null })
|
|
166
|
+
@@map("leases")
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/// How the assigned trierarch says its crew of a ship stands (decision 0029).
|
|
170
|
+
enum CrewStatus {
|
|
171
|
+
crewing
|
|
172
|
+
running
|
|
173
|
+
restarting
|
|
174
|
+
crashed
|
|
175
|
+
releasing
|
|
176
|
+
|
|
177
|
+
@@map("crew_status")
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/// A standing request that a ship be kept crewed (decision 0029): at most one per
|
|
181
|
+
/// ship, so the ship's id is its key. Its settings are stored without meaning, at
|
|
182
|
+
/// most 16 KB; each request replaces them and moves their version by one.
|
|
183
|
+
model CrewRequest {
|
|
184
|
+
shipId String @id @map("ship_id")
|
|
185
|
+
fleetId String @map("fleet_id")
|
|
186
|
+
settings Json
|
|
187
|
+
settingsVersion Int @map("settings_version")
|
|
188
|
+
requestedAt DateTime @map("requested_at") @db.Timestamptz(3)
|
|
189
|
+
/// The trierarch ship it is assigned to; null while unassigned.
|
|
190
|
+
assignedTo String? @map("assigned_to_ship_id")
|
|
191
|
+
/// How its trierarch says the crew stands; null until it says.
|
|
192
|
+
status CrewStatus?
|
|
193
|
+
/// Why no trierarch can take it, written by the assigner while unassigned; null when none.
|
|
194
|
+
reason String?
|
|
195
|
+
|
|
196
|
+
fleet Fleet @relation(fields: [fleetId], references: [id])
|
|
197
|
+
ship Ship @relation("CrewRequestShip", fields: [fleetId, shipId], references: [fleetId, id])
|
|
198
|
+
assignee Ship? @relation("CrewRequestAssignee", fields: [fleetId, assignedTo], references: [fleetId, id])
|
|
199
|
+
|
|
200
|
+
@@unique([fleetId, shipId])
|
|
201
|
+
/// A trierarch reads the requests assigned to it.
|
|
202
|
+
@@index([fleetId, assignedTo])
|
|
203
|
+
@@map("crew_requests")
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/// A ship secret, stored only as its hash. Ids start with crd_.
|
|
207
|
+
/// The hash is unique across all fleets: finding a ship by its secret is one of the
|
|
208
|
+
/// lookups not scoped by fleet (ADR 0007).
|
|
209
|
+
model Credential {
|
|
210
|
+
id String @id
|
|
211
|
+
fleetId String @map("fleet_id")
|
|
212
|
+
shipId String @map("ship_id")
|
|
213
|
+
secretHash String @unique @map("secret_hash")
|
|
214
|
+
issuedAt DateTime @map("issued_at") @db.Timestamptz(3)
|
|
215
|
+
claimedAt DateTime? @map("claimed_at") @db.Timestamptz(3)
|
|
216
|
+
invalidatedAt DateTime? @map("invalidated_at") @db.Timestamptz(3)
|
|
217
|
+
|
|
218
|
+
fleet Fleet @relation(fields: [fleetId], references: [id])
|
|
219
|
+
ship Ship @relation(fields: [fleetId, shipId], references: [fleetId, id])
|
|
220
|
+
|
|
221
|
+
/// At most one valid secret per ship.
|
|
222
|
+
@@unique([shipId], map: "credentials_ship_id_valid_key", where: { invalidatedAt: null })
|
|
223
|
+
@@map("credentials")
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
/// Who a message is for: one ship or any ship of a type. Group and fleet come later.
|
|
227
|
+
enum SelectorKind {
|
|
228
|
+
ship
|
|
229
|
+
type
|
|
230
|
+
|
|
231
|
+
@@map("selector_kind")
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/// An immutable envelope plus an opaque payload of at most 64 KB, sent by one ship.
|
|
235
|
+
/// Ids start with msg_. The selector is stored as resolved at send time: a ship's
|
|
236
|
+
/// id, never its name, or a type. It can name the message it replies to, and a
|
|
237
|
+
/// resend names the message it resends (nothing sets that yet).
|
|
238
|
+
model Message {
|
|
239
|
+
id String @id
|
|
240
|
+
fleetId String @map("fleet_id")
|
|
241
|
+
senderShipId String @map("sender_ship_id")
|
|
242
|
+
selectorKind SelectorKind @map("selector_kind")
|
|
243
|
+
selectorShipId String? @map("selector_ship_id")
|
|
244
|
+
selectorType String? @map("selector_type")
|
|
245
|
+
payload String
|
|
246
|
+
contentType String @map("content_type")
|
|
247
|
+
/// The model the sender's session stated; none from argo and on messages from before models were stated.
|
|
248
|
+
model String?
|
|
249
|
+
idempotencyKey String @map("idempotency_key")
|
|
250
|
+
requestHash String @map("request_hash")
|
|
251
|
+
inReplyToMessageId String? @map("in_reply_to_message_id")
|
|
252
|
+
resendOfMessageId String? @map("resend_of_message_id")
|
|
253
|
+
createdAt DateTime @map("created_at") @db.Timestamptz(3)
|
|
254
|
+
|
|
255
|
+
fleet Fleet @relation(fields: [fleetId], references: [id])
|
|
256
|
+
senderShip Ship @relation("MessageSender", fields: [fleetId, senderShipId], references: [fleetId, id], onDelete: Restrict)
|
|
257
|
+
selectorShip Ship? @relation("MessageSelectorShip", fields: [fleetId, selectorShipId], references: [fleetId, id], onDelete: Restrict)
|
|
258
|
+
inReplyTo Message? @relation("MessageInReplyTo", fields: [fleetId, inReplyToMessageId], references: [fleetId, id], onDelete: Restrict)
|
|
259
|
+
replies Message[] @relation("MessageInReplyTo")
|
|
260
|
+
resendOf Message? @relation("MessageResendOf", fields: [fleetId, resendOfMessageId], references: [fleetId, id], onDelete: Restrict)
|
|
261
|
+
resends Message[] @relation("MessageResendOf")
|
|
262
|
+
deliveries Delivery[]
|
|
263
|
+
events Event[]
|
|
264
|
+
|
|
265
|
+
@@unique([fleetId, id])
|
|
266
|
+
/// A sender uses an idempotency key once: a repeat of the same request, told by its
|
|
267
|
+
/// request hash, returns the original message; another request with the key is refused.
|
|
268
|
+
@@unique([fleetId, senderShipId, idempotencyKey])
|
|
269
|
+
/// A ship's current model is its newest message with a model.
|
|
270
|
+
@@index([fleetId, senderShipId, createdAt])
|
|
271
|
+
@@map("messages")
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
enum DeliveryState {
|
|
275
|
+
pending
|
|
276
|
+
delivered
|
|
277
|
+
acknowledged
|
|
278
|
+
undeliverable
|
|
279
|
+
dismissed
|
|
280
|
+
abandoned
|
|
281
|
+
|
|
282
|
+
@@map("delivery_state")
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
/// One message to one resolved recipient: a ship or a type. Ids start with dlv_.
|
|
286
|
+
/// A receive claims it for the ship and the lease of the crew receiving: set while it
|
|
287
|
+
/// is in flight, kept once acknowledged, none while it is pending. Attempts count the
|
|
288
|
+
/// claims; the fifth makes it undeliverable.
|
|
289
|
+
/// The read date is set when the operator opens a message to argo.
|
|
290
|
+
model Delivery {
|
|
291
|
+
id String @id
|
|
292
|
+
fleetId String @map("fleet_id")
|
|
293
|
+
messageId String @map("message_id")
|
|
294
|
+
recipientShipId String? @map("recipient_ship_id")
|
|
295
|
+
recipientType String? @map("recipient_type")
|
|
296
|
+
state DeliveryState @default(pending)
|
|
297
|
+
claimedByShipId String? @map("claimed_by_ship_id")
|
|
298
|
+
claimedByLeaseId String? @map("claimed_by_lease_id")
|
|
299
|
+
attempts Int @default(0)
|
|
300
|
+
readAt DateTime? @map("read_at") @db.Timestamptz(3)
|
|
301
|
+
createdAt DateTime @map("created_at") @db.Timestamptz(3)
|
|
302
|
+
|
|
303
|
+
fleet Fleet @relation(fields: [fleetId], references: [id])
|
|
304
|
+
message Message @relation(fields: [fleetId, messageId], references: [fleetId, id])
|
|
305
|
+
recipientShip Ship? @relation("DeliveryRecipientShip", fields: [fleetId, recipientShipId], references: [fleetId, id], onDelete: Restrict)
|
|
306
|
+
claimedByShip Ship? @relation("DeliveryClaimedByShip", fields: [fleetId, claimedByShipId], references: [fleetId, id], onDelete: Restrict)
|
|
307
|
+
claimedByLease Lease? @relation(fields: [fleetId, claimedByLeaseId], references: [fleetId, id], onDelete: Restrict)
|
|
308
|
+
events Event[]
|
|
309
|
+
|
|
310
|
+
@@unique([fleetId, id])
|
|
311
|
+
/// One row per recipient.
|
|
312
|
+
@@unique([messageId, recipientShipId])
|
|
313
|
+
@@unique([messageId, recipientType])
|
|
314
|
+
@@index([fleetId, recipientShipId, state])
|
|
315
|
+
@@index([fleetId, recipientType, state])
|
|
316
|
+
/// A crew's own deliveries in flight, which its next receive returns first.
|
|
317
|
+
@@index([fleetId, claimedByLeaseId, state])
|
|
318
|
+
@@map("deliveries")
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
/// Append-only log of every state change: never updated or deleted. Ids start with evt_.
|
|
322
|
+
/// Records its type and time, who caused it (a ship, or the system when
|
|
323
|
+
/// actor_ship_id is null), the ship, message and delivery it concerns, and a few
|
|
324
|
+
/// details as a flat JSON object.
|
|
325
|
+
model Event {
|
|
326
|
+
id String @id
|
|
327
|
+
fleetId String @map("fleet_id")
|
|
328
|
+
type String
|
|
329
|
+
occurredAt DateTime @map("occurred_at") @db.Timestamptz(3)
|
|
330
|
+
actorShipId String? @map("actor_ship_id")
|
|
331
|
+
shipId String? @map("ship_id")
|
|
332
|
+
messageId String? @map("message_id")
|
|
333
|
+
deliveryId String? @map("delivery_id")
|
|
334
|
+
details Json
|
|
335
|
+
/// The event's place in its fleet's stream, in commit order and without
|
|
336
|
+
/// gaps: where a live subscription resumes. The id is not, since ids are
|
|
337
|
+
/// taken before their transaction commits.
|
|
338
|
+
seq BigInt
|
|
339
|
+
|
|
340
|
+
fleet Fleet @relation(fields: [fleetId], references: [id])
|
|
341
|
+
actorShip Ship? @relation("EventActorShip", fields: [fleetId, actorShipId], references: [fleetId, id], onDelete: Restrict)
|
|
342
|
+
ship Ship? @relation("EventShip", fields: [fleetId, shipId], references: [fleetId, id], onDelete: Restrict)
|
|
343
|
+
message Message? @relation(fields: [fleetId, messageId], references: [fleetId, id], onDelete: Restrict)
|
|
344
|
+
delivery Delivery? @relation(fields: [fleetId, deliveryId], references: [fleetId, id], onDelete: Restrict)
|
|
345
|
+
|
|
346
|
+
@@unique([fleetId, seq])
|
|
347
|
+
@@map("events")
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
/// Why a console session ended: a sign-in elsewhere took argo over, the
|
|
351
|
+
/// operator signed out, or the password was reset.
|
|
352
|
+
enum ConsoleSessionEndReason {
|
|
353
|
+
takenOver
|
|
354
|
+
signedOut
|
|
355
|
+
passwordReset
|
|
356
|
+
|
|
357
|
+
@@map("console_session_end_reason")
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
/// The operator's login: email and Argon2id password hash, none for an operator a
|
|
361
|
+
/// hosting installation created. Ids start with opr_.
|
|
362
|
+
/// The email is unique across all fleets: finding the account by email is the one
|
|
363
|
+
/// lookup not scoped by fleet (ADR 0007). One account per fleet in v1.
|
|
364
|
+
model Operator {
|
|
365
|
+
id String @id
|
|
366
|
+
fleetId String @unique @map("fleet_id")
|
|
367
|
+
email String @unique
|
|
368
|
+
passwordHash String? @map("password_hash")
|
|
369
|
+
/// How the console looks for this operator; system until they choose.
|
|
370
|
+
theme Theme @default(system)
|
|
371
|
+
createdAt DateTime @map("created_at") @db.Timestamptz(3)
|
|
372
|
+
|
|
373
|
+
fleet Fleet @relation(fields: [fleetId], references: [id])
|
|
374
|
+
|
|
375
|
+
@@map("operators")
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
enum Theme {
|
|
379
|
+
light
|
|
380
|
+
dark
|
|
381
|
+
system
|
|
382
|
+
|
|
383
|
+
@@map("theme")
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
/// The operator crewing argo through the web console. Ids start with ses_.
|
|
387
|
+
/// Only the hash of the session token is stored, unique across all fleets: finding
|
|
388
|
+
/// a session by its token is the one lookup not scoped by fleet (ADR 0007).
|
|
389
|
+
/// Valid until expires_at, which moves to idle_limit_seconds after each use
|
|
390
|
+
/// (30 days for the operator, 2 hours for a viewer), never past ends_by.
|
|
391
|
+
model ConsoleSession {
|
|
392
|
+
id String @id
|
|
393
|
+
fleetId String @map("fleet_id")
|
|
394
|
+
shipId String @map("ship_id")
|
|
395
|
+
/// The lease on argo it holds; null for a viewer session (decision 0022).
|
|
396
|
+
leaseId String? @map("lease_id")
|
|
397
|
+
idleLimitSeconds Int @map("idle_limit_seconds")
|
|
398
|
+
/// No use renews it past this; null when only idleness ends it.
|
|
399
|
+
endsBy DateTime? @map("ends_by") @db.Timestamptz(3)
|
|
400
|
+
/// The device it signed in from, as the browser told: "Mac · Chrome".
|
|
401
|
+
device String @default("Unknown device")
|
|
402
|
+
tokenHash String @unique @map("token_hash")
|
|
403
|
+
createdAt DateTime @map("created_at") @db.Timestamptz(3)
|
|
404
|
+
lastUsedAt DateTime @map("last_used_at") @db.Timestamptz(3)
|
|
405
|
+
expiresAt DateTime @map("expires_at") @db.Timestamptz(3)
|
|
406
|
+
endedAt DateTime? @map("ended_at") @db.Timestamptz(3)
|
|
407
|
+
/// Why the session ended; null while it has not.
|
|
408
|
+
endReason ConsoleSessionEndReason? @map("end_reason")
|
|
409
|
+
|
|
410
|
+
fleet Fleet @relation(fields: [fleetId], references: [id])
|
|
411
|
+
ship Ship @relation(fields: [fleetId, shipId], references: [fleetId, id])
|
|
412
|
+
lease Lease? @relation(fields: [fleetId, leaseId], references: [fleetId, id])
|
|
413
|
+
|
|
414
|
+
noticeDismissals NoticeDismissal[]
|
|
415
|
+
guideProgress GuideProgress[]
|
|
416
|
+
|
|
417
|
+
/// At most one live session holding argo's lease per fleet: signing in ends the previous one. Viewer sessions run beside it.
|
|
418
|
+
@@unique([fleetId], map: "console_sessions_fleet_id_open_key", where: raw("ended_at IS NULL AND lease_id IS NOT NULL"))
|
|
419
|
+
@@map("console_sessions")
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
/// A one-time sign-in ticket for the fleet's operator, issued by a hosting
|
|
423
|
+
/// installation and redeemed in the console (decision 0020). Only its hash is
|
|
424
|
+
/// stored, unique across all fleets: redeeming finds it before the fleet is known.
|
|
425
|
+
model SignInTicket {
|
|
426
|
+
tokenHash String @id @map("token_hash")
|
|
427
|
+
fleetId String @map("fleet_id")
|
|
428
|
+
/// Whom it signs in as: the operator or a viewer (decision 0022).
|
|
429
|
+
signInAs SignInAs @map("sign_in_as")
|
|
430
|
+
issuedAt DateTime @map("issued_at") @db.Timestamptz(3)
|
|
431
|
+
expiresAt DateTime @map("expires_at") @db.Timestamptz(3)
|
|
432
|
+
/// When it signed in; null while unused.
|
|
433
|
+
usedAt DateTime? @map("used_at") @db.Timestamptz(3)
|
|
434
|
+
|
|
435
|
+
fleet Fleet @relation(fields: [fleetId], references: [id])
|
|
436
|
+
|
|
437
|
+
@@index([fleetId])
|
|
438
|
+
@@map("sign_in_tickets")
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
enum SignInAs {
|
|
442
|
+
operator
|
|
443
|
+
viewer
|
|
444
|
+
|
|
445
|
+
@@map("sign_in_as")
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
/// The installation's settings (decision 0020): the default ship and daily message
|
|
449
|
+
/// limits for fleets and the cap on fleets, each null for no limit. One row at most,
|
|
450
|
+
/// and none until the installation sets them. Belongs to no fleet.
|
|
451
|
+
model InstallationSettings {
|
|
452
|
+
id Int @id @default(1)
|
|
453
|
+
defaultShipLimit Int? @map("default_ship_limit")
|
|
454
|
+
defaultDailyMessageLimit Int? @map("default_daily_message_limit")
|
|
455
|
+
fleetCap Int? @map("fleet_cap")
|
|
456
|
+
|
|
457
|
+
@@map("installation_settings")
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
enum InstallationRequestKind {
|
|
461
|
+
createFleet @map("create_fleet")
|
|
462
|
+
deleteFleet @map("delete_fleet")
|
|
463
|
+
|
|
464
|
+
@@map("installation_request_kind")
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
/// A create or delete of a fleet the installation carried out, under its caller's
|
|
468
|
+
/// request id, so a replay answers the same (decision 0020). It belongs to the
|
|
469
|
+
/// installation, not to a fleet, and keeps the request as a hash only. A create's
|
|
470
|
+
/// row names the fleet and argo it answers with and is deleted with that fleet; a
|
|
471
|
+
/// delete's row names nothing of the fleet.
|
|
472
|
+
model InstallationRequest {
|
|
473
|
+
requestId String @id @map("request_id")
|
|
474
|
+
kind InstallationRequestKind
|
|
475
|
+
requestHash String @map("request_hash")
|
|
476
|
+
/// The created fleet and its argo; null for a delete.
|
|
477
|
+
fleetId String? @map("fleet_id")
|
|
478
|
+
operatorShipId String? @map("operator_ship_id")
|
|
479
|
+
at DateTime @db.Timestamptz(3)
|
|
480
|
+
|
|
481
|
+
@@index([fleetId])
|
|
482
|
+
@@map("installation_requests")
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
/// A console notice the installation sets (decision 0023), shown above every
|
|
486
|
+
/// page to the sessions of its audience. It belongs to no fleet.
|
|
487
|
+
model Notice {
|
|
488
|
+
id String @id
|
|
489
|
+
/// Its place in the installation's order.
|
|
490
|
+
position Int
|
|
491
|
+
audience NoticeAudience
|
|
492
|
+
text String
|
|
493
|
+
/// Its links: label, and url, isSignOut or both.
|
|
494
|
+
links Json @default("[]")
|
|
495
|
+
isDismissible Boolean @default(false) @map("is_dismissible")
|
|
496
|
+
|
|
497
|
+
@@map("notices")
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
enum NoticeAudience {
|
|
501
|
+
everyone
|
|
502
|
+
operators
|
|
503
|
+
viewers
|
|
504
|
+
|
|
505
|
+
@@map("notice_audience")
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
/// A notice a console session dismissed, for itself (decision 0023). It goes
|
|
509
|
+
/// with its session and its fleet.
|
|
510
|
+
model NoticeDismissal {
|
|
511
|
+
fleetId String @map("fleet_id")
|
|
512
|
+
consoleSessionId String @map("console_session_id")
|
|
513
|
+
noticeId String @map("notice_id")
|
|
514
|
+
dismissedAt DateTime @map("dismissed_at") @db.Timestamptz(3)
|
|
515
|
+
|
|
516
|
+
fleet Fleet @relation(fields: [fleetId], references: [id])
|
|
517
|
+
consoleSession ConsoleSession @relation(fields: [consoleSessionId], references: [id])
|
|
518
|
+
|
|
519
|
+
@@id([consoleSessionId, noticeId])
|
|
520
|
+
@@index([fleetId])
|
|
521
|
+
@@map("notice_dismissals")
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
/// The installation's guide (decision 0024): steps for the console sessions of
|
|
525
|
+
/// one audience. At most one row; it belongs to no fleet.
|
|
526
|
+
model Guide {
|
|
527
|
+
/// Always "guide": the installation has one guide or none.
|
|
528
|
+
id String @id
|
|
529
|
+
audience NoticeAudience
|
|
530
|
+
/// Its steps, in order: path, anchor (optional), title and text.
|
|
531
|
+
steps Json
|
|
532
|
+
|
|
533
|
+
@@map("guides")
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
enum GuideProgressState {
|
|
537
|
+
open
|
|
538
|
+
skipped
|
|
539
|
+
finished
|
|
540
|
+
|
|
541
|
+
@@map("guide_progress_state")
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
/// Where a console session is in the guide, for itself (decision 0024). It
|
|
545
|
+
/// goes with its session and its fleet.
|
|
546
|
+
model GuideProgress {
|
|
547
|
+
fleetId String @map("fleet_id")
|
|
548
|
+
consoleSessionId String @id @map("console_session_id")
|
|
549
|
+
step Int
|
|
550
|
+
state GuideProgressState
|
|
551
|
+
recordedAt DateTime @map("recorded_at") @db.Timestamptz(3)
|
|
552
|
+
|
|
553
|
+
fleet Fleet @relation(fields: [fleetId], references: [id])
|
|
554
|
+
consoleSession ConsoleSession @relation(fields: [consoleSessionId], references: [id])
|
|
555
|
+
|
|
556
|
+
@@index([fleetId])
|
|
557
|
+
@@map("guide_progress")
|
|
558
|
+
}
|