Artifact Types

Understand the different types of Generic artifacts and their use cases.

Supported Artifact Types

Generic artifacts support any Docker container-based execution. Here are common patterns:

Database Migrations

{
  "native": {
    "type": "generic",
    "image": "python:3.11-slim",
    "command": ["python"],
    "args": ["/workspace/scripts/migrate.py"]
  }
}

Use cases:

  • PostgreSQL schema migrations

  • MySQL database updates

  • MongoDB collection changes

  • Redis configuration updates

API Integrations

Use cases:

  • External API deployments

  • Webhook configurations

  • Third-party service integrations

  • Custom API orchestration

Custom CLI Tools

Use cases:

  • Custom Terraform providers

  • Legacy tool integrations

  • Proprietary deployment tools

  • Specialized infrastructure tools

Data Processing

Use cases:

  • ETL pipelines

  • Data transformations

  • Batch processing jobs

  • Analytics computations

Configuration Management

Use cases:

  • Ansible playbooks

  • Chef cookbooks

  • Puppet manifests

  • Custom configuration scripts

Approved Container Registries

Only images from these approved registries are allowed for security:

Important: Images from other registries will be rejected during deployment.

Common Patterns

Multi-step Workflows

Environment-specific Execution

Resource-intensive Tasks

Best Practices

Image Selection

  • Use Alpine-based images when possible (smaller size)

  • Pin to specific versions (never use latest)

  • Choose images with minimal attack surface

  • Consider multi-stage builds for complex dependencies

Script Organization

  • Keep scripts focused on single responsibility

  • Use proper error handling and exit codes

  • Implement idempotent operations

  • Include comprehensive logging

Security Considerations

  • Never hardcode secrets in images

  • Use Bluebricks secrets for sensitive data

  • Validate all inputs before processing

  • Follow principle of least privilege

See also

Last updated

Was this helpful?