Skip to main content

Build architecture models from scp.yaml files

Project description

SCP Constructor

Build architecture graphs from scp.yaml files. Scan local directories or GitHub organizations, validate manifests, sync to Neo4j, and export to JSON, Mermaid, or OpenC2 actuator profiles.

Installation

uv sync

Usage

Validate SCP Files

uv run scp-cli validate ./examples

Scan Local Directory

# Scan and export to Mermaid
uv run scp-cli scan ./path/to/repos --export mermaid

# Scan and export to JSON
uv run scp-cli scan ./path/to/repos --export json -o graph.json

# Scan and export OpenC2 actuator profile (for SOAR)
uv run scp-cli scan ./path/to/repos --export openc2 -o actuators.json

Transform JSON to Other Formats

# Scan once, transform many
uv run scp-cli scan ./repos --export json -o graph.json
uv run scp-cli transform graph.json --export mermaid -o diagram.mmd
uv run scp-cli transform graph.json --export openc2 -o actuators.json

Scan GitHub Organization

export GITHUB_TOKEN=ghp_xxx
uv run scp-cli scan-github myorg --export mermaid

Sync to Neo4j

# Export directly to Neo4j
uv run scp-cli scan ./repos --export neo4j --neo4j-uri bolt://localhost:7687

# Or use environment variables
export NEO4J_URI=bolt://localhost:7687
export NEO4J_USER=neo4j
export NEO4J_PASSWORD=password

uv run scp-cli scan ./repos --export neo4j

Commands

Command Description
scp-cli validate <path> Validate SCP files
scp-cli scan <path> Scan local directory
scp-cli scan-github <org> Scan GitHub org
scp-cli transform <json> Transform JSON to other formats
scp-cli version Show version

Export Formats

  • JSON: Graph with nodes/edges arrays
  • Mermaid: Flowchart diagram with tier styling
  • OpenC2: Actuator profile for SOAR integration
  • Neo4j: Direct sync to Neo4j graph database

Environment Variables

Variable Description
GITHUB_TOKEN GitHub PAT for org scanning
NEO4J_URI Neo4j connection URI
NEO4J_USER Neo4j username
NEO4J_PASSWORD Neo4j password

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

scp_constructor-0.4.2.tar.gz (31.6 kB view details)

Uploaded Source

Built Distribution

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

scp_constructor-0.4.2-py3-none-any.whl (16.6 kB view details)

Uploaded Python 3

File details

Details for the file scp_constructor-0.4.2.tar.gz.

File metadata

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

File hashes

Hashes for scp_constructor-0.4.2.tar.gz
Algorithm Hash digest
SHA256 c87bb8487de84078f113ca0be2fe855801221177d8920a851c34a279852c1bd1
MD5 f1cbd4d4a82da10783ef1c093d728ccb
BLAKE2b-256 4ab3bd5d9b422a4fee1e50e96825fd898d281b99f2daed5f50cfe49257fa8d95

See more details on using hashes here.

Provenance

The following attestation bundles were made for scp_constructor-0.4.2.tar.gz:

Publisher: ci.yml on krackenservices/scp-integrations

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

File details

Details for the file scp_constructor-0.4.2-py3-none-any.whl.

File metadata

File hashes

Hashes for scp_constructor-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5bd0e449e446548e2f212a34c993ba439ca27bfcc617abd7c71e7ae972e7b9fd
MD5 8e1dec357bfc5a9caf7ab8feef87c847
BLAKE2b-256 c87fe5d5c6c4ac417c5822b275f37f1a5dff4fe19a5d6984a1052e012c1e61f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for scp_constructor-0.4.2-py3-none-any.whl:

Publisher: ci.yml on krackenservices/scp-integrations

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