Anydoc / anydoc parser engine (push) Canceled after 0s
App / Format, vet, test, and build (push) Canceled after 0s
CLI / test (macos-latest / go 1.26) (push) Canceled after 0s
CLI / test (ubuntu-latest / go 1.26) (push) Canceled after 0s
CLI / test (windows-latest / go 1.26) (push) Canceled after 0s
Build and Push Docker Image / build-ui (push) Canceled after 0s
Build and Push Docker Image / build-docreader (push) Canceled after 0s
Build and Push Docker Image / build-sandbox (push) Canceled after 0s
Build and Push Docker Image / build-app (amd64, linux/amd64, ubuntu-latest) (push) Canceled after 0s
Build and Push Docker Image / build-app (arm64, linux/arm64, ubuntu-24.04-arm) (push) Canceled after 0s
DocReader / Python tests and Go client tests (push) Canceled after 0s
Build & Publish (dsh-weknora) / Typecheck, test, pack (push) Canceled after 0s
Build & Publish (dsh-weknora) / End-to-end inside dsh (pinned) (push) Canceled after 0s
Build & Publish (dsh-weknora) / End-to-end inside dsh (latest, advisory) (push) Canceled after 0s
Frontend / Test, type-check, and build (push) Canceled after 0s
Go Lint Cache / warm lint cache (.) (push) Canceled after 0s
Go Lint Cache / warm lint cache (cli) (push) Canceled after 0s
Go Lint Cache / warm lint cache (client) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.10) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.11) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.12) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.13) (push) Canceled after 0s
Build and Push Docker Image / merge (push) Canceled after 0s
Build & Publish (dsh-weknora) / Publish to npm (push) Canceled after 0s
Build & Publish (mcp-server) / Build sdist + wheel (push) Canceled after 0s
Build & Publish (mcp-server) / Publish to PyPI (push) Canceled after 0s
35 lines
1.5 KiB
SQL
35 lines
1.5 KiB
SQL
CREATE TABLE IF NOT EXISTS resumable_uploads (
|
|
id VARCHAR(36) PRIMARY KEY,
|
|
tenant_id BIGINT NOT NULL REFERENCES tenants(id),
|
|
owner_id VARCHAR(36) NOT NULL REFERENCES users(id),
|
|
kind VARCHAR(32) NOT NULL CHECK(kind IN ('knowledge','digital-human')),
|
|
target_id VARCHAR(36) NOT NULL,
|
|
name TEXT NOT NULL,
|
|
size BIGINT NOT NULL CHECK(size > 0 AND size <= 21474836480),
|
|
"offset" BIGINT NOT NULL DEFAULT 0,
|
|
chunk_size BIGINT NOT NULL DEFAULT 4194304,
|
|
sha256 VARCHAR(64) NOT NULL DEFAULT '',
|
|
fingerprint VARCHAR(128) NOT NULL DEFAULT '',
|
|
state VARCHAR(24) NOT NULL DEFAULT 'uploading',
|
|
error TEXT NOT NULL DEFAULT '',
|
|
options JSONB NOT NULL DEFAULT '{}',
|
|
result JSONB NOT NULL DEFAULT '{}',
|
|
ingest_offset BIGINT NOT NULL DEFAULT 0,
|
|
part INTEGER NOT NULL DEFAULT 0,
|
|
expires_at TIMESTAMPTZ NOT NULL,
|
|
lease_until TIMESTAMPTZ,
|
|
lease_token VARCHAR(36) NOT NULL DEFAULT '',
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
);
|
|
CREATE INDEX IF NOT EXISTS resumable_upload_owner ON resumable_uploads(tenant_id,owner_id,created_at DESC);
|
|
CREATE INDEX IF NOT EXISTS resumable_upload_queue ON resumable_uploads(state,lease_until,created_at);
|
|
CREATE INDEX IF NOT EXISTS resumable_upload_expiry ON resumable_uploads(expires_at);
|
|
CREATE TABLE IF NOT EXISTS resumable_upload_chunks (
|
|
upload_id VARCHAR(36) NOT NULL REFERENCES resumable_uploads(id) ON DELETE CASCADE,
|
|
"offset" BIGINT NOT NULL,
|
|
size BIGINT NOT NULL CHECK(size > 0 AND size <= 4194304),
|
|
sha256 VARCHAR(64) NOT NULL,
|
|
PRIMARY KEY(upload_id,"offset")
|
|
);
|