Repository navigation
InterLock 1.0.0-rc.14
Pre-release
Pre-release
·
24 commits
to main
since this release
Security
- PyJWT moves from 2.13.0 to 2.15.1. Ten advisories published against 2.13.0
(fixed in 2.14.0) failed the dependency audit on every build. PyJWT reaches
the image through the GitHub, Redis, Salesforce and Snowflake client
libraries. - urllib3 moves from 2.7.0 to 2.8.0, for three advisories fixed in 2.8.0.
InterLock depends on it directly, and throughrequests,botocoreand
PyGithub. - oauthlib moves to 4.0.0 and sentence-transformers to 5.7.0, for one
advisory each. Neither is in the published image: oauthlib comes with the
Atlassian connectors' client library and sentence-transformers with the
mlextra, but the release preflight audits both.
Added
make smoke-evalruns the quick start as an acceptance test: from an empty
Compose project it signs in with the default password and changes it,
registers the sample database through the wizard, grants an agent theread
role, and checks the redacted rows over both protocols, a refusedDELETE
and the audit record. CI runs it beside the end-to-end suite. The evaluation
guide now has two tracks: start from empty, or explore the seeded demo.
Fixed
- MCP recorded the client's
X-Correlation-IDonly on failed calls; served,
cached and denied calls were audited under a new random ID, so the ID a
client sent could not find its request in the audit log. Every MCP audit row
now carries it. Found bymake smoke-eval. - The same SQL from the same agent over MCP and then over the PostgreSQL wire
protocol shared one cache entry, so the second read got the first's format:
psqlreceived MCP's JSON and failed withlost synchronization with server, and an MCP agent could receive PostgreSQL wire bytes as its result.
The cache key now includes the protocol (key format v6, so existing entries
become misses), and each protocol checks a cached entry's format before
serving it. Reported by an independent evaluation of rc.13; covered by
end-to-end tests that compare the rowspsqland MCP decode, in both orders. - A redacted answer served from cache was audited with
pii_detectedfalse,
because no scanner ran on the hit. The redaction applied when the answer was
cached now travels with the entry in both cache tiers, and PostgreSQL, MCP
and HTTP cache hits record it; the event page marks it as redaction from
when the answer was cached. - The audit event page showed an empty correlation ID, which lives in the
request metadata, and printed policy decisions and metadata as Python
dictionaries; both now render properly. The CSV export gainsprotocoland
correlation_idcolumns (appended, so existing columns keep their
positions), and Audit & Costs gains the protocol filter the docs
described. - An MCP query the database rejected, such as one naming a column that does
not exist, returned onlytool execution failed. Query errors (SQLSTATE
classes 42, 22, 23 and 0A, and the MySQL equivalents) now return their code
and the database's primary message, as a readableisErrorresult for
handshake clients and-32602with the text for modern ones. Connection and
server errors stay opaque. Both carry a correlation ID that matches the
audit event. - The console could not register a source on a private network, such as the
quick start's sample database, because only the API could set
allow_private_egress. The new-source form, the wizard and the edit page now
have an Allow a private network address option, with the same rules as
the API. - The quick start stays in the console: the sample database is registered
through the wizard with the private-network option, the wizard's default
readrole is the agent's role (the old step that asked for one hand-made
statement did not match the role editor), both protocols run the same
statement,psqlruns inside the stack, the refused write is shown over MCP,
and a port override is given. Compose no longer warns about the optional
Anthropic and Mistral keys; the guide says no model key is needed. - HTTP sources can set
probe_path, the route Test Connection requests,
for APIs whose root answers 404; a failed test now names the path it
requested. It must be a path onbase_url. - Connector pages and the console call a connector's status its
implementation, separate from release status, and a semantic cache
strategy says semantic serving is disabled. The MCP tools reference names
the source-role action each tool needs. - The console's browser tab now follows sidebar navigation instead of staying
on the first page's title, and no longer prints that title in the page. - Docs: readable sidebar labels for guide groups; the testing page says
make loadneeds Docker and deletes its project's volumes; contributor
notes moved out of known limitations, and its release-gate line is current.
Documentation
- Two DigitalOcean deployment guides: an evaluation on one Droplet with Docker
Compose, reached through an SSH tunnel, and a production deployment on DOKS
with Managed PostgreSQL and Valkey, Traefik and Let's Encrypt. Each was
followed from an empty account to a governed, redacted query and torn down.
The DOKS guide sizes PostgreSQL by connections: six pods with the default
pool exhaust the 1 GB plan, so it uses the 2 GB plan and a pool of 4. - The documentation site is published at https://interlock.contextdata.dev by
DigitalOcean App Platform, from the spec in.do/docs-app.yaml, and is rebuilt
frommainon every push. Canonical URLs and the sitemap use that address;
DOCS_SITE_URLbuilds for another. - The DigitalOcean (DOKS) deployment and live certification gate is closed:
v1.0.0-rc.13was deployed from its signed digests to a disposable cluster,
certified (35/35 governed-core end-to-end tests, readiness across an upgrade)
and torn down by the automated workflow. The release process page cites the
run, the date and both digests.