Spaces:
Running
Running
| """ | |
| Database proxy request/response models. | |
| """ | |
| from __future__ import annotations | |
| from typing import Any, Literal | |
| from pydantic import BaseModel, Field | |
| class DbOrder(BaseModel): | |
| column: str | |
| ascending: bool = True | |
| class DbRange(BaseModel): | |
| from_: int = Field(alias="from") | |
| to: int | |
| class DbFilter(BaseModel): | |
| op: Literal[ | |
| "eq", | |
| "gt", | |
| "lt", | |
| "ilike", | |
| "in", | |
| "not_in", | |
| "is_null", | |
| "or", | |
| ] | |
| column: str | None = None | |
| value: Any | None = None | |
| values: list[Any] | None = None | |
| filters: list[DbFilter] | None = None | |
| class DbRpc(BaseModel): | |
| name: str | |
| params: dict[str, Any] | None = None | |
| class DbQueryRequest(BaseModel): | |
| provider_id: str = Field(default="default", alias="providerId") | |
| action: Literal[ | |
| "select", | |
| "insert", | |
| "update", | |
| "delete", | |
| "upsert", | |
| "rpc", | |
| "test", | |
| ] | |
| table: str | None = None | |
| columns: str | list[str] | None = None | |
| filters: list[DbFilter] | None = None | |
| order: list[DbOrder] | None = None | |
| limit: int | None = None | |
| range: DbRange | None = None | |
| count: Literal["exact"] | None = None | |
| single: bool | None = None | |
| maybe_single: bool | None = Field(default=None, alias="maybeSingle") | |
| values: list[dict[str, Any]] | dict[str, Any] | None = None | |
| payload: dict[str, Any] | None = None | |
| on_conflict: list[str] | str | None = Field(default=None, alias="onConflict") | |
| rpc: DbRpc | None = None | |
| class DbQueryResponse(BaseModel): | |
| data: Any | None = None | |
| error: str | None = None | |
| count: int | None = None | |
| class DbProviderUpsertRequest(BaseModel): | |
| id: str = "default" | |
| type: Literal["supabase", "sqlite", "postgres", "pgsql", "mysql", "mariadb"] | |
| label: str | None = None | |
| access_key: str | None = Field(default=None, alias="accessKey") | |
| url: str | None = None | |
| anon_key: str | None = Field(default=None, alias="anonKey") | |
| path: str | None = None | |