Quickstart v26.4+
Run Kubling, Kubling Studio and the official In-memory provider as one disposable Docker Compose project. The complete walkthrough requires no Go, Java, Kubernetes cluster, database server, source credentials or host-installed SQL client.
The runnable project is maintained in the public
kubling-samples
repository. Compose generates the descriptor bundle, verifies provider health,
starts Kubling and waits for aggregate readiness.
The samples repository intentionally follows the current public latest
images and validates them continuously in CI. This rolling policy is for
supported samples and local exploration. Pin exact Kubling and provider
versions in production deployments.
Requirements
- Git
- Docker Engine
- Docker Compose v2
Clone the samples repository
git clone --depth 1 https://github.com/kubling-community/kubling-samples.git
cd kubling-samples/quickstartStart the stack
docker compose up --waitThe command completes when the In-memory provider is reachable through its
gRPC Health RPC and Kubling’s aggregate health endpoint reports UP.
The stack exposes only Kubling’s HTTP port on the host. The provider remains on the internal Compose network.
| Resource | Value |
|---|---|
| Studio | http://localhost:8282/console |
| Aggregate health | http://localhost:8282/observe/health |
| Virtual Database | ProviderQuickstartVDB |
| Data source and schema | provider |
| Provider endpoint | provider:50051, internal to Compose |
Open Kubling Studio
Open http://localhost:8282/console . The local
Studio login form requires non-empty values even though this VDB has no
authentication delegate. Enter quickstart as both username and password.
These values are local placeholders, are not external credentials and are not
persisted by the sample repository.
Select ProviderQuickstartVDB and expand the provider schema. Its
PROJECT, TASK, AUDIT_EVENT and TYPE_SAMPLE tables are imported from the
provider’s GetSchema response; their DDL is not duplicated in the VDB.
Query deterministic data
Open SQL Workspace and run:
SELECT id, name, status, active
FROM provider.PROJECT
ORDER BY id;Expected result:
| id | name | status | active |
|---|---|---|---|
project-1 | Provider SDK | A | true |
project-2 | Engine Integration | P | true |
Run and verify a mutation
The provider starts task-2 with completed = false. Run:
UPDATE provider.TASK
SET completed = true
WHERE id = 'task-2';The expected update count is 1. Verify the provider-owned change:
SELECT id, title, completed
FROM provider.TASK
WHERE id = 'task-2';Expected result:
| id | title | completed |
|---|---|---|
task-2 | Build in-memory provider | true |
The provider returns to its initial data whenever its container is recreated.
Run the automated verification
With the stack running, execute:
docker compose --profile test run --rm smoke-testThe test checks Studio, verifies both projects, resets task-2, performs the
mutation and queries the final provider state. A successful run prints:
Quickstart smoke test passed.Inspect or stop the stack
Inspect service state or relevant logs with:
docker compose ps
docker compose logs kubling providerRemove the containers, network and generated descriptor volume with:
docker compose down --volumesWhat the sample demonstrates
The VDB registers provider as a PROVIDER_GRPC data source and delegates
physical schema ownership, queries and mutations to the external provider.
Kubling owns the VDB, federation planning and the client-facing Studio
workflow.
Continue with Explore with Studio for the rest of the workspace, enable the client gRPC transport to connect an application, or choose a provider when you are ready to connect a real source.