Busabase
Busabase is an open-source (MIT) database and workspace for AI agents — data, docs, skills, and apps in one place. Run it locally, self-host it inside your network, or use Busabase Cloud, and turn age
翻譯準備中
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證An IVOA TAP 1.1 (Table Access Protocol) server in Python, built as microservices on a PostgreSQL backend, reusing existing libraries for the hard parts
翻譯準備中
正在載入完整 README。 以下為已儲存的摘錄。
An IVOA TAP 1.1 server in Python — ADQL over PostgreSQL, scaling on nothing but the database.
The Table Access Protocol is the IVOA standard for querying tabular
data — astronomical catalogues as well as ordinary database tables — over a
uniform web service. This is a complete TAP 1.1 implementation for the SKA
Regional Centre Network, built as two stateless services over one PostgreSQL
database.檢視完整 README ↗The Table Access Protocol is the IVOA standard for querying tabular data — astronomical catalogues as well as ordinary database tables — over a uniform web service. This is a complete TAP 1.1 implementation for the SKA Regional Centre Network, built as two stateless services over one PostgreSQL database.
FOR UPDATE SKIP LOCKED on a table, so there is no broker, no cache tier and
no service registry to operate — and executors scale out with no leases and
no split-brain.TAP_SCHEMA, then executed under SET LOCAL ROLE tap_reader
with a statement timeout. An ADQL query cannot write, whatever it manages to
express.TAP_SCHEMA so
ingested metadata is queryable by ordinary ADQL.docker compose up --build -d
./scripts/smoke_test.sh # availability, tables, sync + async round trip
Query it with curl:
curl "http://localhost:8080/tap/sync" \
--data-urlencode "LANG=ADQL" \
--data-urlencode "QUERY=SELECT TOP 5 * FROM ska.continuum_sources" \
--data-urlencode "RESPONSEFORMAT=csv"
…or with any IVOA client, which needs no configuration beyond the URL:
import pyvo
svc = pyvo.dal.TAPService("http://localhost:8080/tap")
print(svc.search("SELECT TOP 5 * FROM ska.continuum_sources").to_table())
Cone search, UWS jobs, Parquet output, TOPCAT and metadata ingest are in the Quickstart guide.
| Standard | Surface |
|---|---|
| TAP 1.1 | /sync, /async, TAP_SCHEMA, UPLOAD (inline multipart and http(s)) |
| ADQL 2.1 | Parsed and translated by a vendored queryparser-python3 fork; geometry becomes pg_sphere expressions |
| UWS 1.1 | Complete job lifecycle, including WAIT blocking, AFTER filtering, and ABORT that cancels the running statement |
| VOSI | /capabilities (TAPRegExt), /availability, /tables (VODataService) |
| DALI | Parameter conventions, error VOTables, /examples |
| VOTable 1.4 | hand-written streaming writer; plus CSV, TSV, JSON, Parquet, Arrow |
| VOResource | /tap/registry record for registry harvesting |
| AuthVO | Challenges naming the IAM, so a client can go and get a token |
Endpoint-by-endpoint detail with every parameter is in the API reference.
A JSON interface for machine-to-machine use lives alongside the
standards-mandated XML at /api/v1 — see the JSON API.
helm upgrade --install egernia charts/egernia \
--namespace egernia --create-namespace \
--set tapApi.baseUrl=https://tap.example.org/tap
helm test egernia -n egernia # in-cluster VOSI + sync smoke test
The chart covers both services, an optional in-chart PostgreSQL, anti-affinity and PodDisruptionBudgets, opt-in autoscaling and scheduled backups. External HA PostgreSQL, PITR, restore and hardening are in the deployment guide.
[!IMPORTANT] Authentication is off by default. A deployment that configures no IAM is fully anonymous, including the mutating metadata endpoints, so it must not be exposed to untrusted networks. See Authentication.
| Quickstart | Run it locally, query it from curl, PyVO and TOPCAT |
| Architecture | The two-service shape, request paths, failure behaviour |
| API reference · JSON API | Every endpoint and parameter |
| Deployment · Autoscaling | Helm values, scaling, backup, restore |
| Authentication · VO Registry | Tokens, gated operations, registration |
| Metadata plugins · Model schemas | Binding a pydantic model to a queryable schema |
| Observability · Benchmarking | Metrics, tracing, how the numbers were measured |
| Development · Roadmap |
Contributions are welcome — see CONTRIBUTING.md for the development loop and CODE_OF_CONDUCT.md for the standards we hold each other to. Questions and bug reports belong in GitHub issues.
To report a security vulnerability, follow SECURITY.md rather than opening a public issue.
If this software supports published work, please cite it — GitHub builds the citation from CITATION.cff via Cite this repository.
MIT © Michele Delli Veneri and contributors.
The uv workspace, tests, and what is planned |