Skip to main content

Blob Storage Integration

Blob storage is an operator-side concern for registry servers. Public/default FastSkill builds do not include registry publishing, and fastskill publish does not expose direct S3 flags. Use this page only when running a FastSkill build compiled with the registry-publish feature.

Model

FastSkill separates packaging from publishing:
  1. fastskill package creates ZIP artifacts.
  2. fastskill publish sends those ZIPs to a registry API or copies them to a local directory.
  3. A registry server built with registry-publish validates accepted packages, writes artifacts to configured blob storage, and updates the registry index.

CLI Targets

# Publish to a registry API
fastskill publish --artifacts ./artifacts --api-url https://registry.example.com

# Publish through a configured repository name
fastskill publish --artifacts ./artifacts --registry official

# Copy artifacts to a local directory
fastskill publish --artifacts ./artifacts --local-dir ./upload

Server Storage

Configure blob storage in the registry server’s service configuration. S3 and S3-compatible storage require the registry-publish feature. Typical fields are:
  • storage type
  • bucket
  • region
  • endpoint for S3-compatible services
  • access key and secret key, usually sourced from deployment secrets
  • public blob base URL for generated download links
Keep credentials out of repository files. Inject them through your deployment platform or secret manager.

Workflow

# 1. Package skills
fastskill package --detect-changes --auto-bump --output ./artifacts

# 2. Publish to the registry API
fastskill publish --artifacts ./artifacts --api-url https://registry.example.com

# 3. Poll the job status if needed
curl https://registry.example.com/api/v1/registry/publish/status/{job_id}

CI Example

jobs:
  publish-skills:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Package
        run: fastskill package --git-diff HEAD~1 HEAD --auto-bump --output ./artifacts
      - name: Publish
        run: fastskill publish --artifacts ./artifacts --api-url "${FASTSKILL_API_URL}"
        env:
          FASTSKILL_API_URL: ${{ secrets.FASTSKILL_API_URL }}
          FASTSKILL_API_TOKEN: ${{ secrets.FASTSKILL_API_TOKEN }}

See Also