Repository navigation
Onibex ASK answers a question in natural language by resolving it against a curated
semantic layer and compiling SQL from fields it has actually resolved — never from
table or column names an LLM invented.
What is in this release
The ASK specification (definition/) — the runtime-neutral YAML contract for
Bronze/Silver/Gold data products. It carries its own version, ask-spec 1.0,
deliberately separate from the platform release: the release says which build you
run, the specification version says which contract your YAML is written against.
The platform iterates far more often than the contract, and a breaking change in
the platform should not tell everyone who adopted the specification that their
files need revisiting.
The Onibex ASK Platform (platform/) — the orchestrator, ASK Studio, ASK Chat,
ASK Setup, and the manual under platform/docs/. Containers are ask-orchestrator,
ask-admin-api, ask-mcp; the Compose project is onibex-ask; on Kubernetes the
namespace is onibex-ask.
llms.txt so an
AI agent can establish what this project is and whether it may use it.
Licensing
Source-available under a dual PolyForm Strict 1.0.0 OR PolyForm Free Trial 1.0.0
grant, © 2026 Onibex, LLC. Commercial use is covered separately by
COMMERCIAL-LICENSE.md.
Every source file that can carry a comment carries an SPDX header — 653 of them —
with a required CI job and a pre-commit hook so it stays that way. Trademark
attribution is complete for the Apache Software Foundation, SAP SE, Confluent, Inc.,
Amazon Web Services and Red Hat.
The specification is published and vendor-neutral — anyone may read and adopt it —
but it is not open source, and PolyForm Strict does not grant derivative works.
The README says so plainly, and tells a contributor what they grant.
⚠️ Coming from an earlier build
A fresh install is required. No migration path is provided.
The Compose project name prefixes the volumes, so a stack upgraded in place comes up
with no published semantic layer and no Keycloak realm. The data is still on disk
under the old volume names; copy it across before upgrading if you need it. On
Kubernetes the namespace, the XSUAA binding secret and the PVC must exist under the
new names before the manifests are applied.
The legacy agenticai prefix is retired in favour of ask, finishing a rename the
Compose service names had already started. ask-admin-spa becomes ask-studio-spa
— every screen of that interface already called itself ASK Studio. The Keycloak client
id moves with it, so a realm seeded earlier needs its client renamed or nobody logs in.
Two names that were not infrastructure came along: the Entity Selector's system prompt,
and the sign-off on generated documents, which read "Document prepared by AgenticAI
Analytics" — a retired brand reaching the customer's deliverable.
Supply chain
ask-mcp-server declared its dependency as latest with no lockfile, leaving 189
packages invisible to the licence audit and free to change on any install. Pinned to
odata-mcp-proxy 1.3.0 with the lockfile committed, and the image builds with
npm ci against it — copying only package.json and running npm install would have
left the pin decorative.
Auditing that tree surfaced three components that are not open source and were
undocumented — @sap/xssec, @sap/xsenv, ai-api-client-sdk — now named in
THIRD-PARTY-NOTICES.md.
The audit script itself had two faults: it read a dual A OR B licence as an
obligation under both, and it passed anything it did not recognise as fine — which is
how the SAP packages went unnoticed.
Versioning
One version across the repository, enforced in CI. The Python packages said 0.1.0
and the SPAs 0.0.0; nothing here is published to an index, so that number spoke only
to whoever read it, and it said the components of a stable product were unstable.
scripts/versions.py moves them together and CI fails if they drift or if a tag
disagrees with what the code claims.
Documentation
The manual calls the interface ASK Studio, like the product does. Thirteen links into
the ASK specification pointed one directory too shallow and never resolved; they do now.
Full changelog: https://github.com/Onibex/agentic-semantic-knowledge-ask/blob/main/CHANGELOG.md