Skip to contents

Defines deterministic, versioned public descriptors, operation discovery, request and response envelopes, validation, inspection, and exact record serialization above the unified popgenVCF runtime.

Usage

phase10_api_descriptor(api_version = "1.0.0")

phase10_api_operations(descriptor = phase10_api_descriptor())

new_public_analysis_request(
  operation_id,
  analysis_id,
  parameters = list(),
  input_ids = character(),
  api_version = "1.0.0"
)

new_public_analysis_response(
  request,
  status,
  scientific_values = list(),
  artifact_ids = character(),
  provenance_ids = character(),
  warnings = character(),
  error = NULL
)

validate_phase10_api_descriptor(descriptor)

validate_public_analysis_request(request)

validate_public_analysis_response(response, request = NULL)

inspect_public_analysis_response(response)

write_public_api_record(x, path)

read_public_api_record(path)

phase10_public_fingerprint(x)

Arguments

api_version

Public API semantic version.

descriptor

A Phase 10 public API descriptor.

operation_id

Stable public operation identifier.

analysis_id

Stable analysis or request identity.

parameters

Named public parameters.

input_ids

Named immutable input identities.

request

A validated public API request.

status

A supported terminal public response status.

scientific_values

Named scientific values or immutable references.

artifact_ids

Named artifact identities.

provenance_ids

Named provenance identities.

warnings

Character warnings.

error

Optional stable public error record with code and message.

response

A validated public API response.

x

A descriptor, request, response, or fingerprint payload.

path

Path to a public API JSON envelope.

Value

Descriptors, operation tables, validated request or response records, a one-row response summary, an invisible normalized path, a restored record, or a lowercase SHA-256 fingerprint, depending on the function.

Details

The public boundary exposes scientific values, immutable artifact identities, provenance identities, warnings, and stable errors. Mutable executor, scheduler, worker, retry, process, checkpoint, migration, and deprecation fields are rejected. Unsupported major versions, unknown operations, incompatible schemas, record mutation, and response/request identity drift fail closed.

Examples

descriptor <- phase10_api_descriptor()
phase10_api_operations(descriptor)

request <- new_public_analysis_request(
  "result.inspect",
  "analysis-001",
  input_ids = c(result = "sha256:result")
)

response <- new_public_analysis_response(
  request,
  "completed",
  scientific_values = list(global_fst = 0.12),
  artifact_ids = c(table = "artifact:fst-table"),
  provenance_ids = c(run = "provenance:run-001")
)

inspect_public_analysis_response(response)