Skip to main content

Vigil Client: Platform integration for artifact management and collaboration

Project description

Vigil Client

Vigil Client extends Vigil Core with platform integration, enabling collaborative artifact management and provenance tracking across teams.

Overview

Vigil Client bridges the cryptographic foundation of Vigil Core with platform features:

  • Authentication - Secure login to Vigil platform
  • Artifact Registry - Create, search, and manage typed artifacts
  • Provenance Links - Track relationships between artifacts
  • Sync Operations - Push/pull artifacts and receipts
  • Plugin System - Extensible integrations (Benchling, HuggingFace, etc.)

Installation

# Install vigil-client (includes vigil-core)
pip install vigil-client

# Or install vigil-core separately
pip install vigil-core

Quick Start

1. Authenticate

# Interactive login
vigil client login

# Check authentication status
vigil client whoami

2. Push Artifacts

# Push local receipts and artifacts to the platform
vigil client push

# Push specific receipt
vigil client push app/code/receipts/receipt_20250101T120000Z.json

3. Search and Download

# Search for artifacts
vigil client artifacts-search "genomics"

# Download an artifact
vigil client pull artifact-id

4. Link Artifacts

# Create provenance relationships
vigil client link dataset-123 run-456 --relation INPUT_OF
vigil client link run-456 model-789 --relation OUTPUT_OF

Commands

Authentication

vigil client login                    # Interactive authentication
vigil client logout                   # Clear credentials
vigil client whoami                   # Show current user info

Artifact Management

vigil client artifacts                    # List artifacts
vigil client artifacts-get <id>          # Get artifact details
vigil client artifacts-search <query>   # Search artifacts
vigil client pull <artifact-id>         # Download artifact
vigil client push                       # Upload receipts/artifacts

Provenance

vigil client link <from> <to> --relation <type>  # Create relationship

Configuration

vigil client config                        # Show current config
vigil client config-set-project <id>      # Set default project
vigil client config-set-remote <url>      # Set remote URL

Python API

from vigil_client import VigilClient
from vigil_client.auth import auth_manager
from vigil_client.models import Artifact, ArtifactType

# Get authenticated client
config = auth_manager.get_client_config()
client = VigilClient(config.remote)

# Register artifact
artifact = Artifact(
    name="my-dataset",
    type=ArtifactType.DATASET,
    uri="s3://my-bucket/data/",
    description="Training dataset"
)

result = client.create_artifact(artifact)
print(f"Created artifact: {result.id}")

# Create provenance link
from vigil_client.models import Link, LinkType

link = Link(
    from_artifact_id="dataset-123",
    to_artifact_id="run-456",
    type=LinkType.INPUT_OF
)

client.create_link(link)

Plugin System

Extend Vigil with custom integrations:

from vigil_client.plugins import BasePlugin, plugin_manager

class BenchlingPlugin(BasePlugin):
    def on_artifact_push(self, artifact):
        # Custom Benchling integration
        if artifact.type == "dataset":
            self.sync_to_benchling(artifact)

# Install plugin
plugin_manager.install_plugin(
    "benchling",
    "my_plugins.benchling",
    {"api_key": "benchling-token"}
)

Integration with Vigil Core

Vigil Client extends Vigil Core with platform integration through a unified CLI:

# Core commands (from vigil-core)
vigil run
vigil promote
vigil verify

# Platform commands (from vigil-client)
vigil client login
vigil client push
vigil client pull

The unified CLI automatically detects available packages and shows appropriate commands.

Configuration

Configuration is stored in ~/.vigil/config.json:

{
  "auth": {
    "token": "jwt-token",
    "username": "user",
    "organization": "org"
  },
  "remote": {
    "base_url": "https://api.vigil.app",
    "timeout": 30
  },
  "default_project": "proj-123"
}

Security

  • Token Storage: API tokens are stored securely using system keyring
  • HTTPS Only: All platform communication uses HTTPS
  • Scoped Access: Platform enforces project and organization boundaries

Development

# Install in development mode
pip install -e packages/vigil-client

# Run tests
pytest packages/vigil-client/tests/

# Type checking
mypy packages/vigil-client/src/

Architecture

vigil-client/
├── api/           # REST API client
├── auth/          # Authentication & config
├── cli/           # CLI commands
├── models/        # Data models
├── plugins/       # Extension system
└── extension.py   # Integration with vigil-core

See Also

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vigil_client-0.1.0.tar.gz (44.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vigil_client-0.1.0-py3-none-any.whl (43.6 kB view details)

Uploaded Python 3

File details

Details for the file vigil_client-0.1.0.tar.gz.

File metadata

  • Download URL: vigil_client-0.1.0.tar.gz
  • Upload date:
  • Size: 44.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for vigil_client-0.1.0.tar.gz
Algorithm Hash digest
SHA256 94ca10a826d565a4a317c7fbe7a70f670045774343e511dbd47e1d825947a07b
MD5 08ea50f59ac925e3caf40a32baaab7a7
BLAKE2b-256 373d1a55ca7b3d730cd4fb717b4a2b7b8ba9576f878f8872a550a5a7eab2b9ea

See more details on using hashes here.

File details

Details for the file vigil_client-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: vigil_client-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 43.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for vigil_client-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dadf64225b30c2c905b3f2547f169d1c2060663076f7a226a1ade0bbb9d3d621
MD5 3e4ab6deb3ce7548580410916cd4dfdc
BLAKE2b-256 42128f97e4bbc15d754cc5bd8f5c71abad3a9d02b1518c178d1cbefba5b599d1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page