semblance-foundry
Unofficial local HTTP simulation of selected Palantir Foundry API v2 ontology-read operations.
This package is not affiliated with, endorsed by, or equivalent to Palantir. It does not implement Foundry's ontology engine, permissions, or compute. It is a test double for client development and CI.
Verified against public API v2 documentation dated 2026-08-18. See compatibility.yaml (also served at /.well-known/foundry-mock-compatibility.json).
Requires semblance 0.8.x or 0.9.x (>=0.8.0,<1.0).
Install
pip install semblance-foundry
From a clone of this repository:
pip install -e ".[dev]"
pip install -e "packages/semblance-foundry[dev]"
Optional official SDK extra (not installed in default CI):
pip install "semblance-foundry[sdk]"
pytest packages/semblance-foundry/tests -m sdk
Pinned SDK: foundry-platform-sdk==1.101.0. Untested SDK versions are not implied compatible.
Quick start (HTTP)
from semblance_foundry import FoundryMock, FoundryMockConfig
from semblance_foundry.testing import foundry_test_client
foundry = FoundryMock(FoundryMockConfig(seed=42, auth="optional"))
foundry.load_bundled_fixture()
client = foundry_test_client(foundry)
r = client.get("/api/v2/ontologies/acme/objects/Employee?pageSize=2")
assert r.status_code == 200
CLI:
semblance-foundry fixture init --output foundry.yaml
semblance-foundry validate foundry.yaml
semblance-foundry operations
semblance-foundry serve --fixture foundry.yaml --port 8765
# or: semblance-foundry serve # bundled acme fixture
Environment variables for local clients (not Palantir credentials): SEMBLANCE_FOUNDRY_HOST, SEMBLANCE_FOUNDRY_TOKEN.
Auth modes
disabled— ignoreAuthorizationoptional(default) — missing token is OK; malformedBearervalues return 401strict— token must be inFoundryMockConfig.tokens
Authentication errors never echo the token. This is not an OAuth server and does not validate real Palantir credentials.
Fixtures
YAML/JSON version 1. Extra fields are rejected. Fixtures are data only — no expressions are evaluated. Register query callbacks in Python:
foundry.register_query("employeesByOffice", lambda params, state: {"data": []})
load_bundled_fixture() loads the shipped acme example (one ontology, Employee + Office, worksAt links, renameEmployee action metadata, and employeesByOffice static query result). Use load_fixture(path) for your own files.
Pagination
List endpoints use pageSize / pageToken / nextPageToken. Tokens are opaque and checksummed. Tampering or cross-resource reuse returns InvalidPageToken (400). Default page size 100, max 1000.
Known unsupported (0.1.3)
- Action apply / applyBatch —
501 UnsupportedOperationonly whenauth=strict; otherwise 404 - Aggregates, object sets, datasets, transactions, orchestration, streams
- Search filters other than
eqandandofeq(400InvalidQuery)
Unknown paths return Foundry-style 404.
Compatibility matrix (MVP)
| Level | Operations |
|---|---|
| exact | list/get ontologies, object types, objects, linked objects, action types (metadata), query types |
| representative | object search (eq/and), query execute (static or callback) |
| unsupported | apply, applyBatch |
Security
- Do not put production secrets in fixtures or tokens used with this mock
- Tokens are compared in-process and never written to error bodies
- Query/action behavior must be allow-listed Python, never YAML eval
License
MIT. Palantir and Foundry are trademarks of their respective owners.
Metadata
Release files for semblance-foundry 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| semblance_foundry-0.1.3.tar.gz | 22.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| semblance_foundry-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 48.8 kB
Release files / semblance_foundry-0.1.3.tar.gz
| Download URL | semblance_foundry-0.1.3.tar.gz |
|---|---|
| Size | 22.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
924e635174a2fb43f816c08af3ff4c3272d6853b4c97cb0091629e19d1b98e1b
|
|
BLAKE2b-256 checksum How to use checksums |
3fd9f0fd00307f122f90ebb22be6c9e2bd8e626560761f00563de9680df8d34a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.
Transparency logRelease files / semblance_foundry-0.1.3-py3-none-any.whl
| Download URL | semblance_foundry-0.1.3-py3-none-any.whl |
|---|---|
| Size | 26.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
013d91f07fa0c2fd9db6f33099a7116595b4bbde39646bc9c00acb191fa5818b
|
|
BLAKE2b-256 checksum How to use checksums |
86ce612c915e20349a74a05468e85a627217679ea6eb6201be480a710f38f191
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.
Transparency log