secgraphai 1.0.0rc1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- secgraphai-1.0.0rc1/.github/workflows/ci.yml +51 -0
- secgraphai-1.0.0rc1/.github/workflows/deep-security.yml +44 -0
- secgraphai-1.0.0rc1/.github/workflows/release.yml +35 -0
- secgraphai-1.0.0rc1/.github/workflows/security.yml +40 -0
- secgraphai-1.0.0rc1/.gitignore +12 -0
- secgraphai-1.0.0rc1/.hypothesis/.gitignore +9 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/00c79b23b3a4731d +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/03903408e6ec0fcd +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/03c7900637dec143 +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/0550354c9828334d +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/0ad7a417881b5e2f +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/0e1404082b00bf3e +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/0e730d4a35917c80 +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/1256bf512abf999b +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/13ddb56c93054742 +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/17bb152ddb6eda64 +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/1863497317d95972 +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/2ae4e5ca09dd1472 +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/35b8474cfb611e04 +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/373954cfba184222 +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/457ccc1355f72abe +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/4e0113644b40370f +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/4f65fc5ceb965987 +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/53594f3abb8d0bb1 +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/594d49c6a361d903 +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/5bd1ff3f86003943 +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/63365995458d761c +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/68cdaef8b5af732e +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/6b42f66b3560a7e2 +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/6c8d8b43a35f89cb +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/7a1631ce034da8b3 +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/8d1347f4554e562f +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/96dd42550b2ebc7e +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/9ffc2aa542b5d099 +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/a2eabf9a65f9e727 +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/aa2d985d0efcca81 +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/b5befa58771c59d5 +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/b62ab6adfcfd8e16 +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/bad1bf67bf75338c +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/cf7dc441e460f488 +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/d19dd4c0425a4b1b +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/e79554e1cb15be15 +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/f15e97de0390a51d +4 -0
- secgraphai-1.0.0rc1/.hypothesis/constants/f6018d68f0966e42 +4 -0
- secgraphai-1.0.0rc1/.hypothesis/unicode_data/15.1.0/charmap.json.gz +0 -0
- secgraphai-1.0.0rc1/.hypothesis/unicode_data/15.1.0/codec-v2-utf-8.json.gz +0 -0
- secgraphai-1.0.0rc1/CHANGELOG.md +47 -0
- secgraphai-1.0.0rc1/LICENSE +18 -0
- secgraphai-1.0.0rc1/PKG-INFO +208 -0
- secgraphai-1.0.0rc1/README.md +118 -0
- secgraphai-1.0.0rc1/SECURITY.md +21 -0
- secgraphai-1.0.0rc1/SECURITY_REVIEW.md +43 -0
- secgraphai-1.0.0rc1/SecGraphAI_PRD_v3.1_CVE_OWASP.md +4421 -0
- secgraphai-1.0.0rc1/THREAT_MODEL.md +31 -0
- secgraphai-1.0.0rc1/demo/__init__.py +1 -0
- secgraphai-1.0.0rc1/demo/app.py +79 -0
- secgraphai-1.0.0rc1/demo/assessment.py +114 -0
- secgraphai-1.0.0rc1/docs/RELEASING.md +50 -0
- secgraphai-1.0.0rc1/docs/USER_GUIDE.md +815 -0
- secgraphai-1.0.0rc1/fuzz/fuzz_parsers.py +32 -0
- secgraphai-1.0.0rc1/pyproject.toml +110 -0
- secgraphai-1.0.0rc1/secgraphai.cdx.json +454 -0
- secgraphai-1.0.0rc1/src/secgraphai/__init__.py +102 -0
- secgraphai-1.0.0rc1/src/secgraphai/adapters.py +289 -0
- secgraphai-1.0.0rc1/src/secgraphai/attacks.py +375 -0
- secgraphai-1.0.0rc1/src/secgraphai/canary.py +41 -0
- secgraphai-1.0.0rc1/src/secgraphai/cli.py +778 -0
- secgraphai-1.0.0rc1/src/secgraphai/config.py +102 -0
- secgraphai-1.0.0rc1/src/secgraphai/core.py +151 -0
- secgraphai-1.0.0rc1/src/secgraphai/dashboard.py +475 -0
- secgraphai-1.0.0rc1/src/secgraphai/discovery.py +465 -0
- secgraphai-1.0.0rc1/src/secgraphai/evaluation.py +117 -0
- secgraphai-1.0.0rc1/src/secgraphai/graph.py +191 -0
- secgraphai-1.0.0rc1/src/secgraphai/instrumentation.py +178 -0
- secgraphai-1.0.0rc1/src/secgraphai/intelligence.py +786 -0
- secgraphai-1.0.0rc1/src/secgraphai/invariants.py +180 -0
- secgraphai-1.0.0rc1/src/secgraphai/lifecycle.py +414 -0
- secgraphai-1.0.0rc1/src/secgraphai/model.py +76 -0
- secgraphai-1.0.0rc1/src/secgraphai/multimodal.py +38 -0
- secgraphai-1.0.0rc1/src/secgraphai/packs/__init__.py +1 -0
- secgraphai-1.0.0rc1/src/secgraphai/packs/official_ed25519.pub +1 -0
- secgraphai-1.0.0rc1/src/secgraphai/packs/prompt_injection_core.yaml +47 -0
- secgraphai-1.0.0rc1/src/secgraphai/plugins.py +201 -0
- secgraphai-1.0.0rc1/src/secgraphai/policy.py +144 -0
- secgraphai-1.0.0rc1/src/secgraphai/provenance.py +73 -0
- secgraphai-1.0.0rc1/src/secgraphai/reporting.py +184 -0
- secgraphai-1.0.0rc1/src/secgraphai/research.py +61 -0
- secgraphai-1.0.0rc1/src/secgraphai/roles.py +130 -0
- secgraphai-1.0.0rc1/src/secgraphai/runtime.py +304 -0
- secgraphai-1.0.0rc1/src/secgraphai/scanner.py +593 -0
- secgraphai-1.0.0rc1/src/secgraphai/schemas.py +140 -0
- secgraphai-1.0.0rc1/src/secgraphai/security.py +211 -0
- secgraphai-1.0.0rc1/src/secgraphai/security_modules.py +897 -0
- secgraphai-1.0.0rc1/src/secgraphai/self_security.py +212 -0
- secgraphai-1.0.0rc1/src/secgraphai/static/app.js +11 -0
- secgraphai-1.0.0rc1/src/secgraphai/static/index.html +43 -0
- secgraphai-1.0.0rc1/src/secgraphai/static/styles.css +9 -0
- secgraphai-1.0.0rc1/src/secgraphai/storage.py +260 -0
- secgraphai-1.0.0rc1/src/secgraphai/supply_chain.py +64 -0
- secgraphai-1.0.0rc1/src/secgraphai/targets.py +368 -0
- secgraphai-1.0.0rc1/src/secgraphai/validators.py +284 -0
- secgraphai-1.0.0rc1/tests/test_cli.py +18 -0
- secgraphai-1.0.0rc1/tests/test_core.py +25 -0
- secgraphai-1.0.0rc1/tests/test_graph_invariants.py +104 -0
- secgraphai-1.0.0rc1/tests/test_model_roles.py +87 -0
- secgraphai-1.0.0rc1/tests/test_modes_replay.py +185 -0
- secgraphai-1.0.0rc1/tests/test_prd_attacks_policy.py +158 -0
- secgraphai-1.0.0rc1/tests/test_prd_benchmark.py +76 -0
- secgraphai-1.0.0rc1/tests/test_prd_cli_commands.py +194 -0
- secgraphai-1.0.0rc1/tests/test_prd_coverage_security.py +270 -0
- secgraphai-1.0.0rc1/tests/test_prd_future_modules.py +94 -0
- secgraphai-1.0.0rc1/tests/test_prd_gap_branches.py +409 -0
- secgraphai-1.0.0rc1/tests/test_prd_gap_closure.py +642 -0
- secgraphai-1.0.0rc1/tests/test_prd_lifecycle_intelligence.py +158 -0
- secgraphai-1.0.0rc1/tests/test_prd_model_plugins_selfaudit.py +123 -0
- secgraphai-1.0.0rc1/tests/test_prd_properties.py +68 -0
- secgraphai-1.0.0rc1/tests/test_prd_scanner_dashboard.py +236 -0
- secgraphai-1.0.0rc1/tests/test_prd_schemas.py +17 -0
- secgraphai-1.0.0rc1/tests/test_prd_security_branches.py +113 -0
- secgraphai-1.0.0rc1/tests/test_prd_targets_modules.py +168 -0
- secgraphai-1.0.0rc1/tests/test_product_capabilities.py +178 -0
- secgraphai-1.0.0rc1/tests/test_runtime_scanner_reporting.py +43 -0
- secgraphai-1.0.0rc1/tests/test_security.py +39 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
push:
|
|
6
|
+
branches: [main]
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
test:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
strategy:
|
|
15
|
+
fail-fast: false
|
|
16
|
+
matrix:
|
|
17
|
+
python-version: ['3.11', '3.12', '3.13', '3.14']
|
|
18
|
+
steps:
|
|
19
|
+
- uses: actions/checkout@v7
|
|
20
|
+
- uses: actions/setup-python@v7
|
|
21
|
+
with:
|
|
22
|
+
python-version: ${{ matrix.python-version }}
|
|
23
|
+
cache: pip
|
|
24
|
+
- run: python -m pip install --upgrade pip 'setuptools>=83'
|
|
25
|
+
- run: python -m pip install -e '.[test,api,security]'
|
|
26
|
+
- run: python -m ruff check src tests demo
|
|
27
|
+
- run: python -m mypy src
|
|
28
|
+
- run: python -m bandit -q -r src
|
|
29
|
+
- run: python -m coverage run --branch -m pytest -q
|
|
30
|
+
- run: python -m coverage report --include='src/secgraphai/*' --fail-under=90
|
|
31
|
+
- run: python -m pip_audit
|
|
32
|
+
- run: python -m build
|
|
33
|
+
- run: python -m pip install --force-reinstall --no-deps dist/*.whl
|
|
34
|
+
- run: secgraph --help
|
|
35
|
+
|
|
36
|
+
secrets:
|
|
37
|
+
runs-on: ubuntu-latest
|
|
38
|
+
steps:
|
|
39
|
+
- uses: actions/checkout@v7
|
|
40
|
+
with:
|
|
41
|
+
fetch-depth: 0
|
|
42
|
+
- uses: actions/setup-python@v7
|
|
43
|
+
with:
|
|
44
|
+
python-version: '3.13'
|
|
45
|
+
- run: python -m pip install detect-secrets
|
|
46
|
+
- run: detect-secrets scan --all-files --exclude-files '(^|/)(tests|\.git)/|SecGraphAI_PRD' > secrets-report.json
|
|
47
|
+
- uses: actions/upload-artifact@v7
|
|
48
|
+
if: always()
|
|
49
|
+
with:
|
|
50
|
+
name: secrets-report
|
|
51
|
+
path: secrets-report.json
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
name: Deep security
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
schedule:
|
|
5
|
+
- cron: '29 4 * * 6'
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
mutation:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v7
|
|
16
|
+
- uses: actions/setup-python@v7
|
|
17
|
+
with:
|
|
18
|
+
python-version: '3.13'
|
|
19
|
+
- run: python -m pip install -e '.[test,api,security]' 'mutmut>=3,<4'
|
|
20
|
+
- run: mutmut run
|
|
21
|
+
- if: always()
|
|
22
|
+
run: mutmut results
|
|
23
|
+
|
|
24
|
+
fuzz-and-dynamic:
|
|
25
|
+
runs-on: ubuntu-latest
|
|
26
|
+
steps:
|
|
27
|
+
- uses: actions/checkout@v7
|
|
28
|
+
- uses: actions/setup-python@v7
|
|
29
|
+
with:
|
|
30
|
+
python-version: '3.13'
|
|
31
|
+
- run: python -m pip install -e '.[test,api,fuzz]'
|
|
32
|
+
- run: python -m pytest -q tests/test_prd_properties.py tests/test_prd_scanner_dashboard.py tests/test_prd_benchmark.py
|
|
33
|
+
- run: python fuzz/fuzz_parsers.py -runs=10000 -max_len=65536
|
|
34
|
+
|
|
35
|
+
self-dogfood:
|
|
36
|
+
runs-on: ubuntu-latest
|
|
37
|
+
steps:
|
|
38
|
+
- uses: actions/checkout@v7
|
|
39
|
+
- uses: actions/setup-python@v7
|
|
40
|
+
with:
|
|
41
|
+
python-version: '3.13'
|
|
42
|
+
- run: python -m pip install -e '.[test,api,security]'
|
|
43
|
+
- run: python -m secgraphai.cli self-audit --deep
|
|
44
|
+
- run: pytest -q tests/test_prd_scanner_dashboard.py tests/test_prd_security_branches.py
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
|
|
7
|
+
permissions:
|
|
8
|
+
contents: read
|
|
9
|
+
id-token: write
|
|
10
|
+
attestations: write
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
publish:
|
|
14
|
+
environment: pypi
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v7
|
|
18
|
+
- uses: actions/setup-python@v7
|
|
19
|
+
with:
|
|
20
|
+
python-version: '3.13'
|
|
21
|
+
- run: python -m pip install --upgrade pip 'setuptools>=83'
|
|
22
|
+
- run: python -m pip install -e '.[test,api,security]'
|
|
23
|
+
- run: python -m coverage run --branch -m pytest -q
|
|
24
|
+
- run: python -m coverage report --include='src/secgraphai/*' --fail-under=90
|
|
25
|
+
- run: python -m pip_audit
|
|
26
|
+
- run: python -m secgraphai.cli sbom generate --output secgraphai.cdx.json
|
|
27
|
+
- run: python -m build
|
|
28
|
+
- uses: actions/attest-build-provenance@v4
|
|
29
|
+
with:
|
|
30
|
+
subject-path: 'dist/*'
|
|
31
|
+
- uses: pypa/gh-action-pypi-publish@release/v1
|
|
32
|
+
- uses: actions/upload-artifact@v7
|
|
33
|
+
with:
|
|
34
|
+
name: release-sbom
|
|
35
|
+
path: secgraphai.cdx.json
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
name: Security
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
schedule:
|
|
6
|
+
- cron: '17 3 * * 1'
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
security-events: write
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
codeql:
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v7
|
|
18
|
+
- uses: github/codeql-action/init@v4
|
|
19
|
+
with:
|
|
20
|
+
languages: python
|
|
21
|
+
- uses: github/codeql-action/analyze@v4
|
|
22
|
+
|
|
23
|
+
semgrep:
|
|
24
|
+
runs-on: ubuntu-latest
|
|
25
|
+
container: semgrep/semgrep
|
|
26
|
+
steps:
|
|
27
|
+
- uses: actions/checkout@v7
|
|
28
|
+
- run: semgrep scan --config p/python --config p/security-audit --error src
|
|
29
|
+
|
|
30
|
+
adversarial:
|
|
31
|
+
runs-on: ubuntu-latest
|
|
32
|
+
steps:
|
|
33
|
+
- uses: actions/checkout@v7
|
|
34
|
+
- uses: actions/setup-python@v7
|
|
35
|
+
with:
|
|
36
|
+
python-version: '3.13'
|
|
37
|
+
- run: python -m pip install --upgrade pip 'setuptools>=83'
|
|
38
|
+
- run: python -m pip install -e '.[test,api,security]'
|
|
39
|
+
- run: pytest -q tests/test_prd_properties.py tests/test_prd_benchmark.py tests/test_prd_security_branches.py
|
|
40
|
+
- run: python -m secgraphai.cli self-audit --deep
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# This .gitignore file was automatically created by Hypothesis. Hypothesis gitignores
|
|
2
|
+
# .hypothesis by default, because we generally recommend that .hypothesis not be checked
|
|
3
|
+
# into version control.
|
|
4
|
+
#
|
|
5
|
+
# If you *would* like to check .hypothesis into version control, you should delete this
|
|
6
|
+
# file. Hypothesis will not re-create this .gitignore unless .hypothesis is deleted (and
|
|
7
|
+
# if it does, that's a bug - please report it!)
|
|
8
|
+
|
|
9
|
+
*
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/storage.py
|
|
2
|
+
# hypothesis_version: 6.167.1
|
|
3
|
+
|
|
4
|
+
[100, 200, 448, 1000, ' WHERE scan_id = ?', 'attack_paths', 'baselines', 'bundles', 'document', 'documents', 'edges', 'enc:v1:', 'events', 'findings', 'graph_edges', 'graph_nodes', 'invalid pagination', 'jobs', 'json', 'links', 'nodes', 'plugin_registry', 'policies', 'reports', 'risk_paths', 'scans', 'secgraph.db', 'secgraphai', 'targets']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/SecGraphAI/SecGraphAI/demo/app.py
|
|
2
|
+
# hypothesis_version: 6.167.1
|
|
3
|
+
|
|
4
|
+
[100, 403, 404, 500, 10000, 100000, '/agent', '/email', '/rag', '/records/{record_id}', '/refund', '@example.test', 'A', 'B', 'a-1', 'a-safe', 'alice@example.test', 'amount', 'answer', 'api_key', 'approval required', 'b-1', 'b-poison', 'bob@example.test', 'email', 'false', 'forbidden', 'id', 'ignore previous', 'loop', 'not found', 'processed', 'refund', 'refunded', 'request rejected', 'secret', 'sent', 'ssn', 'status', 'tenant', 'text', 'tool_calls', 'tools', 'true']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/intelligence.py
|
|
2
|
+
# hypothesis_version: 6.167.1
|
|
3
|
+
|
|
4
|
+
[0.25, 0.7, 1.0, 10.0, 30.0, 100, 304, 429, 512, 2000, 2048, 8192, 10000, 20000000, '*', ',', '-', '.cve-', '.json', '1.6', '2.3', ':', '<', '<=', '>', '>=', 'AFFECTED', 'CC0-1.0', 'CVE-\\d{4}-\\d{4,}', 'CWE-', 'CycloneDX', 'DISCOVERED', 'GET', 'If-Modified-Since', 'If-None-Match', 'MITIGATED', 'NOASSERTION', 'NOT_AFFECTED', 'NOT_APPLICABLE', 'NVD', 'NVD_API_KEY', 'Name', 'PACKAGE-MANAGER', 'PARTIAL', 'PRESENT', 'REACHABLE', 'SECURITY', 'SPDX-2.3', 'SPDXID', 'SPDXRef-DOCUMENT', 'SecGraphAI', 'SecGraphAI SBOM', 'TESTED', 'TEST_ERROR', 'Tool: SecGraphAI', 'VERIFIED_CONTROL', 'VERIFIED_FINDING', 'VERIFIED_IN_LAB', '\\', 'a', 'affected_ranges', 'affected_versions', 'agentic-2026', 'aliases', 'api-2023', 'apiKey', 'baseScore', 'bomFormat', 'complete', 'component', 'components', 'conditional', 'configurations', 'covered', 'cpe', 'cpe23Type', 'cpeMatch', 'created', 'creationInfo', 'creators', 'criteria', 'cve', 'cveID', 'cve_ids', 'cvss', 'cvssData', 'cwe_ids', 'dataLicense', 'delta', 'description', 'descriptions', 'documentNamespace', 'downloadLocation', 'en', 'environmentalScore', 'etag', 'externalRefs', 'filesAnalyzed', 'full', 'http', 'https', 'id', 'keywordSearch', 'known_exploited', 'lang', 'last-modified', 'lastModEndDate', 'lastModStartDate', 'lastModified', 'last_modified', 'library', 'llm-2026', 'metadata', 'metrics', 'missing', 'mode', 'name', 'next_start_index', 'nodes', 'not_modified', 'packages', 'percent', 'profile', 'properties', 'published', 'purl', 'pypi', 'query', 'reachable', 'records', 'referenceCategory', 'referenceLocator', 'referenceType', 'references', 'resultsPerPage', 'results_per_page', 'retry-after', 'retry_after', 'schema_version', 'secgraphai', 'severity', 'source', 'sourceIdentifier', 'spdxVersion', 'specVersion', 'ssvc', 'startIndex', 'start_index', 'states', 'status', 'synchronized_at', 'test_errors', 'threatScore', 'timestamp', 'tools', 'totalResults', 'total_results', 'type', 'unknown', 'url', 'utf-8', 'value', 'vectorString', 'vendor', 'version', 'versionEndExcluding', 'versionEndIncluding', 'versionInfo', 'vulnerabilities', 'vulnerable', 'w', 'weaknesses', 'web-2025']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/core.py
|
|
2
|
+
# hypothesis_version: 6.167.1
|
|
3
|
+
|
|
4
|
+
['1.0', '1.0.0rc1', 'BLOCKED_BY_CONTROL', 'CRITICAL', 'DERIVED', 'DETERMINISTIC', 'HIGH', 'INCONCLUSIVE', 'INFO', 'LIKELY_VIOLATION', 'LOW', 'MEDIUM', 'OUT_OF_SCOPE', 'PASS', 'PROBABILISTIC', 'TEST_ERROR', 'VERIFIED_VIOLATION', 'cost_usd', 'external_calls', 'forbid', 'input_tokens', 'model_calls', 'output_tokens', 'retries', 'retrieval_calls', 'tool_calls', 'wall_time_ms']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/security_modules.py
|
|
2
|
+
# hypothesis_version: 6.167.1
|
|
3
|
+
|
|
4
|
+
[0.8, 429, 500, '*', '127.0.0.1', 'A02', 'A04', 'A10', 'AGENT-APPROVAL', 'AGENT-AUTHZ', 'AGENT-COST', 'AGENT-DELEGATION', 'AGENT-GOAL', 'AGENT-INTENT', 'AGENT-MEMORY', 'AGENT-MESSAGE', 'AGENT-PRIVILEGE', 'AGENT-RECURSION', 'AGENT-SCHEMA', 'AGENT-STATE', 'API-AI-COST', 'API-AUTHN', 'API-AUTHZ', 'API-DEBUG', 'API-ERROR', 'API-EXPECTATION', 'API-PAGINATION', 'API-PAYLOAD', 'API-PROPERTY-AUTHZ', 'API-RATE', 'API-SCHEMA', 'API-SSRF', 'API1', 'API2', 'API3', 'API4', 'API5', 'API7', 'API8', 'ASI01', 'ASI02', 'ASI03', 'ASI04', 'ASI06', 'ASI07', 'ASI08', 'ASI09', 'ASI10', 'BEHAVIOR_CHANGED', 'GET', 'INVARIANT_VIOLATED', 'LLM01', 'LLM02', 'LLM05', 'LLM06', 'LLM07', 'LLM08', 'LLM09', 'MCP-APPROVAL', 'MCP-AUTHZ', 'MCP-CHAIN', 'MCP-CREDENTIAL', 'MCP-DESTINATION', 'MCP-DRIFT', 'MCP-EXPOSURE', 'MCP-INJECTION', 'MCP-METADATA', 'MCP-ORIGIN', 'MCP-OUTPUT-INJECTION', 'MCP-TOKEN-SCOPE', 'MCP-TRANSPORT', 'OWASP', 'POLICY_DEVIATION', 'RAG-AUTHZ', 'RAG-CANARY', 'RAG-CITATION', 'RAG-CLEANUP', 'RAG-CONFIG', 'RAG-CROSS-TENANT', 'RAG-FLOOD', 'RAG-INJECTION', 'RAG-METADATA', 'RAG-POISON', 'RAG-PROVENANCE', 'RAG-SENSITIVE', 'REACHED_MODEL', 'TOOL_EXECUTED', 'TOOL_REQUESTED', '[::1]', 'access_token', 'actual_state', 'admin', 'agent', 'agent_message', 'all', 'allowed', 'allowedOrigins', 'allowed_origins', 'annotations', 'api_key', 'approved', 'authorization', 'authorized', 'baseline', 'bearer ', 'callback', 'callsTools', 'calls_tools', 'chain', 'citation', 'confidential', 'content', 'credit_card', 'cross-agent', 'delegation', 'delete', 'description', 'destinations', 'direct', 'document', 'downstream', 'error', 'events', 'exception', 'expected', 'expected_state', 'external', 'external-action', 'externalDestinations', 'function', 'get', 'goal', 'goal_change', 'hierarchy', 'high', 'http://', 'identity', 'ignore previous', 'in_intent', 'indirect', 'instruction', 'inventory', 'keys', 'kind', 'limit', 'localhost', 'maxProperties', 'max_results', 'maximum', 'mcp', 'mcp-resource', 'memory', 'memory_write', 'metadata', 'metadata_filtering', 'method', 'multi-agent', 'multi-turn', 'multimodal', 'name', 'namespace_isolation', 'obfuscated', 'object', 'observed', 'operation', 'origins', 'outputSchema', 'override', 'override policy', 'owner', 'page_size', 'pagesize', 'parameters', 'password', 'patch', 'path', 'paths', 'permissions', 'pii', 'post', 'privilege_change', 'privileged', 'problem', 'provenance', 'put', 'rag', 'rag-injection', 'requestBody', 'requesting', 'requests', 'requiresApproval', 'responses', 'reveal secret', 'risk', 'root', 'schema', 'scopes', 'secgraphai', 'secret', 'security', 'send secret', 'sensitivity', 'sequence', 'server', 'setting', 'source', 'sqlalchemy', 'ssn', 'stack trace', 'state', 'state_transition', 'status', 'statuses', 'synthetic', 'system override', 'system-extraction', 'system_prompt', 'tenant', 'token', 'tokenScopes', 'token_scopes', 'tool', 'tool-calls', 'tool-output', 'tool-schema', 'tool_schema_change', 'tools', 'traceback', 'trusted-test', 'trusted_as_control', 'type', 'unknown', 'untrusted', 'upload', 'uploaded-document', 'uri', 'url', 'user', 'web', 'web-content', 'webhook', 'x-ai-endpoint', 'x-cost-limit', 'x-debug', 'x-rate-limit']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/cli.py
|
|
2
|
+
# hypothesis_version: 6.167.1
|
|
3
|
+
|
|
4
|
+
[100, 120, 443, 1000, 8000, 8777, '--against', '--allow-private', '--allow-unverified', '--api-key-env', '--baseline', '--budget-usd', '--cache', '--config', '--dashboard', '--database', '--deep', '--encryption-key-env', '--event', '--fail-on-regression', '--fail-on-violation', '--force', '--format', '--host', '--mask-pii', '--max-duration', '--max-requests', '--minimum-percent', '--mode', '--model', '--output', '--port', '--profile', '--public-key', '--query', '--retention-days', '--root', '--target', '--token-env', '-c', '-o', '.', '.secgraph/baselines', '127.0.0.1', ':', '::1', 'Component', 'Count', 'NO_SECRET_EXFIL', 'Python', 'SAFE', '__main__', 'adaptive', 'affected', 'age_seconds', 'agent', 'allowed_hosts', 'allowed_ports', 'api', 'api_key_env', 'attacks', 'audit', 'base_url', 'baseline', 'blocked_networks', 'bom.json', 'bundle', 'cached', 'cloud_upload', 'compare', 'components', 'counts', 'coverage', 'create', 'cve', 'cve-cache.json', 'cyclonedx', 'deny', 'description', 'destination', 'dev', 'diff', 'draft-pack.json', 'engines', 'etag', 'expected', 'external', 'fetched', 'gate', 'generate', 'generate-test', 'graph', 'http://', 'https', 'https://', 'id', 'identity', 'import', 'init', 'inputs', 'inspect', 'invariants', 'json', 'last-(\\d+)-days', 'last_modified', 'llm', 'llm-2026', 'localhost', 'mask_pii', 'max_duration_seconds', 'max_total_requests', 'mcp', 'media', 'metadata', 'mode', 'model', 'new', 'next_start_index', 'official', 'openapi', 'owasp', 'owasp-agentic-2026', 'owasp-api-2023', 'owasp-full', 'owasp-llm-2026', 'owasp-web-2025', 'packs', 'passed', 'plugins', 'policy', 'privacy', 'prompt-injection', 'pytest', 'query', 'rag', 'reachable', 'reasons', 'regressions', 'render', 'replay', 'report', 'require_stable_dns', 'research', 'resumed_from', 'review', 'safe', 'sbom', 'scan', 'scan_id', 'schemas', 'scope', 'search', 'secgraph.db', 'secgraph.yaml', 'secret', 'self-audit', 'sensitivity', 'serve', 'show', 'simulate', 'source', 'spdx', 'spdxVersion', 'status', 'summary', 'sync', 'synchronized_at', 'target', 'telemetry', 'terminal', 'test', 'trust', 'utf-8', 'verify', 'version', '{}']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/scanner.py
|
|
2
|
+
# hypothesis_version: 6.167.1
|
|
3
|
+
|
|
4
|
+
[0.2, 0.35, 0.4, 0.6, 0.65, 0.75, 0.8, 1.0, 100, 120, 401, 403, 443, 1000, 8000, 'BEHAVIOR_CHANGED', 'CALLBACK_OBSERVED', 'INVARIANT_VIOLATED', 'LLM02', 'NO_SECRET_EXFIL', 'OWASP_LLM_2026', 'POLICY_DEVIATION', 'REACHED_MODEL', 'TOOL_EXECUTED', 'TOOL_REQUESTED', 'VERIFIED_EFFECT', 'adaptive', 'allowed_hosts', 'allowed_ports', 'api_key_env', 'attacker', 'base_url', 'blocked_networks', 'boundary_progress', 'callbacks', 'canary', 'content', 'context', 'controls', 'destination', 'error', 'features', 'flow', 'genetic', 'graph', 'http', 'https', 'invariants', 'json', 'max_duration_seconds', 'max_total_requests', 'metadata', 'model', 'model_parameters', 'output', 'principal', 'prompt', 'prompt_hash', 'remediation', 'reproduction', 'require_stable_dns', 'resisted', 'retrieval_settings', 'role', 'roles', 'scope', 'source', 'stages', 'static', 'status_code', 'strategy', 'target', 'tenant', 'test_id', 'tool', 'tool_schemas', 'tools', 'user', 'verified']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/policy.py
|
|
2
|
+
# hypothesis_version: 6.167.1
|
|
3
|
+
|
|
4
|
+
['.', '__', 'allow', 'contains', 'default', 'deny', 'effect', 'enforce', 'eq', 'gt', 'gte', 'id', 'in', 'log', 'lt', 'lte', 'match', 'matched policy rule', 'mode', 'ne', 'options', 'priority', 'rate_limit', 'reason', 'redact', 'require_approval', 'rules', 'sandbox', 'shadow', 'transform', 'utf-8']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/security.py
|
|
2
|
+
# hypothesis_version: 6.167.1
|
|
3
|
+
|
|
4
|
+
[120, 443, 1000, '*', '-', '.', '0', '0.0.0.0/8', '10.0.0.0/8', '100.64.0.0/10', '127.0.0.0/8', '127.0.0.1', '169.254.0.0/16', '172.16.0.0/12', '192.168.0.0/16', '198.18.0.0/15', '224.0.0.0/4', ':', '::1/128', '[PII]', '[REDACTED]', '_', 'account_deletion', 'allowed_hosts', 'api_key', 'apikey', 'auth', 'authorization', 'blocked_networks', 'cloud_upload', 'cookie', 'cors', 'dashboard', 'debug', 'destructive_write', 'evidence', 'fc00::/7', 'fe80::/10', 'host', 'http', 'https', 'in_process', 'localhost', 'max_total_requests', 'mode', 'password', 'plugins', 'privacy', 'proxy_authorization', 'redact', 'scope', 'secret', 'session', 'session_id', 'set_cookie', 'telemetry', 'token', 'trusted', 'x_api_key']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/config.py
|
|
2
|
+
# hypothesis_version: 6.167.1
|
|
3
|
+
|
|
4
|
+
[100, 120, 8000, 10000, 86400, 1000000, '0.0.0.0/8', '10.0.0.0/8', '100.64.0.0/10', '127.0.0.0/8', '169.254.0.0/16', '172.16.0.0/12', '192.168.0.0/16', '198.18.0.0/15', '224.0.0.0/4', '::1/128', 'CUSTOM', 'LAB', 'PASSIVE', 'SAFE', '_', 'account_deletion', 'destructive_write', 'encryption_key_env', 'fc00::/7', 'fe80::/10', 'forbid', 'localhost', 'token_env', 'utf-8']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/graph.py
|
|
2
|
+
# hypothesis_version: 6.167.1
|
|
3
|
+
|
|
4
|
+
['AFFECTED_BY', 'APIEndpoint', 'AUTHENTICATES_AS', 'Agent', 'BELONGS_TO_TENANT', 'Browser', 'CAN_CALL', 'CAN_INFLUENCE', 'CAN_READ', 'CAN_WRITE', 'CONTAINS', 'CROSSES_BOUNDARY', 'CROSS_TENANT', 'Component', 'DataAsset', 'Database', 'Document', 'EXECUTES', 'EXECUTION_CYCLE', 'Embedding', 'ExternalService', 'File', 'GUARDED_BY', 'Identity', 'MCPResource', 'MCPServer', 'Memory', 'Model', 'NetworkBoundary', 'Policy', 'Principal', 'Prompt', 'RECEIVES_FROM', 'REQUIRES_PERMISSION', 'RETRIEVES_FROM', 'Retriever', 'SENDS_TO', 'Secret', 'Session', 'Tool', 'User', 'VectorStore', 'Vulnerability', 'anonymous', 'authentication', 'category', 'confidential', 'control_plane', 'destination_tenant', 'edges', 'external', 'high', 'kind', 'length', 'low', 'multiple-tenants', 'path', 'pii', 'privilege', 'privileged', 'produces_output', 'protected', 'risk-path', 'score', 'secret', 'sensitivity', 'source_tenant', 'tenant', 'trust', 'untrusted']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/SecGraphAI/SecGraphAI/demo/assessment.py
|
|
2
|
+
# hypothesis_version: 6.167.1
|
|
3
|
+
|
|
4
|
+
[403, 1000, '/email', '/records/b-1', '/refund', '127.0.0.1', 'A', 'GET', 'POST', 'X-Tenant', 'a-1', 'allowed', 'amount', 'approval', 'content', 'customer_id', 'demo', 'destination', 'external', 'external_data_flow', 'external_side_effect', 'function', 'high', 'http://127.0.0.1', 'id', 'ignore previous', 'in_intent', 'kind', 'loop', 'low', 'object_authorization', 'prompt_injection', 'recursion_budget', 'risk', 'source', 'tenant', 'text', 'tool', 'tool_calls', 'tools']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/invariants.py
|
|
2
|
+
# hypothesis_version: 6.167.1
|
|
3
|
+
|
|
4
|
+
['$resource.', '_eq', '_gt', '_gte', '_lt', '_lte', 'context', 'controls', 'deny', 'destination', 'equal', 'flow', 'invariants', 'missing_controls', 'principal', 'source', 'tool', 'unequal', 'utf-8']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/schemas.py
|
|
2
|
+
# hypothesis_version: 6.167.1
|
|
3
|
+
|
|
4
|
+
['$id', '$schema', '1.0', 'LOCAL', 'TRUSTED_OFFICIAL', 'TRUSTED_ORGANIZATION', 'UNVERIFIED_COMMUNITY', 'additionalProperties', 'allow', 'array', 'attack-pack-1.0.json', 'attacks', 'category', 'conversation_depth', 'cost', 'default', 'deny', 'effect', 'enforce', 'enum', 'family', 'framework', 'id', 'integer', 'items', 'log', 'mappings', 'match', 'minLength', 'minimum', 'minimum_engine', 'mode', 'moderate', 'null', 'object', 'options', 'policy-1.0.json', 'priority', 'prompt', 'properties', 'publisher', 'rate_limit', 'rationale', 'reason', 'redact', 'report-1.0.json', 'require_approval', 'required', 'rules', 'sandbox', 'shadow', 'signature', 'source', 'strength', 'string', 'strong', 'tags', 'target_invariant', 'transform', 'trust', 'type', 'utf-8', 'version', 'weak']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/validators.py
|
|
2
|
+
# hypothesis_version: 6.167.1
|
|
3
|
+
|
|
4
|
+
[1.0, '$.', ',', '.', 'Marker search', 'Observed tenant', 'Policy effect', 'Response is not JSON', 'Secret pattern scan', 'authorization', 'callbacks', 'database-state', 'description', 'effect', 'file-state', 'http-callback', 'json-schema', 'kind', 'marker', 'metadata', 'observed', 'policy', 'required', 'secret', 'state', 'tenant', 'tool', 'tools']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/plugins.py
|
|
2
|
+
# hypothesis_version: 6.167.1
|
|
3
|
+
|
|
4
|
+
[1024, 2000000, ',', '--cap-drop', '--cpus', '--env', '--interactive', '--memory', '--network', '--pids-limit', '--read-only', '--rm', '--security-opt', '--tmpfs', '/', '0', '1', '256m', '64', ':', 'ALL', 'PATH', 'PYTHONIOENCODING', 'SECGRAPH_PLUGIN', 'artifact_sha256', 'command', 'community', 'container', 'credentials.raw', 'docker', 'in_process', 'local', 'max_output_bytes', 'mode', 'name', 'no-new-privileges', 'none', 'organization', 'output_schema', 'permissions', 'podman', 'rb', 'required', 'run', 'secgraph-plugin-', 'subprocess', 'trust', 'trusted', 'utf-8', 'version']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/adapters.py
|
|
2
|
+
# hypothesis_version: 6.167.1
|
|
3
|
+
|
|
4
|
+
[0.5, 0.8, 1.0, 200, 4000, '1', '2', '3', 'CRITICAL', 'CWE', 'HIGH', 'INFO', 'LIKELY_VIOLATION', 'LOW', 'MEDIUM', 'Nuclei finding', 'OSV vulnerability', 'PASS', 'Potential secret', 'SARIF finding', 'Semgrep finding', 'ZAP finding', 'alert', 'alerts', 'aliases', 'api-property-testing', 'check_id', 'codeql', 'confidence', 'content-filtering', 'critical', 'cwe', 'deepteam', 'dependencies', 'description', 'details', 'detect-secrets', 'dynamic-api-testing', 'engine', 'error', 'extra', 'failures', 'findings', 'garak', 'high', 'id', 'info', 'is_valid', 'issues', 'level', 'llmguard', 'low', 'mappings', 'medium', 'message', 'metadata', 'model-probes', 'model-supply-chain', 'modelscan', 'name', 'note', 'nuclei', 'osv', 'packages', 'pass', 'passed', 'pii-detection', 'pip-audit', 'pluginid', 'presidio', 'probes', 'prompt-evaluation', 'prompt-injection', 'promptfoo', 'pyrit', 'raw_id', 'reason', 'red-team', 'results', 'risk', 'risk_score', 'riskcode', 'ruleId', 'runs', 'safe', 'scanner', 'schemathesis', 'score', 'secret-detection', 'semgrep', 'severity', 'site', 'static-analysis', 'status', 'summary', 'target', 'template-id', 'template-scanning', 'templates', 'test', 'test_id', 'tests', 'text', 'title', 'type', 'verdict', 'vulnerabilities', 'vulns', 'warning', 'zap']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/supply_chain.py
|
|
2
|
+
# hypothesis_version: 6.167.1
|
|
3
|
+
|
|
4
|
+
[1024, 2000000, 10000000000, '*', '.', '.bin', '.dill', '.gguf', '.joblib', '.json', '.onnx', '.pickle', '.pkl', '.pt', '.pth', '.safetensors', 'rb', 'unknown', 'utf-8']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/self_security.py
|
|
2
|
+
# hypothesis_version: 6.167.1
|
|
3
|
+
|
|
4
|
+
[180, 1024, ', ', '--format', '-m', '127.0.0.1', '::1', '; ', '=', 'Config permissions', 'Configuration safety', 'Dashboard bind', 'Database permissions', 'FAIL', 'N/A', 'PASS', 'Package integrity', 'Plugin signatures', 'RECORD', 'SG-SECRET', 'Secret exposure', 'TLS configuration', 'Unexpected plugins', 'Version freshness', 'WARN', '[REDACTED]', '_KEY', '_SECRET', '_TOKEN', 'api_key', 'audit_sha256', 'checks', 'dashboard', 'host', 'json', 'localhost', 'metadata', 'nt', 'organization', 'passed', 'pip_audit', 'rb', 'secgraphai', 'sha256=', 'tls', 'trusted']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/provenance.py
|
|
2
|
+
# hypothesis_version: 6.167.1
|
|
3
|
+
|
|
4
|
+
['CONFIDENTIAL', 'EXTERNAL', 'MEMORY', 'MODEL_GENERATED', 'PII', 'RAG', 'SECRET', 'SYSTEM', 'T', 'TOOL_DATA', 'UNTRUSTED', 'USER', 'derived', 'exact', 'mixed', 'probabilistic', 'trusted', 'unknown', 'untrusted']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/attacks.py
|
|
2
|
+
# hypothesis_version: 6.167.1
|
|
3
|
+
|
|
4
|
+
[2000000, ',', '-', '0', '1.0.0rc1', '2026', ':', 'ASI02', 'Encode the answer:', 'In a simulation,', 'LLM01', 'LLM08', 'LLM09', 'LOCAL', 'OWASP Agentic', 'OWASP LLM', 'Step by step,', 'TENANT_ISOLATION', 'TOOL_AUTHORIZATION', 'TRUSTED_OFFICIAL', 'TRUSTED_ORGANIZATION', 'UNVERIFIED_COMMUNITY', '_', 'agent', 'ascii', 'attacks', 'category', 'conversation_depth', 'cost', 'family', 'framework', 'id', 'identity', 'indirect-injection', 'llm', 'mappings', 'mcp', 'minimum_engine', 'moderate', 'official_ed25519.pub', 'pi-direct', 'pi-indirect', 'prompt', 'prompt-injection', 'publisher', 'rag', 'rag-exfil', 'rag-exfiltration', 'rationale', 'secgraphai', 'secgraphai.packs', 'signature', 'source', 'strength', 'strong', 'system-leak', 'tags', 'target_invariant', 'tool', 'tool-abuse', 'tool-escalate', 'trust', 'user', 'utf-8', 'version', 'weak']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/research.py
|
|
2
|
+
# hypothesis_version: 6.167.1
|
|
3
|
+
|
|
4
|
+
[1000, 20000000, '(?<=[.!?])\\s+', '.pdf', '0.0.0-draft', '1.0.0rc1', 'activated', 'attack', 'bypass', 'exploit', 'inject', 'limitations', 'local-import', 'replace', 'research-draft', 'source_sha256', 'utf-8']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/runtime.py
|
|
2
|
+
# hypothesis_version: 6.167.1
|
|
3
|
+
|
|
4
|
+
['F', 'after_sync', 'agent', 'allowed', 'approval', 'before_sync', 'drop_fields', 'effect', 'enforced', 'explanation', 'fields', 'function', 'kind', 'labels', 'maximum', 'normal', 'permission', 'permissions', 'policy', 'reason', 'redact', 'retriever', 'risk', 'rule_id', 'sandboxed', 'sensitive', 'tenant', 'tool', 'transform', 'user', 'when', 'window_seconds']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/reporting.py
|
|
2
|
+
# hypothesis_version: 6.167.1
|
|
3
|
+
|
|
4
|
+
['## Audit manifest', '## Limitations', '## Resource usage', '%s', '.', '</tr>', '<tr>', '\\|', '```', '```json', 'csv', 'fingerprint', 'html', 'id', 'json', 'jsonl', 'junit', 'markdown', 'md', 'pdf', 'sarif', 'severity', 'title', 'utf-8', 'verdict', 'xml', '|', '|---|---|---|---|']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/dashboard.py
|
|
2
|
+
# hypothesis_version: 6.167.1
|
|
3
|
+
|
|
4
|
+
[100, 120, 202, 401, 404, 413, 422, 429, 1000, 4401, 2000000, ',', '/', '/api/v1/attack-paths', '/api/v1/events', '/api/v1/findings', '/api/v1/graph', '/api/v1/health', '/api/v1/policies', '/api/v1/reports', '/api/v1/scan-jobs', '/api/v1/scans', '/api/v1/self-audit', '/api/v1/targets', '/api/v1/views/{view}', '/health', '/static', '127.0.0.1', ':', '::1', 'AGENT-', 'API-', 'API-AUTHZ-', 'Bearer ', 'COMPLETED', 'Cache-Control', 'DENY', 'FAILED', 'IDENTITY-', 'MCP-', 'Model', 'PI-', 'QUEUED', 'RAG-', 'RUNNING', 'Referrer-Policy', 'SG-AGENT-', 'SG-API-', 'SG-API-AUTHZ-', 'SG-IDENTITY-', 'SG-MCP-', 'SG-PI-', 'SG-PROMPT-', 'SG-RAG-', 'SecGraphAI', 'X-Frame-Options', 'adaptive', 'agent', 'agents', 'allowed', 'api-security', 'architecture', 'artifacts', 'attack-graph', 'attack-paths', 'attack_budget', 'audit', 'authentication', 'authorization', 'bearer', 'bind_host', 'by_severity', 'by_verdict', 'configuration', 'content-length', 'coverage', 'decisions', 'detail', 'edges', 'effect', 'error', 'events', 'finding_id', 'finding_ids', 'findings', 'graph', 'heartbeat', 'http', 'id', 'identities', 'index.html', 'items', 'job_id', 'jobs', 'json', 'kind', 'known_exploited', 'llm-2026', 'local', 'localhost', 'match', 'max_body_bytes', 'mcp', 'mode', 'models', 'modules', 'no-referrer', 'no-store', 'nodes', 'nosniff', 'not found', 'ok', 'options', 'overview', 'owasp', 'owasp-coverage', 'policies', 'priority', 'prompt-injection', 'rag', 'rate limit exceeded', 'reason', 'regression-tests', 'reports', 'request too large', 'resources', 'risk_paths', 'rules', 'runtime', 'scan.completed', 'scan.failed', 'scan.queued', 'scan.running', 'scan_id', 'scans', 'secgraphai', 'self-audit', 'self-security', 'settings', 'state', 'static', 'status', 'summary', 'target not found', 'target_id', 'targets', 'telemetry', 'test_errors', 'time', 'total', 'type', 'unauthorized', 'verified', 'view', 'vulnerabilities', 'would_block']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/discovery.py
|
|
2
|
+
# hypothesis_version: 6.167.1
|
|
3
|
+
|
|
4
|
+
[200, 443, 2000000, '*', '.json', '.py', '.yaml', '.yml', '/openapi.json', ':', 'GET', 'agent', 'agents', 'annotated', 'api', 'attributes', 'calls', 'chroma', 'configuration', 'delete', 'dynamic', 'environment', 'external', 'external_service', 'external_services', 'faiss', 'fastapi', 'field', 'function', 'gen_ai.model', 'gen_ai.request.model', 'gen_ai.tool.name', 'get', 'graphql', 'head', 'host', 'http', 'http.method', 'http.request.method', 'http.route', 'http_traces', 'https', 'id', 'identities', 'identity', 'kind', 'mcp', 'mcp_resource', 'mcp_server', 'mcp_server_id', 'mcp_servers', 'mcpclient', 'metadata_discovery', 'method', 'methods', 'model', 'models', 'mutation', 'name', 'operation', 'operation_id', 'options', 'otel', 'otel_spans', 'parameter', 'patch', 'path', 'paths', 'permissions', 'post', 'principal', 'prompt', 'protected', 'protocol', 'put', 'ragtarget', 'reads', 'requires_approval', 'retriever', 'retrievers', 'retrieves_from', 'risk', 'routes', 'schema', 'security', 'sends_to', 'server', 'serverInfo', 'source', 'span', 'subscription', 'tool', 'tool.name', 'tools', 'trust', 'trust_boundaries', 'trust_boundary', 'uri', 'url', 'utf-8', 'value', 'value_redacted', 'vector_store', 'vector_stores', 'writes']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/roles.py
|
|
2
|
+
# hypothesis_version: 6.167.1
|
|
3
|
+
|
|
4
|
+
[4000, 'asset', 'attack', 'base_url', 'confidence', 'content', 'evidence', 'invariant', 'json', 'judge', 'judges', 'mappings', 'model', 'output', 'prompt', 'remediation', 'role', 'system', 'target', 'title', 'user', 'violation']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/__init__.py
|
|
2
|
+
# hypothesis_version: 6.167.1
|
|
3
|
+
|
|
4
|
+
['Attack', 'AttackMapping', 'AttackMemory', 'AttackPack', 'AttackPlanner', 'Confidence', 'Config', 'DifferentialResult', 'DiscoveredComponent', 'DiscoveryInventory', 'EdgeType', 'Evidence', 'Finding', 'Interaction', 'Invariant', 'InvariantEngine', 'Label', 'Mode', 'Model', 'ModelRole', 'ModelRoles', 'NodeType', 'PackTrust', 'PolicyEngine', 'Provenance', 'Report', 'ResourceUsage', 'Rule', 'ScanManifest', 'SecGraph', 'SecurityGraph', 'Sensitive', 'Severity', 'Tainted', 'UtilityResult', 'Verdict', 'Verification', 'canary', 'compare_utility', 'detect_amplification', 'discover_fastapi', 'discover_mcp', 'discover_path', 'discover_url', 'invariant', 'load_official_pack', 'measure', 'secgraph']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/lifecycle.py
|
|
2
|
+
# hypothesis_version: 6.167.1
|
|
3
|
+
|
|
4
|
+
[100, 10000000, '\x00', '$schema', ',', '..', '1', '2.1.0', ':', 'CRITICAL', 'HIGH', 'LIKELY_VIOLATION', 'PASS', 'SecGraphAI', 'TEST_ERROR', 'VERIFIED_VIOLATION', '[^A-Za-z0-9_]', '_', 'artifact_hashes', 'cases', 'ci', 'confidence', 'config_hash', 'configuration', 'configuration.json', 'driver', 'environment', 'error', 'evidence', 'executable', 'expected', 'fail_on_new', 'fail_on_test_error', 'failure', 'finding_id', 'findings', 'fingerprint', 'forbid', 'forbidden marker', 'forbidden_markers', 'forbidden_verdicts', 'graph', 'hashes', 'id', 'implementation', 'inputs.json', 'interactions', 'invalid replay case', 'invariant', 'json', 'junit', 'level', 'limitations', 'manifest', 'manifest.json', 'mappings', 'message', 'name', 'new', 'note', 'partialFingerprints', 'platform', 'policies', 'policies.json', 'policy', 'policy_hash', 'prompt', 'properties', 'pytest', 'python', 'regression_tests', 'replayable', 'report.json', 'reports', 'resolved', 'results', 'ruleId', 'runs', 'schema', 'secgraph-regression', 'secgraphFingerprint', 'secgraphai', 'secgraphai.generated', 'sha256', 'test_id', 'testcase', 'tests', 'tests.json', 'testsuite', 'text', 'tool', 'unchanged', 'unicode', 'utf-8', 'verdict', 'version', 'w', 'warning', 'yaml']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/instrumentation.py
|
|
2
|
+
# hypothesis_version: 6.167.1
|
|
3
|
+
|
|
4
|
+
[500, 1000, 'F', 'X-SecGraph-Trace', '__name__', 'callable', 'chat', 'completions', 'fastapi', 'http', 'httpx', 'langchain', 'langgraph', 'mcp', 'method', 'openai', 'request', 'response', 'secgraph.duration_ms', 'secgraph.name', 'secgraph.success', 'secgraph_started', 'status', 'x-request-id']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/SecGraphAI/SecGraphAI/src/secgraphai/targets.py
|
|
2
|
+
# hypothesis_version: 6.167.1
|
|
3
|
+
|
|
4
|
+
[200, 201, 204, 401, 403, 1000, 1000000, 2000000, ',', '/', ':', 'Authorization', 'DELETE', 'GET', 'HEAD', 'OPTIONS', 'account_deletion', 'active_write', 'additionalProperties', 'delete', 'description', 'destructive_write', 'external_side_effect', 'get', 'head', 'initialize', 'inputSchema', 'metadata_discovery', 'method', 'name', 'operationId', 'options', 'patch', 'path', 'paths', 'post', 'prompts', 'prompts/list', 'put', 'read', 'replace', 'resources', 'resources/list', 'revalidate', 'security', 'server', 'tools', 'tools/list', 'utf-8']
|
|
Binary file
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to SecGraphAI are documented here. The project follows Semantic
|
|
4
|
+
Versioning and the format is based on Keep a Changelog.
|
|
5
|
+
|
|
6
|
+
## [Unreleased]
|
|
7
|
+
|
|
8
|
+
- Enforced PASSIVE, SAFE, LAB, and CUSTOM request modes and recorded finding reproduction inputs.
|
|
9
|
+
- Added executable replay verification, persisted dashboard scan jobs, and authenticated live events.
|
|
10
|
+
- Added four independent model roles, boundary-progress adaptive search, and a package-driven
|
|
11
|
+
six-behavior vulnerable/hardened benchmark.
|
|
12
|
+
- Added incremental CVE cache metadata/freshness and digest-pinned container plugin isolation.
|
|
13
|
+
- Added resumable, rate-aware NVD paging and all PRD-documented installation extras.
|
|
14
|
+
- Added MCP and OpenTelemetry architecture discovery with graph relationships and public APIs.
|
|
15
|
+
- Added a detailed user guide with callback, model, API, RAG, MCP, agent, CI, and dashboard scenarios.
|
|
16
|
+
- Expanded security and integration coverage to more than 450 tests.
|
|
17
|
+
- Completed principal/tool/condition/control invariant evaluation and full resource accounting.
|
|
18
|
+
- Expanded RAG, MCP, API, and agent checks and normalized every declared external-engine format.
|
|
19
|
+
- Added live FastAPI route discovery, declared graph relationships, and environment-name-only metadata.
|
|
20
|
+
- Added conditional/delta NVD synchronization, encrypted/retained storage, optional PII masking,
|
|
21
|
+
broader credential redaction, DNS rebinding detection, and replay compression-ratio limits.
|
|
22
|
+
- Added baseline-aware `secgraph test`, historical policy simulation, and dedicated dashboard views.
|
|
23
|
+
|
|
24
|
+
## [1.0.0rc1] - 2026-09-07
|
|
25
|
+
|
|
26
|
+
- Connected attack planning, validators, target execution, policy enforcement, and evidence.
|
|
27
|
+
- Added complete CLI workflow groups, dashboard API/frontend, CVE/CycloneDX/SPDX intelligence,
|
|
28
|
+
instrumentation, security modules, adapters, signed packs, and benchmark applications.
|
|
29
|
+
- Added release-candidate security, property, integration, and packaging verification.
|
|
30
|
+
|
|
31
|
+
## [0.9.0] - 2026-09-07
|
|
32
|
+
|
|
33
|
+
- Added validators, judge ensembles, API/identity, RAG, MCP, provenance, and policy primitives.
|
|
34
|
+
- Added adaptive planning, memory, novelty/evolution, and signed attack packs.
|
|
35
|
+
- Added baselines, replay bundles, pytest generation, SARIF, and JUnit.
|
|
36
|
+
- Added OWASP coverage, SBOM/CVE intelligence, security gates, plugin isolation, and dashboard API.
|
|
37
|
+
- Expanded the suite with over 300 parameterized unit and security cases.
|
|
38
|
+
|
|
39
|
+
## [0.1.0] - 2026-09-07
|
|
40
|
+
|
|
41
|
+
### Added
|
|
42
|
+
|
|
43
|
+
- Initial package, CLI, OpenAI-compatible model adapter, and callback scanner.
|
|
44
|
+
- Typed security graph, invariants, findings, evidence, and verdicts.
|
|
45
|
+
- Runtime authorization and approval interception.
|
|
46
|
+
- Deterministic canaries, scope controls, secret redaction, configuration doctor,
|
|
47
|
+
secure HTML/JSON reporting, and SQLite report storage.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
Apache License
|
|
2
|
+
Version 2.0, January 2004
|
|
3
|
+
http://www.apache.org/licenses/
|
|
4
|
+
|
|
5
|
+
Copyright 2026 SecGraphAI contributors
|
|
6
|
+
|
|
7
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
you may not use this file except in compliance with the License.
|
|
9
|
+
You may obtain a copy of the License at
|
|
10
|
+
|
|
11
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
|
|
13
|
+
Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
See the License for the specific language governing permissions and
|
|
17
|
+
limitations under the License.
|
|
18
|
+
|