@secondlayer/shared 13.10.0 → 13.11.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.
@@ -1030,13 +1030,17 @@ interface WebhookIncidentAlertsTable {
1030
1030
  resolved_at: Date | null;
1031
1031
  }
1032
1032
  type CliDeviceLoginStatus = "pending" | "approved" | "denied" | "consumed";
1033
- /** One browser sign-in attempt from `sl login`. Only the hash of the CLI's
1034
- * device code is stored; the key is minted when the CLI polls after approval. */
1033
+ /** The product that started a CLI sign-in; null is `sl login`. */
1034
+ type CliDeviceProduct = "sentinel";
1035
+ /** One browser sign-in attempt from `sl login` (or `sentinel login`). Only the
1036
+ * hash of the CLI's device code is stored; the session is opened when the CLI
1037
+ * polls after approval. */
1035
1038
  interface CliDeviceLoginsTable {
1036
1039
  id: Generated<string>;
1037
1040
  device_code_hash: string;
1038
1041
  user_code: string;
1039
1042
  client_name: string;
1043
+ product: CliDeviceProduct | null;
1040
1044
  status: Generated<CliDeviceLoginStatus>;
1041
1045
  account_id: string | null;
1042
1046
  key_name: string | null;
@@ -1030,13 +1030,17 @@ interface WebhookIncidentAlertsTable {
1030
1030
  resolved_at: Date | null;
1031
1031
  }
1032
1032
  type CliDeviceLoginStatus = "pending" | "approved" | "denied" | "consumed";
1033
- /** One browser sign-in attempt from `sl login`. Only the hash of the CLI's
1034
- * device code is stored; the key is minted when the CLI polls after approval. */
1033
+ /** The product that started a CLI sign-in; null is `sl login`. */
1034
+ type CliDeviceProduct = "sentinel";
1035
+ /** One browser sign-in attempt from `sl login` (or `sentinel login`). Only the
1036
+ * hash of the CLI's device code is stored; the session is opened when the CLI
1037
+ * polls after approval. */
1035
1038
  interface CliDeviceLoginsTable {
1036
1039
  id: Generated<string>;
1037
1040
  device_code_hash: string;
1038
1041
  user_code: string;
1039
1042
  client_name: string;
1043
+ product: CliDeviceProduct | null;
1040
1044
  status: Generated<CliDeviceLoginStatus>;
1041
1045
  account_id: string | null;
1042
1046
  key_name: string | null;
@@ -1347,13 +1347,17 @@ interface WebhookIncidentAlertsTable {
1347
1347
  resolved_at: Date | null;
1348
1348
  }
1349
1349
  type CliDeviceLoginStatus = "pending" | "approved" | "denied" | "consumed";
1350
- /** One browser sign-in attempt from `sl login`. Only the hash of the CLI's
1351
- * device code is stored; the key is minted when the CLI polls after approval. */
1350
+ /** The product that started a CLI sign-in; null is `sl login`. */
1351
+ type CliDeviceProduct = "sentinel";
1352
+ /** One browser sign-in attempt from `sl login` (or `sentinel login`). Only the
1353
+ * hash of the CLI's device code is stored; the session is opened when the CLI
1354
+ * polls after approval. */
1352
1355
  interface CliDeviceLoginsTable {
1353
1356
  id: Generated<string>;
1354
1357
  device_code_hash: string;
1355
1358
  user_code: string;
1356
1359
  client_name: string;
1360
+ product: CliDeviceProduct | null;
1357
1361
  status: Generated<CliDeviceLoginStatus>;
1358
1362
  account_id: string | null;
1359
1363
  key_name: string | null;
@@ -1044,13 +1044,17 @@ interface WebhookIncidentAlertsTable {
1044
1044
  }
1045
1045
  type WebhookIncidentAlert = Selectable<WebhookIncidentAlertsTable>;
1046
1046
  type CliDeviceLoginStatus = "pending" | "approved" | "denied" | "consumed";
1047
- /** One browser sign-in attempt from `sl login`. Only the hash of the CLI's
1048
- * device code is stored; the key is minted when the CLI polls after approval. */
1047
+ /** The product that started a CLI sign-in; null is `sl login`. */
1048
+ type CliDeviceProduct = "sentinel";
1049
+ /** One browser sign-in attempt from `sl login` (or `sentinel login`). Only the
1050
+ * hash of the CLI's device code is stored; the session is opened when the CLI
1051
+ * polls after approval. */
1049
1052
  interface CliDeviceLoginsTable {
1050
1053
  id: Generated<string>;
1051
1054
  device_code_hash: string;
1052
1055
  user_code: string;
1053
1056
  client_name: string;
1057
+ product: CliDeviceProduct | null;
1054
1058
  status: Generated<CliDeviceLoginStatus>;
1055
1059
  account_id: string | null;
1056
1060
  key_name: string | null;
@@ -2388,4 +2392,4 @@ declare function closeDb(): Promise<void>;
2388
2392
  * actual work is done.
2389
2393
  */
2390
2394
  declare function closeDbOrTimeout(timeoutMs?: number, closeFn?: () => Promise<void>): Promise<void>;
2391
- export { Account, AccountBalanceAlerts, AccountBalanceAlertsTable, AccountCredits, AccountCreditsTable, AccountSpendCap, AccountSpendCapsTable, AccountsTable, ApiFailedRequest, ApiFailedRequestsTable, ApiKey, ApiKeysTable, ApiRequestLogRow, ApiRequestLogTable, ArchiveFetch, ArchiveFetchesTable, Block, BlocksTable, BnsMarketplaceAction, BnsMarketplaceEventsTable, BnsNameEventTopic, BnsNameEventsTable, BnsNamesTable, BnsNamespaceEventStatus, BnsNamespaceEventsTable, BnsNamespacesTable, BurnBlockRewardSlotsTable, BurnBlockRewardsTable, ChainReadCacheTable, ChainReorgsTable, CliDeviceLogin, CliDeviceLoginStatus, CliDeviceLoginsTable, ContactRequest, ContactRequestsTable, Contract, ContractsTable, CoverageSegmentsTable, Database, DbPlane, DbReadRow, DbSplitStatus, DeadLetterEventsTable, DecodedEventsTable, DecoderCheckpointsTable, Event, EventsArchiveTable, EventsTable, FailureClass, FailureUnit, FeedbackTicket, FeedbackTicketsTable, IndexColumn, IndexColumnType, IndexPrimaryKey, IndexProgress, IndexProgressTable, InsertAccount, InsertAccountBalanceAlerts, InsertAccountCredits, InsertAccountSpendCap, InsertApiFailedRequest, InsertApiKey, InsertApiRequestLogRow, InsertArchiveFetch, InsertBlock, InsertContactRequest, InsertContract, InsertEvent, InsertFeedbackTicket, InsertIndexProgress, InsertMagicLink, InsertMempoolTransaction, InsertSession, InsertStateWrite, InsertSubgraph, InsertSubgraphGap, InsertSubgraphHealthSnapshot, InsertSubgraphOperation, InsertTransaction, InsertUsageLedgerRow, InsertVmEvent, InsertWaitlistSignup, InsertWebhook, InsertWebhookDelivery, InsertWebhookOutbox, InsightMutesTable, InsightsTable, InstancesTable, MagicLink, MagicLinksTable, MempoolTransaction, MempoolTransactionsTable, MigrationRole, NativeClock, NumericAsText, ObserverJournalStatus, ObserverJournalTable, OutboxStatus, PendingForkBlocksTable, Pox4CallsTable, Pox4FunctionName, Pox5CycleSignersTable, Pox5CyclesTable, Pox5EventTopic, Pox5EventsTable, ProcessedStripeEventsTable, RepairMode, RetryState, RunStatus, SOURCE_READ_COLUMNS, SOURCE_READ_PKS, SOURCE_READ_TYPES, SbtcEventTopic, SbtcEventsTable, SbtcSettlementsTable, SbtcTokenEventType, SbtcTokenEventsTable, SentinelAccount, SentinelAccountsTable, ServiceHeartbeatsTable, Session, SessionsTable, StageBlockReceiptsTable, StageFailuresTable, StageKind, StageRegistryTable, StageRunsTable, StateWrite, StateWritesArchiveTable, StateWritesTable, Subgraph, SubgraphErrorGroupsTable, SubgraphGap, SubgraphGapsTable, SubgraphHealthSnapshot, SubgraphHealthSnapshotsTable, SubgraphOperation, SubgraphOperationKind, SubgraphOperationStatus, SubgraphOperationsTable, SubgraphProcessingStatsTable, SubgraphViolationsTable, SubgraphsTable, SyncScopesTable, TABLE_TO_DB, Transaction, TransactionsArchiveTable, TransactionsTable, TriggerEvaluatorState, TriggerEvaluatorStateTable, UpdateAccountBalanceAlerts, UpdateAccountCredits, UpdateAccountSpendCap, UpdateApiKey, UpdateArchiveFetch, UpdateBlock, UpdateContract, UpdateEvent, UpdateIndexProgress, UpdateSubgraph, UpdateSubgraphOperation, UpdateTransaction, UpdateUsageLedgerRow, UpdateVmEvent, UpdateWebhook, UpdateWebhookOutbox, UsageLedgerRow, UsageLedgerTable, VmEvent, VmEventsArchiveTable, VmEventsTable, Waitlist, WaitlistSignup, WaitlistSignupsTable, WaitlistsTable, Webhook, WebhookDeliveriesTable, WebhookDelivery, WebhookFormat, WebhookIncidentAlert, WebhookIncidentAlertsTable, WebhookKind, WebhookOutbox, WebhookOutboxTable, WebhookStatus, WebhooksTable, applicationDatabaseUrl, assertDbSplit, closeDb, closeDbOrTimeout, describeDbUrl, getDb, getDbSplitStatus, getMigrationRole, getRawClient, getSourceDb, getTargetDb, jsonb, onChainPlane, onControlPlane, parseJsonb, resolveSourceUrl, resolveTargetUrl, setMigrationRole, sql };
2395
+ export { Account, AccountBalanceAlerts, AccountBalanceAlertsTable, AccountCredits, AccountCreditsTable, AccountSpendCap, AccountSpendCapsTable, AccountsTable, ApiFailedRequest, ApiFailedRequestsTable, ApiKey, ApiKeysTable, ApiRequestLogRow, ApiRequestLogTable, ArchiveFetch, ArchiveFetchesTable, Block, BlocksTable, BnsMarketplaceAction, BnsMarketplaceEventsTable, BnsNameEventTopic, BnsNameEventsTable, BnsNamesTable, BnsNamespaceEventStatus, BnsNamespaceEventsTable, BnsNamespacesTable, BurnBlockRewardSlotsTable, BurnBlockRewardsTable, ChainReadCacheTable, ChainReorgsTable, CliDeviceLogin, CliDeviceLoginStatus, CliDeviceLoginsTable, CliDeviceProduct, ContactRequest, ContactRequestsTable, Contract, ContractsTable, CoverageSegmentsTable, Database, DbPlane, DbReadRow, DbSplitStatus, DeadLetterEventsTable, DecodedEventsTable, DecoderCheckpointsTable, Event, EventsArchiveTable, EventsTable, FailureClass, FailureUnit, FeedbackTicket, FeedbackTicketsTable, IndexColumn, IndexColumnType, IndexPrimaryKey, IndexProgress, IndexProgressTable, InsertAccount, InsertAccountBalanceAlerts, InsertAccountCredits, InsertAccountSpendCap, InsertApiFailedRequest, InsertApiKey, InsertApiRequestLogRow, InsertArchiveFetch, InsertBlock, InsertContactRequest, InsertContract, InsertEvent, InsertFeedbackTicket, InsertIndexProgress, InsertMagicLink, InsertMempoolTransaction, InsertSession, InsertStateWrite, InsertSubgraph, InsertSubgraphGap, InsertSubgraphHealthSnapshot, InsertSubgraphOperation, InsertTransaction, InsertUsageLedgerRow, InsertVmEvent, InsertWaitlistSignup, InsertWebhook, InsertWebhookDelivery, InsertWebhookOutbox, InsightMutesTable, InsightsTable, InstancesTable, MagicLink, MagicLinksTable, MempoolTransaction, MempoolTransactionsTable, MigrationRole, NativeClock, NumericAsText, ObserverJournalStatus, ObserverJournalTable, OutboxStatus, PendingForkBlocksTable, Pox4CallsTable, Pox4FunctionName, Pox5CycleSignersTable, Pox5CyclesTable, Pox5EventTopic, Pox5EventsTable, ProcessedStripeEventsTable, RepairMode, RetryState, RunStatus, SOURCE_READ_COLUMNS, SOURCE_READ_PKS, SOURCE_READ_TYPES, SbtcEventTopic, SbtcEventsTable, SbtcSettlementsTable, SbtcTokenEventType, SbtcTokenEventsTable, SentinelAccount, SentinelAccountsTable, ServiceHeartbeatsTable, Session, SessionsTable, StageBlockReceiptsTable, StageFailuresTable, StageKind, StageRegistryTable, StageRunsTable, StateWrite, StateWritesArchiveTable, StateWritesTable, Subgraph, SubgraphErrorGroupsTable, SubgraphGap, SubgraphGapsTable, SubgraphHealthSnapshot, SubgraphHealthSnapshotsTable, SubgraphOperation, SubgraphOperationKind, SubgraphOperationStatus, SubgraphOperationsTable, SubgraphProcessingStatsTable, SubgraphViolationsTable, SubgraphsTable, SyncScopesTable, TABLE_TO_DB, Transaction, TransactionsArchiveTable, TransactionsTable, TriggerEvaluatorState, TriggerEvaluatorStateTable, UpdateAccountBalanceAlerts, UpdateAccountCredits, UpdateAccountSpendCap, UpdateApiKey, UpdateArchiveFetch, UpdateBlock, UpdateContract, UpdateEvent, UpdateIndexProgress, UpdateSubgraph, UpdateSubgraphOperation, UpdateTransaction, UpdateUsageLedgerRow, UpdateVmEvent, UpdateWebhook, UpdateWebhookOutbox, UsageLedgerRow, UsageLedgerTable, VmEvent, VmEventsArchiveTable, VmEventsTable, Waitlist, WaitlistSignup, WaitlistSignupsTable, WaitlistsTable, Webhook, WebhookDeliveriesTable, WebhookDelivery, WebhookFormat, WebhookIncidentAlert, WebhookIncidentAlertsTable, WebhookKind, WebhookOutbox, WebhookOutboxTable, WebhookStatus, WebhooksTable, applicationDatabaseUrl, assertDbSplit, closeDb, closeDbOrTimeout, describeDbUrl, getDb, getDbSplitStatus, getMigrationRole, getRawClient, getSourceDb, getTargetDb, jsonb, onChainPlane, onControlPlane, parseJsonb, resolveSourceUrl, resolveTargetUrl, setMigrationRole, sql };
@@ -1030,13 +1030,17 @@ interface WebhookIncidentAlertsTable {
1030
1030
  resolved_at: Date | null;
1031
1031
  }
1032
1032
  type CliDeviceLoginStatus = "pending" | "approved" | "denied" | "consumed";
1033
- /** One browser sign-in attempt from `sl login`. Only the hash of the CLI's
1034
- * device code is stored; the key is minted when the CLI polls after approval. */
1033
+ /** The product that started a CLI sign-in; null is `sl login`. */
1034
+ type CliDeviceProduct = "sentinel";
1035
+ /** One browser sign-in attempt from `sl login` (or `sentinel login`). Only the
1036
+ * hash of the CLI's device code is stored; the session is opened when the CLI
1037
+ * polls after approval. */
1035
1038
  interface CliDeviceLoginsTable {
1036
1039
  id: Generated<string>;
1037
1040
  device_code_hash: string;
1038
1041
  user_code: string;
1039
1042
  client_name: string;
1043
+ product: CliDeviceProduct | null;
1040
1044
  status: Generated<CliDeviceLoginStatus>;
1041
1045
  account_id: string | null;
1042
1046
  key_name: string | null;
@@ -1030,13 +1030,17 @@ interface WebhookIncidentAlertsTable {
1030
1030
  resolved_at: Date | null;
1031
1031
  }
1032
1032
  type CliDeviceLoginStatus = "pending" | "approved" | "denied" | "consumed";
1033
- /** One browser sign-in attempt from `sl login`. Only the hash of the CLI's
1034
- * device code is stored; the key is minted when the CLI polls after approval. */
1033
+ /** The product that started a CLI sign-in; null is `sl login`. */
1034
+ type CliDeviceProduct = "sentinel";
1035
+ /** One browser sign-in attempt from `sl login` (or `sentinel login`). Only the
1036
+ * hash of the CLI's device code is stored; the session is opened when the CLI
1037
+ * polls after approval. */
1035
1038
  interface CliDeviceLoginsTable {
1036
1039
  id: Generated<string>;
1037
1040
  device_code_hash: string;
1038
1041
  user_code: string;
1039
1042
  client_name: string;
1043
+ product: CliDeviceProduct | null;
1040
1044
  status: Generated<CliDeviceLoginStatus>;
1041
1045
  account_id: string | null;
1042
1046
  key_name: string | null;
@@ -1030,13 +1030,17 @@ interface WebhookIncidentAlertsTable {
1030
1030
  resolved_at: Date | null;
1031
1031
  }
1032
1032
  type CliDeviceLoginStatus = "pending" | "approved" | "denied" | "consumed";
1033
- /** One browser sign-in attempt from `sl login`. Only the hash of the CLI's
1034
- * device code is stored; the key is minted when the CLI polls after approval. */
1033
+ /** The product that started a CLI sign-in; null is `sl login`. */
1034
+ type CliDeviceProduct = "sentinel";
1035
+ /** One browser sign-in attempt from `sl login` (or `sentinel login`). Only the
1036
+ * hash of the CLI's device code is stored; the session is opened when the CLI
1037
+ * polls after approval. */
1035
1038
  interface CliDeviceLoginsTable {
1036
1039
  id: Generated<string>;
1037
1040
  device_code_hash: string;
1038
1041
  user_code: string;
1039
1042
  client_name: string;
1043
+ product: CliDeviceProduct | null;
1040
1044
  status: Generated<CliDeviceLoginStatus>;
1041
1045
  account_id: string | null;
1042
1046
  key_name: string | null;
@@ -1030,13 +1030,17 @@ interface WebhookIncidentAlertsTable {
1030
1030
  resolved_at: Date | null;
1031
1031
  }
1032
1032
  type CliDeviceLoginStatus = "pending" | "approved" | "denied" | "consumed";
1033
- /** One browser sign-in attempt from `sl login`. Only the hash of the CLI's
1034
- * device code is stored; the key is minted when the CLI polls after approval. */
1033
+ /** The product that started a CLI sign-in; null is `sl login`. */
1034
+ type CliDeviceProduct = "sentinel";
1035
+ /** One browser sign-in attempt from `sl login` (or `sentinel login`). Only the
1036
+ * hash of the CLI's device code is stored; the session is opened when the CLI
1037
+ * polls after approval. */
1035
1038
  interface CliDeviceLoginsTable {
1036
1039
  id: Generated<string>;
1037
1040
  device_code_hash: string;
1038
1041
  user_code: string;
1039
1042
  client_name: string;
1043
+ product: CliDeviceProduct | null;
1040
1044
  status: Generated<CliDeviceLoginStatus>;
1041
1045
  account_id: string | null;
1042
1046
  key_name: string | null;
@@ -1030,13 +1030,17 @@ interface WebhookIncidentAlertsTable {
1030
1030
  resolved_at: Date | null;
1031
1031
  }
1032
1032
  type CliDeviceLoginStatus = "pending" | "approved" | "denied" | "consumed";
1033
- /** One browser sign-in attempt from `sl login`. Only the hash of the CLI's
1034
- * device code is stored; the key is minted when the CLI polls after approval. */
1033
+ /** The product that started a CLI sign-in; null is `sl login`. */
1034
+ type CliDeviceProduct = "sentinel";
1035
+ /** One browser sign-in attempt from `sl login` (or `sentinel login`). Only the
1036
+ * hash of the CLI's device code is stored; the session is opened when the CLI
1037
+ * polls after approval. */
1035
1038
  interface CliDeviceLoginsTable {
1036
1039
  id: Generated<string>;
1037
1040
  device_code_hash: string;
1038
1041
  user_code: string;
1039
1042
  client_name: string;
1043
+ product: CliDeviceProduct | null;
1040
1044
  status: Generated<CliDeviceLoginStatus>;
1041
1045
  account_id: string | null;
1042
1046
  key_name: string | null;
@@ -1030,13 +1030,17 @@ interface WebhookIncidentAlertsTable {
1030
1030
  resolved_at: Date | null;
1031
1031
  }
1032
1032
  type CliDeviceLoginStatus = "pending" | "approved" | "denied" | "consumed";
1033
- /** One browser sign-in attempt from `sl login`. Only the hash of the CLI's
1034
- * device code is stored; the key is minted when the CLI polls after approval. */
1033
+ /** The product that started a CLI sign-in; null is `sl login`. */
1034
+ type CliDeviceProduct = "sentinel";
1035
+ /** One browser sign-in attempt from `sl login` (or `sentinel login`). Only the
1036
+ * hash of the CLI's device code is stored; the session is opened when the CLI
1037
+ * polls after approval. */
1035
1038
  interface CliDeviceLoginsTable {
1036
1039
  id: Generated<string>;
1037
1040
  device_code_hash: string;
1038
1041
  user_code: string;
1039
1042
  client_name: string;
1043
+ product: CliDeviceProduct | null;
1040
1044
  status: Generated<CliDeviceLoginStatus>;
1041
1045
  account_id: string | null;
1042
1046
  key_name: string | null;
@@ -1030,13 +1030,17 @@ interface WebhookIncidentAlertsTable {
1030
1030
  resolved_at: Date | null;
1031
1031
  }
1032
1032
  type CliDeviceLoginStatus = "pending" | "approved" | "denied" | "consumed";
1033
- /** One browser sign-in attempt from `sl login`. Only the hash of the CLI's
1034
- * device code is stored; the key is minted when the CLI polls after approval. */
1033
+ /** The product that started a CLI sign-in; null is `sl login`. */
1034
+ type CliDeviceProduct = "sentinel";
1035
+ /** One browser sign-in attempt from `sl login` (or `sentinel login`). Only the
1036
+ * hash of the CLI's device code is stored; the session is opened when the CLI
1037
+ * polls after approval. */
1035
1038
  interface CliDeviceLoginsTable {
1036
1039
  id: Generated<string>;
1037
1040
  device_code_hash: string;
1038
1041
  user_code: string;
1039
1042
  client_name: string;
1043
+ product: CliDeviceProduct | null;
1040
1044
  status: Generated<CliDeviceLoginStatus>;
1041
1045
  account_id: string | null;
1042
1046
  key_name: string | null;
@@ -1040,13 +1040,17 @@ interface WebhookIncidentAlertsTable {
1040
1040
  resolved_at: Date | null;
1041
1041
  }
1042
1042
  type CliDeviceLoginStatus = "pending" | "approved" | "denied" | "consumed";
1043
- /** One browser sign-in attempt from `sl login`. Only the hash of the CLI's
1044
- * device code is stored; the key is minted when the CLI polls after approval. */
1043
+ /** The product that started a CLI sign-in; null is `sl login`. */
1044
+ type CliDeviceProduct = "sentinel";
1045
+ /** One browser sign-in attempt from `sl login` (or `sentinel login`). Only the
1046
+ * hash of the CLI's device code is stored; the session is opened when the CLI
1047
+ * polls after approval. */
1045
1048
  interface CliDeviceLoginsTable {
1046
1049
  id: Generated<string>;
1047
1050
  device_code_hash: string;
1048
1051
  user_code: string;
1049
1052
  client_name: string;
1053
+ product: CliDeviceProduct | null;
1050
1054
  status: Generated<CliDeviceLoginStatus>;
1051
1055
  account_id: string | null;
1052
1056
  key_name: string | null;
@@ -1030,13 +1030,17 @@ interface WebhookIncidentAlertsTable {
1030
1030
  resolved_at: Date | null;
1031
1031
  }
1032
1032
  type CliDeviceLoginStatus = "pending" | "approved" | "denied" | "consumed";
1033
- /** One browser sign-in attempt from `sl login`. Only the hash of the CLI's
1034
- * device code is stored; the key is minted when the CLI polls after approval. */
1033
+ /** The product that started a CLI sign-in; null is `sl login`. */
1034
+ type CliDeviceProduct = "sentinel";
1035
+ /** One browser sign-in attempt from `sl login` (or `sentinel login`). Only the
1036
+ * hash of the CLI's device code is stored; the session is opened when the CLI
1037
+ * polls after approval. */
1035
1038
  interface CliDeviceLoginsTable {
1036
1039
  id: Generated<string>;
1037
1040
  device_code_hash: string;
1038
1041
  user_code: string;
1039
1042
  client_name: string;
1043
+ product: CliDeviceProduct | null;
1040
1044
  status: Generated<CliDeviceLoginStatus>;
1041
1045
  account_id: string | null;
1042
1046
  key_name: string | null;
@@ -1042,13 +1042,17 @@ interface WebhookIncidentAlertsTable {
1042
1042
  }
1043
1043
  type WebhookIncidentAlert = Selectable<WebhookIncidentAlertsTable>;
1044
1044
  type CliDeviceLoginStatus = "pending" | "approved" | "denied" | "consumed";
1045
- /** One browser sign-in attempt from `sl login`. Only the hash of the CLI's
1046
- * device code is stored; the key is minted when the CLI polls after approval. */
1045
+ /** The product that started a CLI sign-in; null is `sl login`. */
1046
+ type CliDeviceProduct = "sentinel";
1047
+ /** One browser sign-in attempt from `sl login` (or `sentinel login`). Only the
1048
+ * hash of the CLI's device code is stored; the session is opened when the CLI
1049
+ * polls after approval. */
1047
1050
  interface CliDeviceLoginsTable {
1048
1051
  id: Generated<string>;
1049
1052
  device_code_hash: string;
1050
1053
  user_code: string;
1051
1054
  client_name: string;
1055
+ product: CliDeviceProduct | null;
1052
1056
  status: Generated<CliDeviceLoginStatus>;
1053
1057
  account_id: string | null;
1054
1058
  key_name: string | null;
@@ -1322,4 +1326,4 @@ type WaitlistSignup = Selectable<WaitlistSignupsTable>;
1322
1326
  type InsertWaitlistSignup = Insertable<WaitlistSignupsTable>;
1323
1327
  type ContactRequest = Selectable<ContactRequestsTable>;
1324
1328
  type InsertContactRequest = Insertable<ContactRequestsTable>;
1325
- export { Account, AccountBalanceAlerts, AccountBalanceAlertsTable, AccountCredits, AccountCreditsTable, AccountSpendCap, AccountSpendCapsTable, AccountsTable, ApiFailedRequest, ApiFailedRequestsTable, ApiKey, ApiKeysTable, ApiRequestLogRow, ApiRequestLogTable, ArchiveFetch, ArchiveFetchesTable, Block, BlocksTable, BnsMarketplaceAction, BnsMarketplaceEventsTable, BnsNameEventTopic, BnsNameEventsTable, BnsNamesTable, BnsNamespaceEventStatus, BnsNamespaceEventsTable, BnsNamespacesTable, BurnBlockRewardSlotsTable, BurnBlockRewardsTable, ChainReadCacheTable, ChainReorgsTable, CliDeviceLogin, CliDeviceLoginStatus, CliDeviceLoginsTable, ContactRequest, ContactRequestsTable, Contract, ContractsTable, CoverageSegmentsTable, Database, DeadLetterEventsTable, DecodedEventsTable, DecoderCheckpointsTable, Event, EventsArchiveTable, EventsTable, FailureClass, FailureUnit, FeedbackTicket, FeedbackTicketsTable, IndexProgress, IndexProgressTable, InsertAccount, InsertAccountBalanceAlerts, InsertAccountCredits, InsertAccountSpendCap, InsertApiFailedRequest, InsertApiKey, InsertApiRequestLogRow, InsertArchiveFetch, InsertBlock, InsertContactRequest, InsertContract, InsertEvent, InsertFeedbackTicket, InsertIndexProgress, InsertMagicLink, InsertMempoolTransaction, InsertSession, InsertStateWrite, InsertSubgraph, InsertSubgraphGap, InsertSubgraphHealthSnapshot, InsertSubgraphOperation, InsertTransaction, InsertUsageLedgerRow, InsertVmEvent, InsertWaitlistSignup, InsertWebhook, InsertWebhookDelivery, InsertWebhookOutbox, InsightMutesTable, InsightsTable, InstancesTable, MagicLink, MagicLinksTable, MempoolTransaction, MempoolTransactionsTable, NativeClock, ObserverJournalStatus, ObserverJournalTable, OutboxStatus, PendingForkBlocksTable, Pox4CallsTable, Pox4FunctionName, Pox5CycleSignersTable, Pox5CyclesTable, Pox5EventTopic, Pox5EventsTable, ProcessedStripeEventsTable, RepairMode, RetryState, RunStatus, SbtcEventTopic, SbtcEventsTable, SbtcSettlementsTable, SbtcTokenEventType, SbtcTokenEventsTable, SentinelAccount, SentinelAccountsTable, ServiceHeartbeatsTable, Session, SessionsTable, StageBlockReceiptsTable, StageFailuresTable, StageKind, StageRegistryTable, StageRunsTable, StateWrite, StateWritesArchiveTable, StateWritesTable, Subgraph, SubgraphErrorGroupsTable, SubgraphGap, SubgraphGapsTable, SubgraphHealthSnapshot, SubgraphHealthSnapshotsTable, SubgraphOperation, SubgraphOperationKind, SubgraphOperationStatus, SubgraphOperationsTable, SubgraphProcessingStatsTable, SubgraphViolationsTable, SubgraphsTable, SyncScopesTable, Transaction, TransactionsArchiveTable, TransactionsTable, TriggerEvaluatorState, TriggerEvaluatorStateTable, UpdateAccountBalanceAlerts, UpdateAccountCredits, UpdateAccountSpendCap, UpdateApiKey, UpdateArchiveFetch, UpdateBlock, UpdateContract, UpdateEvent, UpdateIndexProgress, UpdateSubgraph, UpdateSubgraphOperation, UpdateTransaction, UpdateUsageLedgerRow, UpdateVmEvent, UpdateWebhook, UpdateWebhookOutbox, UsageLedgerRow, UsageLedgerTable, VmEvent, VmEventsArchiveTable, VmEventsTable, Waitlist, WaitlistSignup, WaitlistSignupsTable, WaitlistsTable, Webhook, WebhookDeliveriesTable, WebhookDelivery, WebhookFormat, WebhookIncidentAlert, WebhookIncidentAlertsTable, WebhookKind, WebhookOutbox, WebhookOutboxTable, WebhookStatus, WebhooksTable };
1329
+ export { Account, AccountBalanceAlerts, AccountBalanceAlertsTable, AccountCredits, AccountCreditsTable, AccountSpendCap, AccountSpendCapsTable, AccountsTable, ApiFailedRequest, ApiFailedRequestsTable, ApiKey, ApiKeysTable, ApiRequestLogRow, ApiRequestLogTable, ArchiveFetch, ArchiveFetchesTable, Block, BlocksTable, BnsMarketplaceAction, BnsMarketplaceEventsTable, BnsNameEventTopic, BnsNameEventsTable, BnsNamesTable, BnsNamespaceEventStatus, BnsNamespaceEventsTable, BnsNamespacesTable, BurnBlockRewardSlotsTable, BurnBlockRewardsTable, ChainReadCacheTable, ChainReorgsTable, CliDeviceLogin, CliDeviceLoginStatus, CliDeviceLoginsTable, CliDeviceProduct, ContactRequest, ContactRequestsTable, Contract, ContractsTable, CoverageSegmentsTable, Database, DeadLetterEventsTable, DecodedEventsTable, DecoderCheckpointsTable, Event, EventsArchiveTable, EventsTable, FailureClass, FailureUnit, FeedbackTicket, FeedbackTicketsTable, IndexProgress, IndexProgressTable, InsertAccount, InsertAccountBalanceAlerts, InsertAccountCredits, InsertAccountSpendCap, InsertApiFailedRequest, InsertApiKey, InsertApiRequestLogRow, InsertArchiveFetch, InsertBlock, InsertContactRequest, InsertContract, InsertEvent, InsertFeedbackTicket, InsertIndexProgress, InsertMagicLink, InsertMempoolTransaction, InsertSession, InsertStateWrite, InsertSubgraph, InsertSubgraphGap, InsertSubgraphHealthSnapshot, InsertSubgraphOperation, InsertTransaction, InsertUsageLedgerRow, InsertVmEvent, InsertWaitlistSignup, InsertWebhook, InsertWebhookDelivery, InsertWebhookOutbox, InsightMutesTable, InsightsTable, InstancesTable, MagicLink, MagicLinksTable, MempoolTransaction, MempoolTransactionsTable, NativeClock, ObserverJournalStatus, ObserverJournalTable, OutboxStatus, PendingForkBlocksTable, Pox4CallsTable, Pox4FunctionName, Pox5CycleSignersTable, Pox5CyclesTable, Pox5EventTopic, Pox5EventsTable, ProcessedStripeEventsTable, RepairMode, RetryState, RunStatus, SbtcEventTopic, SbtcEventsTable, SbtcSettlementsTable, SbtcTokenEventType, SbtcTokenEventsTable, SentinelAccount, SentinelAccountsTable, ServiceHeartbeatsTable, Session, SessionsTable, StageBlockReceiptsTable, StageFailuresTable, StageKind, StageRegistryTable, StageRunsTable, StateWrite, StateWritesArchiveTable, StateWritesTable, Subgraph, SubgraphErrorGroupsTable, SubgraphGap, SubgraphGapsTable, SubgraphHealthSnapshot, SubgraphHealthSnapshotsTable, SubgraphOperation, SubgraphOperationKind, SubgraphOperationStatus, SubgraphOperationsTable, SubgraphProcessingStatsTable, SubgraphViolationsTable, SubgraphsTable, SyncScopesTable, Transaction, TransactionsArchiveTable, TransactionsTable, TriggerEvaluatorState, TriggerEvaluatorStateTable, UpdateAccountBalanceAlerts, UpdateAccountCredits, UpdateAccountSpendCap, UpdateApiKey, UpdateArchiveFetch, UpdateBlock, UpdateContract, UpdateEvent, UpdateIndexProgress, UpdateSubgraph, UpdateSubgraphOperation, UpdateTransaction, UpdateUsageLedgerRow, UpdateVmEvent, UpdateWebhook, UpdateWebhookOutbox, UsageLedgerRow, UsageLedgerTable, VmEvent, VmEventsArchiveTable, VmEventsTable, Waitlist, WaitlistSignup, WaitlistSignupsTable, WaitlistsTable, Webhook, WebhookDeliveriesTable, WebhookDelivery, WebhookFormat, WebhookIncidentAlert, WebhookIncidentAlertsTable, WebhookKind, WebhookOutbox, WebhookOutboxTable, WebhookStatus, WebhooksTable };
@@ -1261,13 +1261,17 @@ interface WebhookIncidentAlertsTable {
1261
1261
  }
1262
1262
  type WebhookIncidentAlert = Selectable<WebhookIncidentAlertsTable>;
1263
1263
  type CliDeviceLoginStatus = "pending" | "approved" | "denied" | "consumed";
1264
- /** One browser sign-in attempt from `sl login`. Only the hash of the CLI's
1265
- * device code is stored; the key is minted when the CLI polls after approval. */
1264
+ /** The product that started a CLI sign-in; null is `sl login`. */
1265
+ type CliDeviceProduct = "sentinel";
1266
+ /** One browser sign-in attempt from `sl login` (or `sentinel login`). Only the
1267
+ * hash of the CLI's device code is stored; the session is opened when the CLI
1268
+ * polls after approval. */
1266
1269
  interface CliDeviceLoginsTable {
1267
1270
  id: Generated<string>;
1268
1271
  device_code_hash: string;
1269
1272
  user_code: string;
1270
1273
  client_name: string;
1274
+ product: CliDeviceProduct | null;
1271
1275
  status: Generated<CliDeviceLoginStatus>;
1272
1276
  account_id: string | null;
1273
1277
  key_name: string | null;
@@ -3678,4 +3682,4 @@ declare function publicKeyPemFromPrivate(privateKeyPem: string): string;
3678
3682
  declare function ed25519KeyId(publicKeyPem: string): string;
3679
3683
  declare function signEd25519(payload: string, privateKey: KeyObject): string;
3680
3684
  declare function verifyEd25519(payload: string, signatureBase64: string, publicKey: KeyObject): boolean;
3681
- export { Account, AccountBalanceAlerts, AccountBalanceAlertsTable, AccountCredits, AccountCreditsTable, AccountSpendCap, AccountSpendCapsTable, AccountsTable, ApiFailedRequest, ApiFailedRequestsTable, ApiKey, ApiKeyRevokedError, ApiKeysTable, ApiRequestLogRow, ApiRequestLogTable, ArchiveFetch, ArchiveFetchesTable, AuthenticationError, AuthorizationError, BILLING_PAUSED_PREFIX, Block, BlocksTable, BnsMarketplaceAction, BnsMarketplaceEventsTable, BnsNameEventTopic, BnsNameEventsTable, BnsNamesTable, BnsNamespaceEventStatus, BnsNamespaceEventsTable, BnsNamespacesTable, BurnBlockRewardSlotsTable, BurnBlockRewardsTable, CHAIN_TRIGGER_FIELDS, CHAIN_TRIGGER_TYPES, CODE_TO_STATUS, ChainApplyDeliveryOf, ChainApplyEnvelope, ChainApplyEnvelopeOf, ChainEventEnvelope, ChainFtBurnData, ChainFtMintData, ChainFtTransferData, ChainNftBurnData, ChainNftMintData, ChainNftTransferData, ChainPrintEventData, ChainReadCacheTable, ChainReorgOrphanedEntry, ChainReorgRollbackDelivery, ChainReorgRollbackEnvelope, ChainReorgsTable, ChainStxBurnData, ChainStxLockData, ChainStxMintData, ChainStxTransferData, ChainTestDelivery, ChainTxLevelEvent, ChainWebhookDelivery, ChainWebhookEnvelope, CliDeviceLogin, CliDeviceLoginStatus, CliDeviceLoginsTable, ContactRequest, ContactRequestsTable, Contract, ContractsTable, CoverageSegmentsTable, CreateWebhookRequest, CreateWebhookRequestSchema, CreateWebhookResponse, DB_TO_STREAMS_EVENT_TYPE, DECODED_EVENT_TYPES2 as DECODED_EVENT_TYPES, DEFAULT_BTC_CONFIRMATIONS, Database, DatabaseError, DbPlane, DbReadRow, DbSplitStatus, DeadLetterEventsTable, DeadRow, DecodedEventType2 as DecodedEventType, DecodedEventsTable, DecoderCheckpointsTable, DeliveryRow, DeploySubgraphRequest, DeploySubgraphRequestSchema, DeploySubgraphResponse, EMPTY_RANGE_EVENT_INDEX_SENTINEL, Env, ErrorCode, ErrorCodes, Event, EventsArchiveTable, EventsTable, FailureClass, FailureUnit, FeedbackTicket, FeedbackTicketsTable, ForbiddenError, HealthHour, HealthSnapshotPoint, INSIGHT_SEVERITIES, IndexColumn, IndexColumnType, IndexPrimaryKey, IndexProgress, IndexProgressTable, InsertAccount, InsertAccountBalanceAlerts, InsertAccountCredits, InsertAccountSpendCap, InsertApiFailedRequest, InsertApiKey, InsertApiRequestLogRow, InsertArchiveFetch, InsertBlock, InsertContactRequest, InsertContract, InsertEvent, InsertFeedbackTicket, InsertIndexProgress, InsertMagicLink, InsertMempoolTransaction, InsertSession, InsertStateWrite, InsertSubgraph, InsertSubgraphGap, InsertSubgraphHealthSnapshot, InsertSubgraphOperation, InsertTransaction, InsertUsageLedgerRow, InsertVmEvent, InsertWaitlistSignup, InsertWebhook, InsertWebhookDelivery, InsertWebhookOutbox, Insight, InsightEvidence, InsightEvidenceSchema, InsightListResponse, InsightListResponseSchema, InsightMutesTable, InsightResourceKind, InsightResourceKindSchema, InsightSchema, InsightSeverity, InsightSeveritySchema, InsightsTable, InstancesTable, KeyRotatedError, MagicLink, MagicLinksTable, MempoolTransaction, MempoolTransactionsTable, MigrationRole, NativeClock, NotFoundError, NumericAsText, ObserverJournalStatus, ObserverJournalTable, OutboxStatus, ParsedCreateWebhookRequest, ParsedReplayWebhookRequest, ParsedUpdateWebhookRequest, PaymentRequiredError, PendingForkBlocksTable, Pox4CallsTable, Pox4FunctionName, Pox5CycleSignersTable, Pox5CyclesTable, Pox5EventTopic, Pox5EventsTable, ProcessedStripeEventsTable, RUNE_EVENT_TYPES, RateLimitError, ReindexResponse, RepairMode, ReplayResult, ReplayWebhookRequest, ReplayWebhookRequestSchema, RetryState, RotateSecretResponse, RunStatus, RuneApplyDeliveryOf, RuneApplyEnvelope, RuneEventType, SEVERITY_ORDER, SOURCE_READ_COLUMNS, SOURCE_READ_PKS, SOURCE_READ_TYPES, STREAMS_DB_EVENT_TYPES, STREAMS_EVENT_TYPES, STREAMS_TO_DB_EVENT_TYPES, SbtcDepositEvent, SbtcEventTopic, SbtcEventsTable, SbtcSettlementsTable, SbtcTokenEventType, SbtcTokenEventsTable, SbtcWithdrawalEvent, SbtcWithdrawalSweptConfirmedEvent, SecondLayerError, SentinelAccount, SentinelAccountsTable, ServiceHeartbeatsTable, Session, SessionsTable, StageBlockReceiptsTable, StageFailuresTable, StageKind, StageRegistryTable, StageRunsTable, StateWrite, StateWritesArchiveTable, StateWritesTable, StreamsCursor, StreamsDbEventType, StreamsEventType, Subgraph, SubgraphAgentSchema, SubgraphAggregateParams, SubgraphAggregateResponse, SubgraphDetail, SubgraphErrorGroupsTable, SubgraphGap, SubgraphGapEntry, SubgraphGapRange, SubgraphGapsResponse, SubgraphGapsTable, SubgraphHealthSnapshot, SubgraphHealthSnapshotsTable, SubgraphOperation, SubgraphOperationKind, SubgraphOperationStatus, SubgraphOperationsTable, SubgraphProcessingStatsTable, SubgraphQueryParams, SubgraphSpecFormat, SubgraphSpecOptions, SubgraphSummary, SubgraphSyncInfo, SubgraphVerification, SubgraphViolationsTable, SubgraphsTable, SyncScopesTable, TABLE_TO_DB, TenantSuspendedError, Transaction, TransactionsArchiveTable, TransactionsTable, TriggerEvaluatorState, TriggerEvaluatorStateTable, UpdateAccountBalanceAlerts, UpdateAccountCredits, UpdateAccountSpendCap, UpdateApiKey, UpdateArchiveFetch, UpdateBlock, UpdateContract, UpdateEvent, UpdateIndexProgress, UpdateSubgraph, UpdateSubgraphOperation, UpdateTransaction, UpdateUsageLedgerRow, UpdateVmEvent, UpdateWebhook, UpdateWebhookOutbox, UpdateWebhookRequest, UpdateWebhookRequestSchema, UsageLedgerRow, UsageLedgerTable, VM_EVENT_TYPES, VM_NODE_TO_STORED_TYPE2 as VM_NODE_TO_STORED_TYPE, VM_STORED_TO_NODE_TYPE, ValidationError, VersionConflictError, VmEvent, VmEventType, VmEventsArchiveTable, VmEventsTable, VmNodeEventType, WEBHOOK_FORMATS, WEBHOOK_STATUSES, Waitlist, WaitlistSignup, WaitlistSignupsTable, WaitlistsTable, Webhook, WebhookDeliveriesTable, WebhookDelivery, WebhookDetail, WebhookFormat, WebhookFormatSchema, WebhookIncidentAlert, WebhookIncidentAlertsTable, WebhookKind, WebhookOutbox, WebhookOutboxTable, WebhookStatus, WebhookStatusSchema, WebhookSummary, WebhooksTable, applicationDatabaseUrl, assertDbSplit, billingPausedCode, blockEndCursor, bucketHourly, closeDb, closeDbOrTimeout, committedHeight, compareStreamsCursor, exports_hmac as crypto, decodeStreamsCursor, describeDbUrl, exports_ed25519 as ed25519, encodeStreamsCursor, finalizedBurnHeight, formatWebhookSchemaErrors, generateSubgraphAgentSchema, generateSubgraphMarkdown, generateSubgraphOpenApi, generateSubgraphSpec, getDb, getDbSplitStatus, getEnv, getErrorMessage, getMigrationRole, getRawClient, getSourceDb, getTargetDb, isBnsDecoderEnabled, isEmptyRangeCursor, isPox4DecoderEnabled, isPox5DecoderEnabled, isSbtcDecoderEnabled, jsonb, logger, onChainPlane, onControlPlane, parseJsonb, resolveSourceUrl, resolveTargetUrl, setMigrationRole, sql };
3685
+ export { Account, AccountBalanceAlerts, AccountBalanceAlertsTable, AccountCredits, AccountCreditsTable, AccountSpendCap, AccountSpendCapsTable, AccountsTable, ApiFailedRequest, ApiFailedRequestsTable, ApiKey, ApiKeyRevokedError, ApiKeysTable, ApiRequestLogRow, ApiRequestLogTable, ArchiveFetch, ArchiveFetchesTable, AuthenticationError, AuthorizationError, BILLING_PAUSED_PREFIX, Block, BlocksTable, BnsMarketplaceAction, BnsMarketplaceEventsTable, BnsNameEventTopic, BnsNameEventsTable, BnsNamesTable, BnsNamespaceEventStatus, BnsNamespaceEventsTable, BnsNamespacesTable, BurnBlockRewardSlotsTable, BurnBlockRewardsTable, CHAIN_TRIGGER_FIELDS, CHAIN_TRIGGER_TYPES, CODE_TO_STATUS, ChainApplyDeliveryOf, ChainApplyEnvelope, ChainApplyEnvelopeOf, ChainEventEnvelope, ChainFtBurnData, ChainFtMintData, ChainFtTransferData, ChainNftBurnData, ChainNftMintData, ChainNftTransferData, ChainPrintEventData, ChainReadCacheTable, ChainReorgOrphanedEntry, ChainReorgRollbackDelivery, ChainReorgRollbackEnvelope, ChainReorgsTable, ChainStxBurnData, ChainStxLockData, ChainStxMintData, ChainStxTransferData, ChainTestDelivery, ChainTxLevelEvent, ChainWebhookDelivery, ChainWebhookEnvelope, CliDeviceLogin, CliDeviceLoginStatus, CliDeviceLoginsTable, CliDeviceProduct, ContactRequest, ContactRequestsTable, Contract, ContractsTable, CoverageSegmentsTable, CreateWebhookRequest, CreateWebhookRequestSchema, CreateWebhookResponse, DB_TO_STREAMS_EVENT_TYPE, DECODED_EVENT_TYPES2 as DECODED_EVENT_TYPES, DEFAULT_BTC_CONFIRMATIONS, Database, DatabaseError, DbPlane, DbReadRow, DbSplitStatus, DeadLetterEventsTable, DeadRow, DecodedEventType2 as DecodedEventType, DecodedEventsTable, DecoderCheckpointsTable, DeliveryRow, DeploySubgraphRequest, DeploySubgraphRequestSchema, DeploySubgraphResponse, EMPTY_RANGE_EVENT_INDEX_SENTINEL, Env, ErrorCode, ErrorCodes, Event, EventsArchiveTable, EventsTable, FailureClass, FailureUnit, FeedbackTicket, FeedbackTicketsTable, ForbiddenError, HealthHour, HealthSnapshotPoint, INSIGHT_SEVERITIES, IndexColumn, IndexColumnType, IndexPrimaryKey, IndexProgress, IndexProgressTable, InsertAccount, InsertAccountBalanceAlerts, InsertAccountCredits, InsertAccountSpendCap, InsertApiFailedRequest, InsertApiKey, InsertApiRequestLogRow, InsertArchiveFetch, InsertBlock, InsertContactRequest, InsertContract, InsertEvent, InsertFeedbackTicket, InsertIndexProgress, InsertMagicLink, InsertMempoolTransaction, InsertSession, InsertStateWrite, InsertSubgraph, InsertSubgraphGap, InsertSubgraphHealthSnapshot, InsertSubgraphOperation, InsertTransaction, InsertUsageLedgerRow, InsertVmEvent, InsertWaitlistSignup, InsertWebhook, InsertWebhookDelivery, InsertWebhookOutbox, Insight, InsightEvidence, InsightEvidenceSchema, InsightListResponse, InsightListResponseSchema, InsightMutesTable, InsightResourceKind, InsightResourceKindSchema, InsightSchema, InsightSeverity, InsightSeveritySchema, InsightsTable, InstancesTable, KeyRotatedError, MagicLink, MagicLinksTable, MempoolTransaction, MempoolTransactionsTable, MigrationRole, NativeClock, NotFoundError, NumericAsText, ObserverJournalStatus, ObserverJournalTable, OutboxStatus, ParsedCreateWebhookRequest, ParsedReplayWebhookRequest, ParsedUpdateWebhookRequest, PaymentRequiredError, PendingForkBlocksTable, Pox4CallsTable, Pox4FunctionName, Pox5CycleSignersTable, Pox5CyclesTable, Pox5EventTopic, Pox5EventsTable, ProcessedStripeEventsTable, RUNE_EVENT_TYPES, RateLimitError, ReindexResponse, RepairMode, ReplayResult, ReplayWebhookRequest, ReplayWebhookRequestSchema, RetryState, RotateSecretResponse, RunStatus, RuneApplyDeliveryOf, RuneApplyEnvelope, RuneEventType, SEVERITY_ORDER, SOURCE_READ_COLUMNS, SOURCE_READ_PKS, SOURCE_READ_TYPES, STREAMS_DB_EVENT_TYPES, STREAMS_EVENT_TYPES, STREAMS_TO_DB_EVENT_TYPES, SbtcDepositEvent, SbtcEventTopic, SbtcEventsTable, SbtcSettlementsTable, SbtcTokenEventType, SbtcTokenEventsTable, SbtcWithdrawalEvent, SbtcWithdrawalSweptConfirmedEvent, SecondLayerError, SentinelAccount, SentinelAccountsTable, ServiceHeartbeatsTable, Session, SessionsTable, StageBlockReceiptsTable, StageFailuresTable, StageKind, StageRegistryTable, StageRunsTable, StateWrite, StateWritesArchiveTable, StateWritesTable, StreamsCursor, StreamsDbEventType, StreamsEventType, Subgraph, SubgraphAgentSchema, SubgraphAggregateParams, SubgraphAggregateResponse, SubgraphDetail, SubgraphErrorGroupsTable, SubgraphGap, SubgraphGapEntry, SubgraphGapRange, SubgraphGapsResponse, SubgraphGapsTable, SubgraphHealthSnapshot, SubgraphHealthSnapshotsTable, SubgraphOperation, SubgraphOperationKind, SubgraphOperationStatus, SubgraphOperationsTable, SubgraphProcessingStatsTable, SubgraphQueryParams, SubgraphSpecFormat, SubgraphSpecOptions, SubgraphSummary, SubgraphSyncInfo, SubgraphVerification, SubgraphViolationsTable, SubgraphsTable, SyncScopesTable, TABLE_TO_DB, TenantSuspendedError, Transaction, TransactionsArchiveTable, TransactionsTable, TriggerEvaluatorState, TriggerEvaluatorStateTable, UpdateAccountBalanceAlerts, UpdateAccountCredits, UpdateAccountSpendCap, UpdateApiKey, UpdateArchiveFetch, UpdateBlock, UpdateContract, UpdateEvent, UpdateIndexProgress, UpdateSubgraph, UpdateSubgraphOperation, UpdateTransaction, UpdateUsageLedgerRow, UpdateVmEvent, UpdateWebhook, UpdateWebhookOutbox, UpdateWebhookRequest, UpdateWebhookRequestSchema, UsageLedgerRow, UsageLedgerTable, VM_EVENT_TYPES, VM_NODE_TO_STORED_TYPE2 as VM_NODE_TO_STORED_TYPE, VM_STORED_TO_NODE_TYPE, ValidationError, VersionConflictError, VmEvent, VmEventType, VmEventsArchiveTable, VmEventsTable, VmNodeEventType, WEBHOOK_FORMATS, WEBHOOK_STATUSES, Waitlist, WaitlistSignup, WaitlistSignupsTable, WaitlistsTable, Webhook, WebhookDeliveriesTable, WebhookDelivery, WebhookDetail, WebhookFormat, WebhookFormatSchema, WebhookIncidentAlert, WebhookIncidentAlertsTable, WebhookKind, WebhookOutbox, WebhookOutboxTable, WebhookStatus, WebhookStatusSchema, WebhookSummary, WebhooksTable, applicationDatabaseUrl, assertDbSplit, billingPausedCode, blockEndCursor, bucketHourly, closeDb, closeDbOrTimeout, committedHeight, compareStreamsCursor, exports_hmac as crypto, decodeStreamsCursor, describeDbUrl, exports_ed25519 as ed25519, encodeStreamsCursor, finalizedBurnHeight, formatWebhookSchemaErrors, generateSubgraphAgentSchema, generateSubgraphMarkdown, generateSubgraphOpenApi, generateSubgraphSpec, getDb, getDbSplitStatus, getEnv, getErrorMessage, getMigrationRole, getRawClient, getSourceDb, getTargetDb, isBnsDecoderEnabled, isEmptyRangeCursor, isPox4DecoderEnabled, isPox5DecoderEnabled, isSbtcDecoderEnabled, jsonb, logger, onChainPlane, onControlPlane, parseJsonb, resolveSourceUrl, resolveTargetUrl, setMigrationRole, sql };
@@ -1225,13 +1225,17 @@ interface WebhookIncidentAlertsTable {
1225
1225
  resolved_at: Date | null;
1226
1226
  }
1227
1227
  type CliDeviceLoginStatus = "pending" | "approved" | "denied" | "consumed";
1228
- /** One browser sign-in attempt from `sl login`. Only the hash of the CLI's
1229
- * device code is stored; the key is minted when the CLI polls after approval. */
1228
+ /** The product that started a CLI sign-in; null is `sl login`. */
1229
+ type CliDeviceProduct = "sentinel";
1230
+ /** One browser sign-in attempt from `sl login` (or `sentinel login`). Only the
1231
+ * hash of the CLI's device code is stored; the session is opened when the CLI
1232
+ * polls after approval. */
1230
1233
  interface CliDeviceLoginsTable {
1231
1234
  id: Generated<string>;
1232
1235
  device_code_hash: string;
1233
1236
  user_code: string;
1234
1237
  client_name: string;
1238
+ product: CliDeviceProduct | null;
1235
1239
  status: Generated<CliDeviceLoginStatus>;
1236
1240
  account_id: string | null;
1237
1241
  key_name: string | null;
@@ -1030,13 +1030,17 @@ interface WebhookIncidentAlertsTable {
1030
1030
  resolved_at: Date | null;
1031
1031
  }
1032
1032
  type CliDeviceLoginStatus = "pending" | "approved" | "denied" | "consumed";
1033
- /** One browser sign-in attempt from `sl login`. Only the hash of the CLI's
1034
- * device code is stored; the key is minted when the CLI polls after approval. */
1033
+ /** The product that started a CLI sign-in; null is `sl login`. */
1034
+ type CliDeviceProduct = "sentinel";
1035
+ /** One browser sign-in attempt from `sl login` (or `sentinel login`). Only the
1036
+ * hash of the CLI's device code is stored; the session is opened when the CLI
1037
+ * polls after approval. */
1035
1038
  interface CliDeviceLoginsTable {
1036
1039
  id: Generated<string>;
1037
1040
  device_code_hash: string;
1038
1041
  user_code: string;
1039
1042
  client_name: string;
1043
+ product: CliDeviceProduct | null;
1040
1044
  status: Generated<CliDeviceLoginStatus>;
1041
1045
  account_id: string | null;
1042
1046
  key_name: string | null;
@@ -0,0 +1,25 @@
1
+ import { type Kysely, sql } from "kysely";
2
+ import { onControlPlane } from "../src/db/migration-role.ts";
3
+
4
+ /**
5
+ * Which product started a CLI sign-in: null for `sl login`, `sentinel` for
6
+ * `sentinel login`. The approval page names the product, and approving a
7
+ * Sentinel sign-in links the account to Sentinel. A CHECK keeps it to known
8
+ * products, never requester-chosen text.
9
+ */
10
+ export async function up(db: Kysely<unknown>): Promise<void> {
11
+ await onControlPlane(async () => {
12
+ await sql`
13
+ ALTER TABLE cli_device_logins ADD COLUMN IF NOT EXISTS product text
14
+ CHECK (product IN ('sentinel'))
15
+ `.execute(db);
16
+ });
17
+ }
18
+
19
+ export async function down(db: Kysely<unknown>): Promise<void> {
20
+ await onControlPlane(async () => {
21
+ await sql`ALTER TABLE cli_device_logins DROP COLUMN IF EXISTS product`.execute(
22
+ db,
23
+ );
24
+ });
25
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@secondlayer/shared",
3
- "version": "13.10.0",
3
+ "version": "13.11.0",
4
4
  "description": "Internal building blocks shared across Secondlayer packages.",
5
5
  "license": "MIT",
6
6
  "repository": {