feat(coding): add Main Data Service Host adapter

This commit is contained in:
2026-08-26 19:10:37 +08:00
parent 003fe210f4
commit c19227a4d4
10 changed files with 1771 additions and 0 deletions

96
shared/data-service.ts Normal file
View File

@@ -0,0 +1,96 @@
export type DataServiceUsage = {
document_count: number;
total_bytes: number;
};
export type DataServiceCollection = {
name: string;
document_count: number;
total_bytes: number;
created_at: string;
};
export type DataServiceLimits = {
max_collections: number;
max_documents: number;
max_total_bytes: number;
max_document_bytes: number;
list_default_limit: number;
list_max_limit: number;
list_max_data_bytes: number;
mutations_per_minute: number;
};
export type DataServiceInstanceState = {
instance_id: string;
project_id: string;
collections: DataServiceCollection[];
usage: DataServiceUsage;
limits: DataServiceLimits;
created_at: string;
updated_at: string;
};
export type DataServiceInstanceList = {
items: DataServiceInstanceState[];
total: number;
instance_limit: number;
};
export type DataServiceCollectionRemoval = {
removed: boolean;
usage: DataServiceUsage;
};
export type DataServiceInstanceRemoval = {
removed: boolean;
};
export type DataServiceDocument = {
id: string;
data: Record<string, unknown>;
revision: number;
created_at: string;
updated_at: string;
};
export type DataServiceDocumentList = {
items: DataServiceDocument[];
next_cursor: string | null;
limit: number;
};
export type DataServiceErrorContext = Record<string, string | number>;
export type DataServiceHostResult<T> = {
success: boolean;
status: number;
code: string | null;
error: string | null;
retryable: boolean;
retry_after_seconds?: number;
context?: DataServiceErrorContext;
data: T | null;
};
export type DataServicePutDocumentInput = {
collection: string;
document_id: string;
data: Record<string, unknown>;
if_revision?: number;
};
export type DataServiceDocumentTargetInput = {
collection: string;
document_id: string;
if_revision?: number;
};
export type DataServiceCollectionTargetInput = {
collection: string;
confirmed: true;
};
export type DataServiceConfirmationInput = {
confirmed: true;
};