mirror of
https://github.com/Dvorinka/Primora.git
synced 2026-10-28 07:41:23 +00:00
Security:
- Graceful shutdown: http.Server + signal.NotifyContext, 10s drain,
retention sweeper cancelled before pool close
- Scoped API keys (migration 00006): ingest/read/write/admin enforced in
auth middleware; scope picker + badges in Settings UI; scopeless legacy
keys act as admin. Read-only keys now get 403 on ingest (verified live)
- nginx: baseline security headers on all responses, CSP scoped to SPA;
fixed add_header inheritance shadowing
- better-auth rate limit enabled unconditionally (was gated on NODE_ENV,
which the shipped .env sets to development)
- Mailpit moved to docker-compose.dev.yml; prod compose cannot expose it
- setup.sh generates PRIMORA_ENCRYPTION_KEY
Reliability/ops:
- Retention: per-project retention_{events,audit,webhook}_days
(migration 00007, 0=off) + hourly RetentionSweeper; edit UI in Projects
- GET /api/v1/metrics Prometheus exposition
- compose: healthchecks + restart policies everywhere, dragonfly pinned
to v2.0.0, depends_on service_healthy
- backup.sh/restore.sh (pg_dump -Fc + storage volume); restore verified
against scratch postgres+volume
- .dockerignore: exclude target dirs (build context was 4.7GB)
Correctness/testing:
- DBX transfer endpoint: POST /db-connections/:id/transfer — SQL or Redis
target, 1000-row bound, server-side creds (verified live pg→dragonfly)
- Pagination audit: ListComponents capped at 500 (auto-registers)
- CI: goose up/reset/up job + compose e2e-smoke job (smoke-e2e.sh
verified locally: signup, bootstrap, scoped keys, ingest, metrics)
- k6 load sanity script: 6650 reqs, ~217/s, 0 real failures, p95 221ms
(429s = configured rate limiter working)
Docs: DEPLOYMENT_GUIDE.md, PRODUCTION_READINESS.md; verify script
repaired (stale refs + set -e arithmetic abort). ROADMAP: phase 2 +
phase 6 marked complete.
Authored By: TDvorak <[email protected]>
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
250 lines
16 KiB
TypeScript
250 lines
16 KiB
TypeScript
/* generated using openapi-typescript-codegen -- do not edit */
|
|
/* istanbul ignore file */
|
|
/* tslint:disable */
|
|
/* eslint-disable */
|
|
export { ApiError } from './core/ApiError';
|
|
export { CancelablePromise, CancelError } from './core/CancelablePromise';
|
|
export { OpenAPI } from './core/OpenAPI';
|
|
export type { OpenAPIConfig } from './core/OpenAPI';
|
|
|
|
export type { AcceptInvitationRequest } from './models/AcceptInvitationRequest';
|
|
export type { ApiKey } from './models/ApiKey';
|
|
export type { ApiKeyID } from './models/ApiKeyID';
|
|
export type { AuditAction } from './models/AuditAction';
|
|
export type { AuditLog } from './models/AuditLog';
|
|
export type { AuditLogListResponse } from './models/AuditLogListResponse';
|
|
export type { AuditQuery } from './models/AuditQuery';
|
|
export type { BootstrapRequest } from './models/BootstrapRequest';
|
|
export type { BootstrapResponse } from './models/BootstrapResponse';
|
|
export type { Bucket } from './models/Bucket';
|
|
export type { BucketID } from './models/BucketID';
|
|
export type { BucketObject } from './models/BucketObject';
|
|
export type { BucketObjectListResponse } from './models/BucketObjectListResponse';
|
|
export type { Collection } from './models/Collection';
|
|
export type { CollectionID } from './models/CollectionID';
|
|
export type { CollectionListResponse } from './models/CollectionListResponse';
|
|
export type { ComponentHealth } from './models/ComponentHealth';
|
|
export type { ComponentID } from './models/ComponentID';
|
|
export type { ConnectionID } from './models/ConnectionID';
|
|
export type { CopyBucketObjectRequest } from './models/CopyBucketObjectRequest';
|
|
export type { CreateApiKeyRequest } from './models/CreateApiKeyRequest';
|
|
export { CreateBucketRequest } from './models/CreateBucketRequest';
|
|
export type { CreateCollectionRequest } from './models/CreateCollectionRequest';
|
|
export type { CreatedApiKey } from './models/CreatedApiKey';
|
|
export { CreateDBConnectionRequest } from './models/CreateDBConnectionRequest';
|
|
export type { CreateDeployMarkerRequest } from './models/CreateDeployMarkerRequest';
|
|
export type { CreateDocumentRequest } from './models/CreateDocumentRequest';
|
|
export { CreateIntegrationRequest } from './models/CreateIntegrationRequest';
|
|
export { CreateInvitationRequest } from './models/CreateInvitationRequest';
|
|
export type { CreateOrganizationRequest } from './models/CreateOrganizationRequest';
|
|
export type { CreateProjectRequest } from './models/CreateProjectRequest';
|
|
export type { CreateWebhookRequest } from './models/CreateWebhookRequest';
|
|
export type { DatabaseQuery } from './models/DatabaseQuery';
|
|
export type { DBConnection } from './models/DBConnection';
|
|
export type { DBConnectionListResponse } from './models/DBConnectionListResponse';
|
|
export type { DBConnectionTestResult } from './models/DBConnectionTestResult';
|
|
export type { DBDatabaseListResponse } from './models/DBDatabaseListResponse';
|
|
export type { DBDescribeResponse } from './models/DBDescribeResponse';
|
|
export type { DBForeignKeyEdge } from './models/DBForeignKeyEdge';
|
|
export type { DBForeignKeysResponse } from './models/DBForeignKeysResponse';
|
|
export type { DBMDTable } from './models/DBMDTable';
|
|
export type { DBObject } from './models/DBObject';
|
|
export type { DBQueryRequest } from './models/DBQueryRequest';
|
|
export type { DBQueryResponse } from './models/DBQueryResponse';
|
|
export type { DBRedisRequest } from './models/DBRedisRequest';
|
|
export type { DBRedisResponse } from './models/DBRedisResponse';
|
|
export type { DBSchemaContextResponse } from './models/DBSchemaContextResponse';
|
|
export type { DBTableListResponse } from './models/DBTableListResponse';
|
|
export type { DBTransferRequest } from './models/DBTransferRequest';
|
|
export type { DBTransferResponse } from './models/DBTransferResponse';
|
|
export type { DBXStatus } from './models/DBXStatus';
|
|
export type { DeployMarker } from './models/DeployMarker';
|
|
export type { Document } from './models/Document';
|
|
export type { DocumentID } from './models/DocumentID';
|
|
export type { DocumentListResponse } from './models/DocumentListResponse';
|
|
export type { ErrorEnvelope } from './models/ErrorEnvelope';
|
|
export type { EventSeriesBucket } from './models/EventSeriesBucket';
|
|
export type { HealthStatus } from './models/HealthStatus';
|
|
export { IngestEvent } from './models/IngestEvent';
|
|
export type { IngestRequest } from './models/IngestRequest';
|
|
export type { IngestResponse } from './models/IngestResponse';
|
|
export { Integration } from './models/Integration';
|
|
export type { IntegrationAnalytics } from './models/IntegrationAnalytics';
|
|
export type { IntegrationID } from './models/IntegrationID';
|
|
export type { IntegrationListResponse } from './models/IntegrationListResponse';
|
|
export type { IntegrationTestResult } from './models/IntegrationTestResult';
|
|
export type { Invitation } from './models/Invitation';
|
|
export type { InvitationID } from './models/InvitationID';
|
|
export type { MeResponse } from './models/MeResponse';
|
|
export type { MetricPoint } from './models/MetricPoint';
|
|
export type { MetricSeriesResponse } from './models/MetricSeriesResponse';
|
|
export type { ObjectKey } from './models/ObjectKey';
|
|
export type { OrganizationID } from './models/OrganizationID';
|
|
export { OrganizationInvitation } from './models/OrganizationInvitation';
|
|
export { OrganizationMember } from './models/OrganizationMember';
|
|
export type { OrganizationMembership } from './models/OrganizationMembership';
|
|
export type { OrganizationSummary } from './models/OrganizationSummary';
|
|
export type { PaginationLimit } from './models/PaginationLimit';
|
|
export type { PaginationMetadata } from './models/PaginationMetadata';
|
|
export type { PaginationOffset } from './models/PaginationOffset';
|
|
export type { Project } from './models/Project';
|
|
export type { ProjectID } from './models/ProjectID';
|
|
export { ProjectMember } from './models/ProjectMember';
|
|
export type { ProjectOverview } from './models/ProjectOverview';
|
|
export type { ProjectSummary } from './models/ProjectSummary';
|
|
export type { ReadinessStatus } from './models/ReadinessStatus';
|
|
export type { RybbitMetricItem } from './models/RybbitMetricItem';
|
|
export type { RybbitSite } from './models/RybbitSite';
|
|
export type { SchemaQuery } from './models/SchemaQuery';
|
|
export type { TableQuery } from './models/TableQuery';
|
|
export type { TelemetryComponent } from './models/TelemetryComponent';
|
|
export type { TelemetryComponentListResponse } from './models/TelemetryComponentListResponse';
|
|
export type { TelemetryEvent } from './models/TelemetryEvent';
|
|
export type { TelemetryEventListResponse } from './models/TelemetryEventListResponse';
|
|
export type { TelemetryIssue } from './models/TelemetryIssue';
|
|
export type { TelemetryIssueListResponse } from './models/TelemetryIssueListResponse';
|
|
export type { TelemetryStats } from './models/TelemetryStats';
|
|
export type { UpdateBucketObjectRequest } from './models/UpdateBucketObjectRequest';
|
|
export { UpdateBucketRequest } from './models/UpdateBucketRequest';
|
|
export type { UpdateCollectionRequest } from './models/UpdateCollectionRequest';
|
|
export type { UpdateDocumentRequest } from './models/UpdateDocumentRequest';
|
|
export { UpdateOrganizationMemberRoleRequest } from './models/UpdateOrganizationMemberRoleRequest';
|
|
export type { UpdateOrganizationRequest } from './models/UpdateOrganizationRequest';
|
|
export { UpdateProjectMemberRoleRequest } from './models/UpdateProjectMemberRoleRequest';
|
|
export type { UpdateProjectRequest } from './models/UpdateProjectRequest';
|
|
export type { UpdateWebhookRequest } from './models/UpdateWebhookRequest';
|
|
export type { UserID } from './models/UserID';
|
|
export type { UserSummary } from './models/UserSummary';
|
|
export type { Webhook } from './models/Webhook';
|
|
export type { WebhookCreateResponse } from './models/WebhookCreateResponse';
|
|
export { WebhookDelivery } from './models/WebhookDelivery';
|
|
export type { WebhookDeliveryListResponse } from './models/WebhookDeliveryListResponse';
|
|
export type { WebhookID } from './models/WebhookID';
|
|
export type { WebhookListResponse } from './models/WebhookListResponse';
|
|
|
|
export { $AcceptInvitationRequest } from './schemas/$AcceptInvitationRequest';
|
|
export { $ApiKey } from './schemas/$ApiKey';
|
|
export { $ApiKeyID } from './schemas/$ApiKeyID';
|
|
export { $AuditAction } from './schemas/$AuditAction';
|
|
export { $AuditLog } from './schemas/$AuditLog';
|
|
export { $AuditLogListResponse } from './schemas/$AuditLogListResponse';
|
|
export { $AuditQuery } from './schemas/$AuditQuery';
|
|
export { $BootstrapRequest } from './schemas/$BootstrapRequest';
|
|
export { $BootstrapResponse } from './schemas/$BootstrapResponse';
|
|
export { $Bucket } from './schemas/$Bucket';
|
|
export { $BucketID } from './schemas/$BucketID';
|
|
export { $BucketObject } from './schemas/$BucketObject';
|
|
export { $BucketObjectListResponse } from './schemas/$BucketObjectListResponse';
|
|
export { $Collection } from './schemas/$Collection';
|
|
export { $CollectionID } from './schemas/$CollectionID';
|
|
export { $CollectionListResponse } from './schemas/$CollectionListResponse';
|
|
export { $ComponentHealth } from './schemas/$ComponentHealth';
|
|
export { $ComponentID } from './schemas/$ComponentID';
|
|
export { $ConnectionID } from './schemas/$ConnectionID';
|
|
export { $CopyBucketObjectRequest } from './schemas/$CopyBucketObjectRequest';
|
|
export { $CreateApiKeyRequest } from './schemas/$CreateApiKeyRequest';
|
|
export { $CreateBucketRequest } from './schemas/$CreateBucketRequest';
|
|
export { $CreateCollectionRequest } from './schemas/$CreateCollectionRequest';
|
|
export { $CreatedApiKey } from './schemas/$CreatedApiKey';
|
|
export { $CreateDBConnectionRequest } from './schemas/$CreateDBConnectionRequest';
|
|
export { $CreateDeployMarkerRequest } from './schemas/$CreateDeployMarkerRequest';
|
|
export { $CreateDocumentRequest } from './schemas/$CreateDocumentRequest';
|
|
export { $CreateIntegrationRequest } from './schemas/$CreateIntegrationRequest';
|
|
export { $CreateInvitationRequest } from './schemas/$CreateInvitationRequest';
|
|
export { $CreateOrganizationRequest } from './schemas/$CreateOrganizationRequest';
|
|
export { $CreateProjectRequest } from './schemas/$CreateProjectRequest';
|
|
export { $CreateWebhookRequest } from './schemas/$CreateWebhookRequest';
|
|
export { $DatabaseQuery } from './schemas/$DatabaseQuery';
|
|
export { $DBConnection } from './schemas/$DBConnection';
|
|
export { $DBConnectionListResponse } from './schemas/$DBConnectionListResponse';
|
|
export { $DBConnectionTestResult } from './schemas/$DBConnectionTestResult';
|
|
export { $DBDatabaseListResponse } from './schemas/$DBDatabaseListResponse';
|
|
export { $DBDescribeResponse } from './schemas/$DBDescribeResponse';
|
|
export { $DBForeignKeyEdge } from './schemas/$DBForeignKeyEdge';
|
|
export { $DBForeignKeysResponse } from './schemas/$DBForeignKeysResponse';
|
|
export { $DBMDTable } from './schemas/$DBMDTable';
|
|
export { $DBObject } from './schemas/$DBObject';
|
|
export { $DBQueryRequest } from './schemas/$DBQueryRequest';
|
|
export { $DBQueryResponse } from './schemas/$DBQueryResponse';
|
|
export { $DBRedisRequest } from './schemas/$DBRedisRequest';
|
|
export { $DBRedisResponse } from './schemas/$DBRedisResponse';
|
|
export { $DBSchemaContextResponse } from './schemas/$DBSchemaContextResponse';
|
|
export { $DBTableListResponse } from './schemas/$DBTableListResponse';
|
|
export { $DBTransferRequest } from './schemas/$DBTransferRequest';
|
|
export { $DBTransferResponse } from './schemas/$DBTransferResponse';
|
|
export { $DBXStatus } from './schemas/$DBXStatus';
|
|
export { $DeployMarker } from './schemas/$DeployMarker';
|
|
export { $Document } from './schemas/$Document';
|
|
export { $DocumentID } from './schemas/$DocumentID';
|
|
export { $DocumentListResponse } from './schemas/$DocumentListResponse';
|
|
export { $ErrorEnvelope } from './schemas/$ErrorEnvelope';
|
|
export { $EventSeriesBucket } from './schemas/$EventSeriesBucket';
|
|
export { $HealthStatus } from './schemas/$HealthStatus';
|
|
export { $IngestEvent } from './schemas/$IngestEvent';
|
|
export { $IngestRequest } from './schemas/$IngestRequest';
|
|
export { $IngestResponse } from './schemas/$IngestResponse';
|
|
export { $Integration } from './schemas/$Integration';
|
|
export { $IntegrationAnalytics } from './schemas/$IntegrationAnalytics';
|
|
export { $IntegrationID } from './schemas/$IntegrationID';
|
|
export { $IntegrationListResponse } from './schemas/$IntegrationListResponse';
|
|
export { $IntegrationTestResult } from './schemas/$IntegrationTestResult';
|
|
export { $Invitation } from './schemas/$Invitation';
|
|
export { $InvitationID } from './schemas/$InvitationID';
|
|
export { $MeResponse } from './schemas/$MeResponse';
|
|
export { $MetricPoint } from './schemas/$MetricPoint';
|
|
export { $MetricSeriesResponse } from './schemas/$MetricSeriesResponse';
|
|
export { $ObjectKey } from './schemas/$ObjectKey';
|
|
export { $OrganizationID } from './schemas/$OrganizationID';
|
|
export { $OrganizationInvitation } from './schemas/$OrganizationInvitation';
|
|
export { $OrganizationMember } from './schemas/$OrganizationMember';
|
|
export { $OrganizationMembership } from './schemas/$OrganizationMembership';
|
|
export { $OrganizationSummary } from './schemas/$OrganizationSummary';
|
|
export { $PaginationLimit } from './schemas/$PaginationLimit';
|
|
export { $PaginationMetadata } from './schemas/$PaginationMetadata';
|
|
export { $PaginationOffset } from './schemas/$PaginationOffset';
|
|
export { $Project } from './schemas/$Project';
|
|
export { $ProjectID } from './schemas/$ProjectID';
|
|
export { $ProjectMember } from './schemas/$ProjectMember';
|
|
export { $ProjectOverview } from './schemas/$ProjectOverview';
|
|
export { $ProjectSummary } from './schemas/$ProjectSummary';
|
|
export { $ReadinessStatus } from './schemas/$ReadinessStatus';
|
|
export { $RybbitMetricItem } from './schemas/$RybbitMetricItem';
|
|
export { $RybbitSite } from './schemas/$RybbitSite';
|
|
export { $SchemaQuery } from './schemas/$SchemaQuery';
|
|
export { $TableQuery } from './schemas/$TableQuery';
|
|
export { $TelemetryComponent } from './schemas/$TelemetryComponent';
|
|
export { $TelemetryComponentListResponse } from './schemas/$TelemetryComponentListResponse';
|
|
export { $TelemetryEvent } from './schemas/$TelemetryEvent';
|
|
export { $TelemetryEventListResponse } from './schemas/$TelemetryEventListResponse';
|
|
export { $TelemetryIssue } from './schemas/$TelemetryIssue';
|
|
export { $TelemetryIssueListResponse } from './schemas/$TelemetryIssueListResponse';
|
|
export { $TelemetryStats } from './schemas/$TelemetryStats';
|
|
export { $UpdateBucketObjectRequest } from './schemas/$UpdateBucketObjectRequest';
|
|
export { $UpdateBucketRequest } from './schemas/$UpdateBucketRequest';
|
|
export { $UpdateCollectionRequest } from './schemas/$UpdateCollectionRequest';
|
|
export { $UpdateDocumentRequest } from './schemas/$UpdateDocumentRequest';
|
|
export { $UpdateOrganizationMemberRoleRequest } from './schemas/$UpdateOrganizationMemberRoleRequest';
|
|
export { $UpdateOrganizationRequest } from './schemas/$UpdateOrganizationRequest';
|
|
export { $UpdateProjectMemberRoleRequest } from './schemas/$UpdateProjectMemberRoleRequest';
|
|
export { $UpdateProjectRequest } from './schemas/$UpdateProjectRequest';
|
|
export { $UpdateWebhookRequest } from './schemas/$UpdateWebhookRequest';
|
|
export { $UserID } from './schemas/$UserID';
|
|
export { $UserSummary } from './schemas/$UserSummary';
|
|
export { $Webhook } from './schemas/$Webhook';
|
|
export { $WebhookCreateResponse } from './schemas/$WebhookCreateResponse';
|
|
export { $WebhookDelivery } from './schemas/$WebhookDelivery';
|
|
export { $WebhookDeliveryListResponse } from './schemas/$WebhookDeliveryListResponse';
|
|
export { $WebhookID } from './schemas/$WebhookID';
|
|
export { $WebhookListResponse } from './schemas/$WebhookListResponse';
|
|
|
|
export { CollectionsService } from './services/CollectionsService';
|
|
export { DatabasesService } from './services/DatabasesService';
|
|
export { HealthService } from './services/HealthService';
|
|
export { IntegrationsService } from './services/IntegrationsService';
|
|
export { OrganizationsService } from './services/OrganizationsService';
|
|
export { PlatformService } from './services/PlatformService';
|
|
export { ProjectsService } from './services/ProjectsService';
|
|
export { StorageService } from './services/StorageService';
|
|
export { TelemetryService } from './services/TelemetryService';
|
|
export { WebhooksService } from './services/WebhooksService';
|