PostProject¶
PostProject is application-neutral infrastructure for media identity, representations, locations, metadata, and provenance in post-production tools. Use the guides for workflows and integration choices, then the generated API reference for exact signatures.
Guides
- Guide for application users
- Portable production workflow
- Image sequences and spanned media
- Metadata and provenance
- Integrator guide
- Install a release without Cargo
- C quickstart
- C++ quickstart
- Python quickstart
- Create a production and import media
- External identifiers
- Media roots and resolution
- Compound-media integration
- Metadata vocabularies
- Provenance integration
- Consuming the revision feed
- Host-object bindings
- Contributor guide
- Content-structure invariants
- Metadata model rules
- Provenance model rules
- Standards policy
Concepts
API reference
- C API
PP_APIPP_OBJECT_PRODUCTIONPP_OBJECT_ASSETPP_OBJECT_REPRESENTATIONPP_OBJECT_RESOURCEPP_OBJECT_ACTIVITYPP_REPRESENTATION_ORIGINALPP_REPRESENTATION_PROXYPP_REPRESENTATION_OPTIMIZEDPP_REPRESENTATION_DERIVEDPP_CONTENT_SINGLE_RESOURCEPP_CONTENT_IMAGE_SEQUENCEPP_CONTENT_ORDERED_PARTSPP_CONTENT_PACKAGEPP_LOCATOR_UNKNOWNPP_LOCATOR_ONLINEPP_LOCATOR_OFFLINEPP_REVISION_ASSET_IMPORTEDPP_REVISION_REPRESENTATION_ADDEDPP_REVISION_RESOURCE_ADDEDPP_REVISION_REPRESENTATION_RESOURCE_ADDEDPP_REVISION_LOCATOR_ADDEDPP_REVISION_MEDIA_ROOT_ADDEDPP_REVISION_EXTERNAL_IDENTIFIER_ADDEDPP_REVISION_EXTERNAL_IDENTIFIER_REMOVEDPP_REVISION_METADATA_ADDED_OR_REPLACEDPP_REVISION_METADATA_REMOVEDPP_REVISION_ACTIVITY_CREATEDPP_REVISION_ACTIVITY_INPUT_ADDEDPP_REVISION_ACTIVITY_OUTPUT_ADDEDPP_REVISION_LOCATOR_RETIREDPP_REVISION_MEDIA_ROOT_ENABLED_CHANGEDPP_REVISION_MEDIA_ROOT_REMOVEDPP_METADATA_STRINGPP_METADATA_LANG_STRINGPP_METADATA_I64PP_METADATA_U64PP_METADATA_DECIMALPP_METADATA_BOOLPP_METADATA_TIMESTAMPPP_METADATA_URIPP_METADATA_BYTESPP_METADATA_RATIONALPP_METADATA_LISTPP_METADATA_STRUCTPP_METADATA_REFERENCEPP_OKPP_ERROR_INVALID_ARGUMENTPP_ERROR_NOT_FOUNDPP_ERROR_ALREADY_EXISTSPP_ERROR_IOPP_ERROR_STORAGEPP_ERROR_MIGRATIONPP_ERROR_CONFLICTPP_ERROR_AMBIGUOUS_RESOLUTIONPP_ERROR_FINGERPRINTPP_ERROR_UNSUPPORTEDPP_ERROR_INTERNALPP_AVAILABILITY_ONLINEPP_AVAILABILITY_PARTIALPP_AVAILABILITY_OFFLINEPP_AVAILABILITY_AMBIGUOUSPP_AVAILABILITY_ERRORPP_RESOURCE_ONLINE_AT_KNOWN_LOCATORPP_RESOURCE_RESOLVED_EXACTPP_RESOURCE_RESOLVED_PROBABLEPP_RESOURCE_OFFLINEPP_RESOURCE_AMBIGUOUSPP_RESOURCE_RESOLUTION_ERRORPP_AVAILABILITY_ISSUE_OFFLINE_RESOURCEPP_AVAILABILITY_ISSUE_AMBIGUOUS_RESOURCEPP_AVAILABILITY_ISSUE_RESOURCE_ERRORPP_AVAILABILITY_ISSUE_MISSING_FRAMESPP_EVIDENCE_KNOWN_LOCATOR_AVAILABLEPP_EVIDENCE_EXACT_FINGERPRINT_MATCHPP_EVIDENCE_FULL_HASH_MATCHPP_EVIDENCE_PARTIAL_FINGERPRINT_MATCHPP_EVIDENCE_FILE_SIZE_MATCHPP_EVIDENCE_FILE_NAME_MATCHPP_EVIDENCE_RELATIVE_PATH_SIMILARITYPP_EVIDENCE_MEDIA_ROOT_RELATIONPP_EVIDENCE_CONFLICTING_CANDIDATEPP_EVIDENCE_DISCOVERY_ERRORPP_EVIDENCE_MEDIA_ROOT_UNMAPPEDPP_EVIDENCE_MEDIA_ROOT_UNAVAILABLEpp_production_tpp_transaction_tpp_asset_set_tpp_media_root_set_tpp_representation_set_tpp_resolution_set_tpp_external_identifier_set_tpp_object_ref_set_tpp_metadata_set_tpp_metadata_value_tpp_metadata_input_tpp_activity_set_tpp_revision_set_tpp_revision_event_set_tpp_error_tpp_uuid_tpp_object_kind_tpp_representation_kind_tpp_content_structure_kind_tpp_locator_availability_tpp_revision_event_kind_tpp_metadata_value_kind_tpp_object_ref_tpp_revision_event_tpp_activity_edge_tpp_file_resource_input_tpp_media_root_mapping_tpp_error_code_tpp_representation_availability_tpp_resource_resolution_state_tpp_availability_issue_kind_tpp_evidence_kind_tpp_abi_version()pp_host_binding_format()pp_host_binding_parse()pp_host_binding_release()pp_production_create()pp_production_open()pp_production_id()pp_production_asset_exists()pp_production_assets()pp_asset_set_count()pp_asset_set_get()pp_asset_set_release()pp_production_media_roots()pp_media_root_set_count()pp_media_root_set_get()pp_media_root_set_release()pp_production_representations()pp_representation_set_count()pp_representation_set_get()pp_representation_set_get_fingerprint()pp_representation_set_get_member()pp_representation_set_get_sequence()pp_representation_set_get_sequence_missing_frame()pp_representation_set_get_resource()pp_representation_set_get_resource_fingerprint()pp_representation_set_get_locator()pp_representation_set_release()pp_production_external_identifiers()pp_production_find_by_external_identifier()pp_external_identifier_set_count()pp_external_identifier_set_get()pp_external_identifier_set_release()pp_object_ref_set_count()pp_object_ref_set_get()pp_object_ref_set_release()pp_production_metadata()pp_production_find_metadata()pp_metadata_set_count()pp_metadata_set_get()pp_metadata_set_release()pp_metadata_value_kind()pp_metadata_value_get_string()pp_metadata_value_get_i64()pp_metadata_value_get_u64()pp_metadata_value_get_decimal()pp_metadata_value_get_bool()pp_metadata_value_get_timestamp()pp_metadata_value_get_uri()pp_metadata_value_get_bytes()pp_metadata_value_get_rational()pp_metadata_value_list_count()pp_metadata_value_list_get()pp_metadata_value_struct_count()pp_metadata_value_struct_get()pp_metadata_value_get_reference()pp_metadata_input_create_string()pp_metadata_input_create_i64()pp_metadata_input_create_u64()pp_metadata_input_create_decimal()pp_metadata_input_create_bool()pp_metadata_input_create_timestamp()pp_metadata_input_create_uri()pp_metadata_input_create_bytes()pp_metadata_input_create_rational()pp_metadata_input_create_reference()pp_metadata_input_create_list()pp_metadata_input_create_struct()pp_metadata_input_release()pp_production_activities()pp_production_activities_producing()pp_production_activities_consuming()pp_production_provenance_ancestors()pp_production_provenance_descendants()pp_activity_set_count()pp_activity_set_get()pp_activity_set_get_tool()pp_activity_set_get_agent()pp_activity_set_get_input()pp_activity_set_get_output()pp_activity_set_release()pp_production_latest_revision()pp_production_changes_since()pp_revision_set_count()pp_revision_set_get()pp_revision_set_release()pp_production_revision_events()pp_revision_event_set_count()pp_revision_event_set_get()pp_revision_event_set_release()pp_production_resolve_asset()pp_resolution_set_representation_count()pp_resolution_set_get_representation()pp_resolution_set_get_resource()pp_resolution_set_get_issue()pp_resolution_set_get_issue_frame()pp_resolution_set_get_candidate()pp_resolution_set_get_resource_evidence()pp_resolution_set_get_candidate_evidence()pp_resolution_set_release()pp_production_begin_transaction()pp_production_release()pp_transaction_set_revision_context()pp_transaction_import_media()pp_transaction_add_single_file_representation()pp_transaction_add_image_sequence_representation()pp_transaction_add_ordered_parts_representation()pp_transaction_add_package_representation()pp_transaction_add_media_root()pp_transaction_set_media_root_enabled()pp_transaction_remove_media_root()pp_transaction_confirm_locator()pp_transaction_retire_locator()pp_transaction_add_external_identifier()pp_transaction_remove_external_identifier()pp_transaction_add_metadata_value()pp_transaction_remove_metadata_property()pp_transaction_create_activity()pp_transaction_commit()pp_transaction_rollback()pp_transaction_release()pp_error_code()pp_error_message()pp_error_release()pp_uuidpp_object_refpp_revision_eventpp_activity_edgepp_file_resource_inputpp_media_root_mapping
- C++17 API
- Python API
ActivityActivityCreatedEventActivityEdgeActivityIdActivityInputAddedEventActivityOutputAddedEventActivitySpecAgentIdentityAlreadyExistsErrorAmbiguousResolutionErrorAssetAssetIdAssetImportedEventAvailabilityIssueAvailabilityIssueKindConflictErrorContentStructureKindEvidenceKindExternalIdentifierExternalIdentifierAddedEventExternalIdentifierRemovedEventFileResourceInputFingerprintFingerprintErrorHostObjectBindingImageSequenceDescriptorImageSequenceInputInternalErrorInvalidArgumentErrorIoErrorLocatorLocatorAddedEventLocatorAvailabilityLocatorIdLocatorRetiredEventMediaRootMediaRootAddedEventMediaRootEnabledChangedEventMediaRootIdMediaRootRemovedEventMetadataAddedOrReplacedEventMetadataAssertionMetadataBoolMetadataBytesMetadataDecimalMetadataI64MetadataLanguageStringMetadataListMetadataPropertyMetadataRationalMetadataReferenceMetadataRemovedEventMetadataStringMetadataStructMetadataStructFieldMetadataTimestampMetadataU64MetadataUriMigrationErrorNativeLibraryNotFoundErrorOriginIdentityPostProjectErrorProductionProductionIdRepresentationRepresentationAddedEventRepresentationAvailabilityRepresentationIdRepresentationKindRepresentationMemberRepresentationResolutionRepresentationResourceAddedEventResolutionCandidateResolutionEvidenceResourceResourceAddedEventResourceIdResourceResolutionResourceResolutionStateRevisionRevisionContextRevisionEventRevisionIdStorageErrorToolIdentityTransactionTransactionIdUnsupportedError
- Compiled and tested examples
- Rust implementation reference
Engineering notes
- Architecture
- Domain model
- Media resolution
- Persistence
- Testing
- Benchmarks
- Fuzzing
- Release checklist
- Roadmap
- Iteration one acceptance report
- Iteration two acceptance report
- Iteration 3 integration findings
- Iteration 3 acceptance report
- Iteration 3 standards-impact check
- ABI policy
- ADR 0001: Project naming
- ADR 0002: Internal and external identity
- ADR 0003: Compound media model
- ADR 0004: Standards-aware metadata
- ADR 0005: Activity-based provenance
- ADR 0006: Rational time
- ADR 0007: Revision and event model
- ADR 0008: Python binding over the C ABI
- ADR 0009: Explicit SQL without an ORM
- ADR 0010: OpenAssetIO boundary
- ADR 0011: Host-object binding
- ADR 0012: Root container naming
- ADR 0013: Namespace policy
- ADR 0014: Native concurrency contract
- ADR 0015: Availability semantics and collection fingerprints
- ADR 0016: Documentation site generator
- ADR 0017: Portable root identity
- ADR 0018: Discovery index location
- ADR 0019: Media inspection boundary
- ADR 0020: Integration-preview compatibility tier