Busabase
Busabase는 AI 에이전트를 위한 오픈소스(MIT) 데이터베이스 및 작업 공간입니다
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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 |