Skip to main content

Modern framework for building investigation invoker scripts with APT-like package management

Project description

Sierra Dev - Modern Invoker Framework ๐Ÿš€

Python 3.8+ License: MIT Documentation

Sierra Dev is a modern, production-grade package manager and development framework for creating and managing investigation invoker scripts for the Sierra platform.

โœจ Key Features

  • ๐Ÿ“ฆ APT-Like Package Manager - Install invokers from GitHub repositories
  • ๐Ÿ” Type Safety Validation - Automatic AST-based type checking
  • โœ… Comprehensive Validation - YAML safety, parameter validation, health checks
  • ๐ŸŽจ Rich CLI - 14 intuitive commands with emoji output
  • ๐Ÿ”„ Auto-Updates - Keep your invokers up-to-date
  • ๐Ÿ“š Built-in Documentation - Self-documenting invoker scripts

๐Ÿš€ Quick Start

Installation

# Clone the repository
git clone https://github.com/xsyncio/sierra-dev
cd sierra-dev

# Create virtual environment
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# Install Sierra Dev
pip install -e .

Usage

# Add a package repository
sierra-dev repo add https://github.com/xsyncio/sierra-invokers

# Search for packages
sierra-dev search osint

# Install a package
sierra-dev install digital-footprint

# Build your environment
sierra-dev build --env test_env

๐Ÿ“ฆ Package Manager

Sierra Dev provides an APT-like package management system:

Repository Management

sierra-dev repo add <url>      # Add repository
sierra-dev repo list            # List sources
sierra-dev repo update          # Update registries
sierra-dev repo remove <name>   # Remove source

Package Operations

sierra-dev search <query>       # Find packages
sierra-dev install <pkg>        # Install package
sierra-dev update --all         # Update all
sierra-dev remove <pkg>         # Uninstall
sierra-dev list --installed     # List installed

Development

sierra-dev build                # Compile invokers
sierra-dev check                # Run validation
sierra-dev health               # Environment status

๐Ÿ—๏ธ Project Structure

sierra-dev/
โ”œโ”€โ”€ sierra/                  # Main package
โ”‚   โ”œโ”€โ”€ package_manager/    # Package management
โ”‚   โ”œโ”€โ”€ core/               # Build & compile
โ”‚   โ”œโ”€โ”€ internal/           # Utilities
โ”‚   โ””โ”€โ”€ cli.py             # CLI interface
โ”œโ”€โ”€ docs/                   # Documentation
โ”œโ”€โ”€ test_env/              # Example env
โ””โ”€โ”€ mkdocs.yml            # Docs config

๐Ÿ“š Documentation

๐ŸŽฏ Features

Type Safety Enforcement

Automatic validation ensures all invokers have proper type annotations:

# โœ… Valid - Will pass validation
def analyze_target(domain: str, check_breach: bool = False) -> dict:
    """Analyze a target domain."""
    return {"domain": domain, "found": True}

# โŒ Invalid - Will fail validation
def analyze_target(domain, check_breach=False):  # Missing type annotations
    return {"domain": domain}

Rich Result Types

Built-in support for complex data visualization:

from sierra import Table, Timeline, Chart, Tree, respond

# Output rich results
respond(Table(
    headers=["IP", "Port", "Service"],
    rows=[["192.168.1.1", "80", "HTTP"]]
))

Comprehensive Validation

  • YAML safety checks
  • Parameter validation
  • Type annotation enforcement
  • Health diagnostics

๐Ÿ› ๏ธ Development

1. Initialize Project

sierra-dev init my_project
cd my_project

2. Create an Invoker

import sierra

invoker = sierra.InvokerScript(
    name="my_tool",
    description="Analyze a target"
)

@invoker.entry_point
def run(target: str) -> None:
    """Analyze a target."""
    result = {"target": target, "status": "analyzed"}
    sierra.respond(result)

Building

# Validate your invokers
sierra-dev check --env test_env

# Build with verbose output
sierra-dev build --env test_env -v

# Check health
sierra-dev health --env test_env

๐Ÿ“Š Statistics

  • 14 CLI Commands - Comprehensive package management
  • 6 Package Manager Modules - Full-featured package system
  • Type Safety Validation - AST-based automatic checking
  • GitHub Integration - Use existing infrastructure

๐Ÿค Contributing

Contributions are welcome! Please see our Contributing Guide.

Development Setup

# Clone repository
git clone https://github.com/xsyncio/sierra-dev
cd sierra-dev

# Install in development mode
pip install -e ".[dev]"

# Run tests
pytest

# Build documentation
mkdocs serve

๐Ÿ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ”— Links

Sierra Dev - Modern investigation tooling made simple.

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

sierra_dev-2.0.0.tar.gz (69.2 kB view details)

Uploaded Source

Built Distribution

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

sierra_dev-2.0.0-py3-none-any.whl (75.8 kB view details)

Uploaded Python 3

File details

Details for the file sierra_dev-2.0.0.tar.gz.

File metadata

  • Download URL: sierra_dev-2.0.0.tar.gz
  • Upload date:
  • Size: 69.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sierra_dev-2.0.0.tar.gz
Algorithm Hash digest
SHA256 0a7d0bf4732fad726a74ffc7c4229dd2a8cabadbd076bc2c7c2db175ba1acb7c
MD5 066bed2f61f56231e6428aff510ce232
BLAKE2b-256 f4e8d4c340b2233874312c85c6a9b82068bb73e381635f0efebcb86d3e915588

See more details on using hashes here.

Provenance

The following attestation bundles were made for sierra_dev-2.0.0.tar.gz:

Publisher: python-publish.yml on xsyncio/sierra-dev

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sierra_dev-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: sierra_dev-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 75.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sierra_dev-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 168550c9485b298f235bbe64a9033511a1c807f8da6e88f54b9af77e08d39f64
MD5 46c3798c04542d2bad6d717176a92824
BLAKE2b-256 6b38a1509669bc3541753b3466967730ef46062d6fd35690aff8d0b88575ecae

See more details on using hashes here.

Provenance

The following attestation bundles were made for sierra_dev-2.0.0-py3-none-any.whl:

Publisher: python-publish.yml on xsyncio/sierra-dev

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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