Services
Find the Spiral service that does the job your application needs, and see which clients can call it.
Spiral's services are the building blocks your application uses. One service signs your users in, another decides what each of them can read and write, another keeps a versioned history of your Tables, and another runs background jobs on Workers. Your application calls the services it needs and leaves the rest. They are grouped below by the job they do.
Each service has a short concept page, step-by-step guides, and an HTTP reference. If you are new to Spiral, read Platform first: it explains the Organization, Project, and Table model that every service shares.
Account and identity
Let people and programs sign in, and decide what each of them can do.
Put your team in one account, and set up single sign-on, directory sync, and audit logs once.
Create the workspaces that hold your Tables, their access, and their history.
Get the short-lived access token that every request to Spiral carries.
Decide which people, Organization roles, and workloads can use each Project.
Give pipelines, CI jobs, and services their own identity, with no secret to store.
Let the users of your application sign in with Spiral and approve what it can do for them.
Data
Store, version, and search the data your application works with.
Name your Tables and other Resources, and keep a commit history of every change.
Store and version rows of structured and multimodal data.
Add derived columns to a Table without rewriting the Table.
Find the nearest neighbors of a vector in a Table column.
Name a place in object storage that already holds files.
Keep one credential for an external system, such as Hugging Face.
Choose the buckets that hold your data, and get access to the stored bytes.
Compute
Run long operations, such as compacting a Table or rebuilding a Vector Index, in the background on Spiral-managed machines or on your own.
Hand a long operation to Spiral, and run it again on a schedule or when data changes.
Turn on Spiral-managed Workers, or run Workers on your own machines and GPUs.
Client support
You can call every service over HTTP. The table shows which other clients can call each service today. "Planned" means that the client does not cover that service yet, so use HTTP until it does.
| Service | Python | Rust | TypeScript | HTTP | CLI |
|---|---|---|---|---|---|
| Account and identity | |||||
| Organizations | In development | Available | In development | Available | Available |
| Projects | In development | Available | In development | Available | Available |
| Authentication | In development | Available | Planned | Available | Available |
| Authorization | In development | Available | In development | Available | Available |
| Workloads | In development | Available | In development | Available | Available |
| Applications | In development | Available | In development | Available | — |
| Data | |||||
| Catalog | In development | Available | In development | Available | — |
| Tables | In development | Available | In development | Available | — |
| Enrichments | Available | Available | In development | Available | — |
| Vector Indexes | In development | In development | In development | Available | — |
| Locations | In development | Available | In development | Available | — |
| Connections | In development | Available | In development | Available | Available |
| Storage | In development | Available | In development | Available | Available |
| ScanDAL | In development | In development | In development | In development | In development |
| Compute | |||||
| Tasks | In development | Available | In development | Available | — |
| Worker Pools | In development | Available | In development | Available | Available |
The Rust SDK, Python SDK, TypeScript SDK and CLI are available as published packages. All HTTP routes follow the conventions in HTTP API.