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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file scp_constructor-0.4.3.tar.gz.
File metadata
- Download URL: scp_constructor-0.4.3.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a99fd9bc2c6d7c12cf99075fa531cc0eb61c3b091394ec946fd72c0c1b67e6d
|
|
| MD5 |
7703ab2f44dfa5f86d1d293921012228
|
|
| BLAKE2b-256 |
e1e7d1a312855b14bb688e3c57b4717d22ee2616b340189d9ab29ebc441d6ed3
|
Provenance
The following attestation bundles were made for scp_constructor-0.4.3.tar.gz:
Publisher:
ci.yml on krackenservices/scp-integrations
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
scp_constructor-0.4.3.tar.gz -
Subject digest:
5a99fd9bc2c6d7c12cf99075fa531cc0eb61c3b091394ec946fd72c0c1b67e6d - Sigstore transparency entry: 834824351
- Sigstore integration time:
-
Permalink:
krackenservices/scp-integrations@7d332cb235e91af2eb279390d9d40f5942e3bc64 -
Branch / Tag:
refs/tags/constructor-v0.4.3 - Owner: https://github.com/krackenservices
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@7d332cb235e91af2eb279390d9d40f5942e3bc64 -
Trigger Event:
push
-
Statement type:
File details
Details for the file scp_constructor-0.4.3-py3-none-any.whl.
File metadata
- Download URL: scp_constructor-0.4.3-py3-none-any.whl
- Upload date:
- Size: 16.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c178d36ca1763adfce56957ca7375e670a9889d1dec835431d05421087dc677
|
|
| MD5 |
c4db9907a88a5d55329394fd9d92f7b2
|
|
| BLAKE2b-256 |
68a8a03b4f229ef84146b827106c0c4af8edc5b34a189732221893bb0e4ee231
|
Provenance
The following attestation bundles were made for scp_constructor-0.4.3-py3-none-any.whl:
Publisher:
ci.yml on krackenservices/scp-integrations
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
scp_constructor-0.4.3-py3-none-any.whl -
Subject digest:
9c178d36ca1763adfce56957ca7375e670a9889d1dec835431d05421087dc677 - Sigstore transparency entry: 834824353
- Sigstore integration time:
-
Permalink:
krackenservices/scp-integrations@7d332cb235e91af2eb279390d9d40f5942e3bc64 -
Branch / Tag:
refs/tags/constructor-v0.4.3 - Owner: https://github.com/krackenservices
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@7d332cb235e91af2eb279390d9d40f5942e3bc64 -
Trigger Event:
push
-
Statement type: