Artifacts Overview🔗
What are Artifacts?🔗
Artifacts in Apheris are metadata records that represent files generated during computation execution. They provide a standardized way to store, share, and access computational outputs across your organization and with external collaborators.
Common artifact types include:
- Checkpoints: Model states saved during training to resume from interruptions or for later evaluation
- Metrics: Performance measurements and evaluation results for model comparison and analysis
- Logs: Execution logs and debugging information for audit purposes
- Results: Final outputs and generated data for downstream processing or visualization
Who Can Share Artifacts?🔗
Artifact sharing permissions:
- Artifact creators: Can grant and revoke access to artifacts they created
- Organization admins: Can grant and revoke access to any artifact created by anyone in their organization
- Non-admin users: Can only manage access for artifacts they personally created
You manage sharing through the CLI (apheris artifacts grant/revoke) or programmatically via the API. The Governance Portal is for viewing and downloading artifacts, not for managing access grants.
Key Features🔗
1. Artifact Creation and Management🔗
Artifacts are created during computation execution and can contain multiple files. Each artifact includes:
- Unique identifier (UUID)
- Type (checkpoint, metric, log, or result)
- Human-readable name
- Associated job ID
- Custom metadata (arbitrary JSON)
- File attachments with integrity verification (MD5 hashes)
2. Access Control and Sharing🔗
Artifacts support two access paths:
Compute Access (/v1/artifacts/*)🔗
Artifacts created or read from compute pods using the injected APH_AUTH_DATA_ARTIFACT_TOKEN:
- Create artifacts and upload files during computation
- Read artifacts your compute spec is allowed to access (owned or explicitly shared)
- Intended for use inside the computation container
User Access (CLI and Governance Portal) (/v1/artifacts/*/access, /v1/shared/artifacts/*)🔗
Artifacts you can manage or consume with an Auth0 user token (apheris login):
- List artifacts you can share (organization admins see all organization artifacts; non-admins see only their own)
- Grant access to specific users (by email) or organizations (by organization ID)
- Manage and revoke access grants
- Browse artifacts you can access (owned or explicitly shared)
- Filter by artifact type and download files in the Governance Portal
- Shared endpoints return privacy-filtered creator info (no email or roles)
3. Using Shared Artifacts in Computations🔗
When an artifact is shared with you through an access grant, you can:
- Use it as input in your computations
- Reference it in your ML workflows
- Download files for local analysis (via Governance Portal)
Compute jobs access shared artifacts using the compute token (APH_AUTH_DATA_ARTIFACT_TOKEN). You can pass the shared artifact ID in your job payload or configuration and then fetch it in code with apheris_utils.artifacts.Artifact.get(...).
Complete Workflow🔗
Step 1: Create Artifacts (Data Scientist)🔗
Artifacts are automatically created during computation execution using the Apheris Utils:
from apheris_utils.artifacts import Artifact
artifact = Artifact(job_id=job_id, name="my-model-checkpoint")
artifact.add_file(local_path="model.pt")
artifact.save() # Returns artifact ID
Step 2: Share Artifacts (Artifact Owner or Organization Admin)🔗
Use the CLI to grant access to collaborators:
# List artifacts you can share
apheris artifacts list
# Grant access to a user
apheris artifacts grant -i <artifact-id> -e collaborator@partner.com
# Or grant to an entire organization
apheris artifacts grant -i <artifact-id> -o org_abc123
Step 3: Access Shared Artifacts (Artifact Consumer)🔗
Option A: View and download in the Governance Portal🔗
- Log into the Governance Portal
- Navigate to Artifacts page
- Filter by "Shared by other organization" to see artifacts shared with you
- Click an artifact to view details and download files
Option B: Use in computations🔗
# In your computation code
from apheris_utils.artifacts import Artifact
artifact = Artifact.get("<shared-artifact-id>")
# Use artifact files in your training...
Step 4: Revoke Access (Artifact Owner or Organization Admin, Optional)🔗
# View who has access
apheris artifacts list -i <artifact-id>
# Revoke access when needed
apheris artifacts revoke -i <artifact-id> -a <access-grant-id>
Integration Points🔗
- CLI: Manage artifact access grants (
apheris artifactscommands) - Governance Portal: Browse, filter, and download accessible artifacts
- Apheris Utils: Create artifacts and manage files during computation
- REST API: Programmatic access to all artifact operations