Skip to content

Managed source API

Pilot API; not a stable SDK. Read the user workflow for availability and limitations.

POST /api/v1/projects/{project}/sources/{operation} uses an existing project-scoped bearer delegate. The JSON object includes matching project_id. Control mutations require write scope and project administration; result publication requires project publish access; reads require project access and the account’s upstream permission. Browser requests instead use /api/sources/ with session, exact Origin and CSRF proof. Desktop connectors use their independent OIDC bearer at /api/v1/connector/sources/.

Operation Additional fields
connections, list None
discover connection_id, approved OSDU kind, optional offset
preview connection_id, key, profile, optional revision
bind Preview fields, preview_digest, acknowledge_unknowns, mode
refresh, export, head, map-describe Selection id
map-snapshot Selection id, optional exact revision; GeoTIFF only
pause, resume, remove id, expected_generation
review id, expected_generation, fresh preview_digest, consent, mode, optional revision

mode is follow or pin. Consent must be true. Extra properties are rejected. The preview digest binds the reviewed exact reference, bytes and meaning; a changed source requires a new preview. Control mutations use a generation to reject stale updates. Duplicate binding creation returns the existing selection without remapping it.

The export contains manifest and payload_base64. The manifest records source namespace/key, exact string revision, mapping profile, declared metadata, media type, byte length and SHA-256. No credentials or host paths appear in the export. OSDU metadata revision identifiers are also strings to avoid browser numeric rounding.

The journal stores control state and observations; bulk authority remains upstream. Inventory is a saved observation, not evidence of current upstream authorization. Fresh preview/export obtains source data with current credentials. An upstream notification only schedules reconciliation and cannot supply a ready revision.

Bounds: 32 configured connections, 100 selections/project, 16 MiB source response, 64 KiB metadata; Parquet limits are 100,000 rows, 128 columns and 64 MiB uncompressed row groups. These are pilot bounds, not throughput or latency guarantees.

Deployment configuration uses OPHIOLITE_SOURCES_CONFIG. IT provisions account credential-file references; OSDU token renewal is external to this pilot. Optional OPHIOLITE_SOURCE_WORKER_TOKEN_FILE enables serial reconciliation for that account. A public notification receiver and multi-account scheduler are not installed.

Experimental CLI: ophiolite-sources --url https://workspace.example --token-file /private/delegate --project study connections. Add --request request.json for operation fields and --output bundle.json for exports. Output files are created exclusively with owner-only permissions. Do not put bearer tokens in request JSON.

Raster bind and review accept optional context and context_policy_revision. preview.context_policy supplies versioned unit and vertical-reference choices. Quantity and direction also use finite catalogs. The interpretation is user-declared, separate from unchanged source metadata, and included in exact exports.

result-preview and result accept the native GeoTIFF import fields (project_id, command_id, name, unit, geotiff, optional context and policy_revision) plus parent: {project_id, asset_id: selection_id, revision: source_sha256} and optional unchanged. Source and destination must belong to the same project in this pilot. replace_source must be false and processing null: native-reference telemetry cannot be substituted for external-source evidence. Upstream permission and exact source bytes are rechecked before committing. Retries reuse the command ID; changed input with that ID is refused. Derived publication preserves original result bytes, scientific values/nulls, declared context and upstream lineage. No upstream writes are issued. The same operations are available through the source CLI.