Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
191 commits
Select commit Hold shift + click to select a range
30da508
Commit all previous changes from previous repository
Ianyliu Aug 8, 2022
10bdad3
Update comments and variables in blast-radius-aws.tf
Ianyliu Aug 9, 2022
40bfb03
Allow Blast Radius to handle remote Terraform modules
Ianyliu Aug 9, 2022
84ed47a
Improve Error Handling & Allow Blast Radius Viewer to be Accessed Eve…
Ianyliu Aug 9, 2022
903bbdb
Remove console.logs
Ianyliu Aug 9, 2022
724c33f
Add an alert to navbar on server failure
Ianyliu Aug 9, 2022
304ff63
Include package data when setup.py is run during installation processes
Ianyliu Aug 9, 2022
ce4ac67
Add JS variables and documentation
Ianyliu Aug 9, 2022
6e16c57
Update requirements.txt
Ianyliu Aug 9, 2022
948dac8
Update Dockerfile to update packages in container
Ianyliu Aug 9, 2022
8176bd0
Simplify code
Ianyliu Aug 10, 2022
028ee36
Add Terratests to Dockerfile
Ianyliu Aug 10, 2022
0d3631b
Provide doc fix support
Ianyliu Aug 10, 2022
cba20cd
Ignore .vscode configuration folders
Ianyliu Aug 10, 2022
4308ac6
Update documentation for hcl2 instead of pyhcl
Ianyliu Aug 10, 2022
b0bad3a
Add compatibility with collections library regardless of Python version
Ianyliu Aug 10, 2022
f458970
Bump jinja2 from 2.10.1 to 2.11.3
dependabot[bot] Aug 15, 2022
a208749
Create codeql-analysis.yml
Ianyliu Aug 15, 2022
6b2b3dc
Merge pull request #1 from Ianyliu/dependabot/pip/jinja2-2.11.3
Ianyliu Aug 15, 2022
8b20178
Updated README.md
Ianyliu Aug 16, 2022
ddbed77
Allow print function to be used in even in Python 2
Ianyliu Aug 16, 2022
933492d
Add Docker Build and Run PowerShell Scripts
Ianyliu Aug 16, 2022
de86130
Updated index.html
Ianyliu Aug 16, 2022
b326b4e
Update Docker Run PowerShell Script
Ianyliu Aug 16, 2022
4f4bfa9
Update Docker Build PowerShell Command to Use BuildX
Ianyliu Aug 16, 2022
c87c952
Allow Users to Run Docker Container using BASH Script
Ianyliu Aug 16, 2022
41f1702
Update PowerShell Script to Avoid Build Error
Ianyliu Aug 16, 2022
38b3a70
Remove comments
Ianyliu Aug 16, 2022
01c83fa
Fix Flask Installation Error
Ianyliu Aug 16, 2022
c473926
Resolve pip Installation Error
Ianyliu Aug 16, 2022
ffb5fbb
Merge branch 'main' into dev
Ianyliu Aug 16, 2022
839ec88
Update pip before package installation (Dockerfile)
Ianyliu Aug 16, 2022
7483fdb
Merge dev into main (#3)
Ianyliu Aug 16, 2022
90a185a
Remove redundant code
Ianyliu Aug 17, 2022
056b3ad
Remove redundant code
Ianyliu Aug 17, 2022
e1e020a
Default to Docker build instead of buildx build
Ianyliu Aug 17, 2022
72a9b48
Added Kubernetes YAML files (lost in previous commits)
Ianyliu Aug 17, 2022
be2a276
Added non_tf_dir.html (lost in previous commits)
Ianyliu Aug 17, 2022
2a16be0
Removed duplicate file (other one is in Docker folder)
Ianyliu Aug 17, 2022
9701416
Trivial changes
Ianyliu Aug 17, 2022
b05c811
Fix Docker Run Error
Ianyliu Aug 18, 2022
2688efe
Trivial naming change*
Ianyliu Aug 18, 2022
9c2918d
Added a comment
Ianyliu Aug 18, 2022
edef86b
Changed log
Ianyliu Aug 18, 2022
7149080
Updated .dockerignore to exclude unnecessary files
Ianyliu Aug 18, 2022
fc374a2
Updated .dockerignore to include .md files
Ianyliu Aug 18, 2022
970dbc2
.
Ianyliu Aug 18, 2022
e1d3cfd
Enable Building Docker Images for Other Architectures
Ianyliu Aug 18, 2022
8058a3e
Merge remote-tracking branch 'origin/dev' into dev
Ianyliu Aug 18, 2022
e4ef2bd
Merge dev into main (#4)
Ianyliu Aug 18, 2022
0dd2234
Update README.md
Ianyliu Aug 18, 2022
0cdb43b
Updated README.md
Ianyliu Aug 18, 2022
09715c6
Updated README.md
Ianyliu Aug 18, 2022
a03923a
Updated README.md
Ianyliu Aug 18, 2022
b3ee3f8
Updated .gitignore
Ianyliu Aug 18, 2022
4ce3769
Updated README.md
Ianyliu Aug 19, 2022
5404916
Updated README.md
Ianyliu Aug 19, 2022
b7f09cc
Updated Docker.md
Ianyliu Aug 19, 2022
77404fb
Updated example Terraform file
Ianyliu Aug 22, 2022
515a362
Update README.md
Ianyliu Aug 22, 2022
371044a
Optimize Docker image size and update Python to 3.9
Ianyliu Aug 22, 2022
1a282bb
Create codeql.yml
Ianyliu Aug 22, 2022
c396e2b
Create dependency-review.yml
Ianyliu Aug 22, 2022
af07662
Merge dev branch (#6)
Ianyliu Aug 22, 2022
ed19848
Update Docker documentation
Ianyliu Aug 23, 2022
ab4bd08
Resolve Docker build error for PowerShell script
Ianyliu Aug 23, 2022
9e045f7
Remove buildx for PowerShell script
Ianyliu Aug 23, 2022
e002009
Update Docker.md
Ianyliu Aug 23, 2022
fb2516d
Update Docker.md
Ianyliu Aug 23, 2022
b239f3a
Update documentation
Ianyliu Aug 23, 2022
b586527
Merge /Dev branch (#7)
Ianyliu Aug 23, 2022
5852700
Update README.md
Ianyliu Aug 23, 2022
a51d9b0
Updated Docker.md
Ianyliu Aug 24, 2022
9be4c3e
Remove console.log() and comments
Ianyliu Aug 24, 2022
5aa64d3
Merge dev into main (#9)
Ianyliu Aug 24, 2022
c9f832d
Update README.md
Ianyliu Aug 24, 2022
8b93b4a
Update README.md
Ianyliu Aug 24, 2022
b4ef8fa
Update README.md
Ianyliu Aug 24, 2022
5926718
Improve error notifying
Ianyliu Aug 24, 2022
d1b082a
Resolve error where user is redirected even though Terraform director…
Ianyliu Aug 24, 2022
bc983d4
Dev merge (#10)
Ianyliu Aug 24, 2022
9ff9fa1
Update README.md
Ianyliu Aug 24, 2022
66fa26a
Resolve path error
Ianyliu Aug 24, 2022
410422b
Resolve path error (#11)
Ianyliu Aug 24, 2022
596a24e
Resolve path error
Ianyliu Aug 24, 2022
982d92a
Resolve path error (#12)
Ianyliu Aug 24, 2022
fe2f01e
Resolve path error
Ianyliu Aug 24, 2022
a8c1ef9
Resolve path error (#13)
Ianyliu Aug 24, 2022
21cdc89
Simplify code
Ianyliu Aug 24, 2022
e2c35a2
Simplify code (#14)
Ianyliu Aug 24, 2022
0b5cb0d
Add detection for Python3
Ianyliu Aug 24, 2022
3951df9
Add detection for Python3 (#15)
Ianyliu Aug 24, 2022
7d52b34
Update README.md
Ianyliu Aug 25, 2022
2289b66
Resolve Graph Colorization Error
Ianyliu Aug 25, 2022
4b7127d
Removed redundant code
Ianyliu Aug 25, 2022
9b3f005
Resolve errors (#16)
Ianyliu Aug 25, 2022
b9d904f
Added error logging
Ianyliu Aug 26, 2022
30fdeda
Added error logging (#17)
Ianyliu Aug 26, 2022
ad5a715
Update README.md
Ianyliu Aug 26, 2022
1b1c0aa
Avoid infinite recursions in terraform parser
blentz Aug 29, 2022
6d87d30
Avoid infinite recursions in terraform parser (#18)
Ianyliu Sep 5, 2022
c7bfa55
Update README.md
Ianyliu Sep 5, 2022
b03db54
Update README.md
Ianyliu Sep 5, 2022
64a9117
Update requirements.txt
Ianyliu Oct 15, 2022
562b4db
Handle Remote Modules
Ianyliu Oct 16, 2022
703b971
Update .gitignore
Ianyliu Oct 16, 2022
0a3f4ed
Better Error Handling
Ianyliu Oct 20, 2022
fc829e4
Handle Remote Modules (#26)
Ianyliu Oct 20, 2022
1a3647a
Better Error Handling (#27)
Ianyliu Oct 20, 2022
c382323
Update Terraform Version in Docker Image
Ianyliu Oct 29, 2022
4c47dad
Remove Empty Line
Ianyliu Oct 31, 2022
81b94e1
Merge Dev (#28)
Ianyliu Nov 22, 2022
136e357
Repair Docker Error
Ianyliu Nov 22, 2022
4a9027c
Bump setuptools from 63.4.3 to 65.5.1
dependabot[bot] Dec 27, 2022
5299b27
Bump setuptools from 63.4.3 to 65.5.1 (#29)
Ianyliu Dec 28, 2022
ba8deeb
Update README.md
Ianyliu Jan 15, 2023
4affffa
Install the CodeSee workflow. Learn more at https://docs.codesee.io
Apr 27, 2023
840a26c
Install the CodeSee workflow. (#30)
Ianyliu Apr 27, 2023
5950d87
Bump flask from 2.1.2 to 2.3.2
dependabot[bot] May 1, 2023
a4e5696
Bump flask from 2.1.2 to 2.3.2 (#31)
Ianyliu May 3, 2023
b68284b
bump itsdangerous
glasnt May 12, 2023
34f3ec9
Bump requests from 2.27.1 to 2.31.0
dependabot[bot] May 23, 2023
6c4a3da
Bump requests from 2.27.1 to 2.31.0 (#34)
Ianyliu May 24, 2023
b65ec42
bump itsdangerous (#33)
Ianyliu May 24, 2023
61bd968
Update requirements.txt
Ianyliu Jun 28, 2023
a43af05
Update requirements.txt (#40)
Ianyliu Jun 28, 2023
aa65da2
Merge branch 'main' into dev
Ianyliu Jun 28, 2023
24214d2
Update requirements (#41)
Ianyliu Jun 28, 2023
74444e8
Add File Upload & Text Input Explanation
Ianyliu Jul 24, 2023
719c44b
Add File Upload & Text Input Explanation (#42)
Ianyliu Jul 24, 2023
1ac7fdf
Bump jinja2 from 3.1.2 to 3.1.3
dependabot[bot] Jan 11, 2024
94f151f
Bump jinja2 from 3.1.2 to 3.1.3 (#44)
Ianyliu Jan 11, 2024
0a1157d
fix entrypoint script
dannyvolders Feb 23, 2024
f10f46a
Add Disclaimer and Helpful Tip for Docker Run Command When Path Has S…
Ianyliu Feb 28, 2024
29f865f
Merge branch 'main' of https://github.com/Ianyliu/blast-radius-fork
Ianyliu Feb 28, 2024
5fdf934
Bump jinja2 from 3.1.3 to 3.1.4
dependabot[bot] May 6, 2024
ba6affc
Bump jinja2 from 3.1.3 to 3.1.4 (#46)
Ianyliu May 15, 2024
bffe1db
dependabot[bot] May 21, 2024
8b8d95d
Bump requests from 2.31.0 to 2.32.0 (#47)
Ianyliu May 27, 2024
f8af9dc
Bump setuptools from 65.5.1 to 70.0.0
dependabot[bot] Jul 15, 2024
e47caed
Bump setuptools from 65.5.1 to 70.0.0 (#49)
Ianyliu Jul 16, 2024
7e7ed33
Add star history pic to README.md
Ianyliu Aug 11, 2024
8d6da2e
Star History Dark Theme Support
Ianyliu Aug 11, 2024
7d031b3
Update README.md
Ianyliu Aug 11, 2024
61374b9
Add star history pic to README.md (#50)
Ianyliu Aug 11, 2024
47f0d72
fix entrypoint script (#53)
Ianyliu Aug 14, 2024
56fd19c
Bug Fix
Ianyliu Aug 14, 2024
eccaef9
Bug fix (Terraform initialized in an empty directory) (#54)
Ianyliu Aug 14, 2024
7455703
Update README.md Title
Ianyliu Aug 14, 2024
aa6408a
Update README.md Title (#55)
Ianyliu Aug 14, 2024
75ae6be
Add print message
Ianyliu Aug 14, 2024
1e9561e
Add print message (#56)
Ianyliu Aug 14, 2024
bdd14d9
Update README.md
Ianyliu Oct 4, 2024
3e0ade2
Update README.md (#58)
Ianyliu Oct 4, 2024
e1917ad
Update README.md
Ianyliu Oct 4, 2024
9f271b0
Update README.md (#59)
Ianyliu Oct 4, 2024
8d42879
Allow for host to be configured (default is 0.0.0.0, which may be und…
Oct 18, 2024
6194a82
type=str oops
Oct 18, 2024
5c6b000
Update readme
Oct 18, 2024
9092f19
Make bound host configurable (#60)
Ianyliu Oct 20, 2024
fe010e0
Update requirements.txt
Ianyliu Mar 6, 2025
f610430
Update requirements.txt (#62)
Ianyliu Mar 6, 2025
f4f9e51
Bump setuptools from 70.0.0 to 78.1.1
dependabot[bot] May 19, 2025
b80bee5
Bump setuptools from 70.0.0 to 78.1.1 (#63)
Ianyliu May 21, 2025
1ff00d1
Bump requests from 2.32.0 to 2.32.4
dependabot[bot] Jun 10, 2025
152898e
Bump requests from 2.32.0 to 2.32.4 (#64)
Ianyliu Jun 11, 2025
114f53f
Bump flask from 2.3.2 to 3.1.3
dependabot[bot] Feb 20, 2026
cfbcf66
Bump requests from 2.32.4 to 2.33.0
dependabot[bot] Mar 26, 2026
740a778
Bump requests from 2.32.4 to 2.33.0 (#66)
Ianyliu Mar 30, 2026
e7378d3
Bump setuptools from 78.1.1 to 83.0.0
dependabot[bot] Jul 24, 2026
fc89868
Bump setuptools from 78.1.1 to 83.0.0 (#67)
Ianyliu Jul 25, 2026
3a805d0
Bump flask from 2.3.2 to 3.1.3 (#65)
Ianyliu Jul 25, 2026
8cc2cb1
Update Docker Terraform support to 1.15.8 (#68)
Ianyliu Jul 25, 2026
c26f6fe
Fix module-depth graph collapsing
Ianyliu Jul 26, 2026
dc8a6a8
Document module-depth behavior
Ianyliu Jul 26, 2026
f20f892
Fix --module-depth graph collapsing (#69)
Ianyliu Jul 26, 2026
8e10098
Make diagnostics portable across platforms
Ianyliu Jul 26, 2026
ab107cb
Make Windows diagnostics resilient (#70)
Ianyliu Jul 26, 2026
cd1f865
Install a cross-platform console launcher
Ianyliu Jul 26, 2026
b4bd02c
Test the installed Windows wheel
Ianyliu Jul 26, 2026
ec4a802
Install a native Windows console launcher (#71)
Ianyliu Jul 26, 2026
b7e3216
Add a structured DOT rendering API
Ianyliu Jul 26, 2026
354604f
Render pasted graphs without a synthetic root
Ianyliu Jul 26, 2026
ba33277
Accept modern rootless Terraform DOT input (#72)
Ianyliu Jul 26, 2026
52c0e63
Make graph pruning cycle safe
Ianyliu Jul 26, 2026
c4f3e4f
Re-render each tab from its original graph
Ianyliu Jul 26, 2026
ae3f000
Document graph pruning workflow
Ianyliu Jul 26, 2026
6e3246e
Prune uploaded and pasted graphs correctly (#73)
Ianyliu Jul 26, 2026
0668cc3
Make Docker Terraform initialization configurable
Ianyliu Jul 26, 2026
ff56c45
Document Docker initialization modes
Ianyliu Jul 26, 2026
5741a9e
Make Docker Terraform initialization cache-aware (#74)
Ianyliu Jul 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,17 @@
.*
AWS/
doc
Dockerfile
*.md
!README.md
*.svg
*.json
*.png
docker-compose.yml
providers/
LICENSE
examples/
example/
PowerShell/
BASH/
Kubernetes/
72 changes: 72 additions & 0 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"

on:
push:
branches: [ "main" ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ "main" ]
Comment on lines +12 to +19

Copilot AI Mar 30, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are two CodeQL workflows (codeql.yml and codeql-analysis.yml) with the same name: "CodeQL" and nearly identical configuration. This will run CodeQL twice on the same events and can be confusing/noisy. Consider deleting one file or consolidating schedules into a single workflow.

Suggested change
name: "CodeQL"
on:
push:
branches: [ "main" ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ "main" ]
name: "CodeQL (scheduled)"
on:

Copilot uses AI. Check for mistakes.
schedule:
- cron: '41 11 * * 0'

jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write

strategy:
fail-fast: false
matrix:
language: [ 'javascript', 'python' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support

steps:
- name: Checkout repository
uses: actions/checkout@v3

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.

# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality


# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2

# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun

# If the Autobuild fails above, remove it and uncomment the following three lines.
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.

# - run: |
# echo "Run, Build Application using script"
# ./location_of_script_within_repo/buildscript.sh

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
72 changes: 72 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"

on:
push:
branches: [ "main" ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ "main" ]
schedule:
- cron: '38 19 * * 0'

jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write

strategy:
fail-fast: false
matrix:
language: [ 'javascript', 'python' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support

steps:
- name: Checkout repository
uses: actions/checkout@v3

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.

# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality


# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2

# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun

# If the Autobuild fails above, remove it and uncomment the following three lines.
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.

# - run: |
# echo "Run, Build Application using script"
# ./location_of_script_within_repo/buildscript.sh

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
23 changes: 23 additions & 0 deletions .github/workflows/codesee-arch-diagram.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# This workflow was added by CodeSee. Learn more at https://codesee.io/
# This is v2.0 of this workflow file
on:
push:
branches:
- main
pull_request_target:
types: [opened, synchronize, reopened]

name: CodeSee

permissions: read-all

jobs:
codesee:
runs-on: ubuntu-latest
continue-on-error: true
name: Analyze the repo with CodeSee
steps:
- uses: Codesee-io/codesee-action@v2
with:
codesee-token: ${{ secrets.CODESEE_ARCH_DIAG_API_TOKEN }}
codesee-url: https://app.codesee.io
20 changes: 20 additions & 0 deletions .github/workflows/dependency-review.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Dependency Review Action
#
# This Action will scan dependency manifest files that change as part of a Pull Request, surfacing known-vulnerable versions of the packages declared or updated in the PR. Once installed, if the workflow run is marked as required, PRs introducing known-vulnerable packages will be blocked from merging.
#
# Source repository: https://github.com/actions/dependency-review-action
# Public documentation: https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review#dependency-review-enforcement
name: 'Dependency Review'
on: [pull_request]

permissions:
contents: read

jobs:
dependency-review:
runs-on: ubuntu-latest
steps:
- name: 'Checkout Repository'
uses: actions/checkout@v3
- name: 'Dependency Review'
uses: actions/dependency-review-action@v2
109 changes: 109 additions & 0 deletions .github/workflows/docker-terraform-version.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
name: Docker Terraform version smoke test

on:
push:
branches:
- main
pull_request:
branches:
- main
workflow_dispatch:

permissions:
contents: read

jobs:
docker-smoke:
name: ${{ matrix.scenario }} Terraform ${{ matrix.terraform_version }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- scenario: default
terraform_version: "1.15.8"
required_version: ">= 1.7.5"
override_default: false
- scenario: issue-39-override
terraform_version: "1.7.5"
required_version: "= 1.7.5"
override_default: true

env:
IMAGE_TAG: blast-radius-fork:${{ matrix.scenario }}
EXPECTED_TERRAFORM_VERSION: ${{ matrix.terraform_version }}
REQUIRED_TERRAFORM_VERSION: ${{ matrix.required_version }}

steps:
- name: Check out repository
uses: actions/checkout@v6

- name: Test Terraform initialization policy
run: python -m unittest tests/test_docker_init.py -v

- name: Build Docker image
run: |
build_args=()
if [[ "${{ matrix.override_default }}" == "true" ]]; then
build_args+=(--build-arg "TF_VERSION=${EXPECTED_TERRAFORM_VERSION}")
fi

docker build "${build_args[@]}" \
--build-arg PYTHON_VERSION=3.10 \
-t "${IMAGE_TAG}" \
.

- name: Verify embedded Terraform version
run: |
docker run --rm --entrypoint terraform \
"${IMAGE_TAG}" version | tee terraform-version.txt
grep -F "Terraform v${EXPECTED_TERRAFORM_VERSION}" terraform-version.txt

docker run --rm --entrypoint /bin/sh "${IMAGE_TAG}" \
-c 'printf "%s\n" "$BLAST_RADIUS_TERRAFORM_VERSION"' |
grep -Fx "${EXPECTED_TERRAFORM_VERSION}"

- name: Create minimal Terraform project
run: |
mkdir -p /tmp/blast-radius-tf-smoke
cat > /tmp/blast-radius-tf-smoke/main.tf <<EOF
terraform {
required_version = "${REQUIRED_TERRAFORM_VERSION}"
}

resource "terraform_data" "example" {
input = "blast-radius"
}
EOF

- name: Run Blast Radius container and request graph endpoints
run: |
set -euo pipefail
cleanup() {
docker logs blast-radius-smoke || true
docker rm -f blast-radius-smoke || true
}
trap cleanup EXIT

docker run -d \
--name blast-radius-smoke \
-p 5001:5000 \
-v /tmp/blast-radius-tf-smoke:/data:ro \
--security-opt apparmor:unconfined \
--cap-add=SYS_ADMIN \
"${IMAGE_TAG}"

for i in $(seq 1 30); do
if curl -fsS http://127.0.0.1:5001/ >/tmp/blast-radius-index.html; then
break
fi
sleep 1
done

curl -fsS http://127.0.0.1:5001/ >/tmp/blast-radius-index.html
curl -fsS http://127.0.0.1:5001/graph.svg >/tmp/blast-radius-graph.svg
curl -fsS http://127.0.0.1:5001/graph.json >/tmp/blast-radius-graph.json

grep "<svg" /tmp/blast-radius-graph.svg
grep '"nodes"' /tmp/blast-radius-graph.json
docker logs blast-radius-smoke | grep "Terraform has been successfully initialized"
48 changes: 48 additions & 0 deletions .github/workflows/windows-wheel.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Windows wheel

on:
pull_request:
push:
branches:
- main

permissions:
contents: read

jobs:
wheel:
runs-on: windows-latest
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.10"
cache: pip
- name: Build wheel
run: |
python -m pip install --upgrade pip wheel
python -m pip wheel --wheel-dir wheelhouse .
- name: Install the built wheel
run: |
python -m pip install --force-reinstall wheelhouse/blastradius-*.whl
- name: Verify the Windows console launcher
run: |
blast-radius --help
python -m unittest discover -s tests -v
node --test tests/frontend/*.test.js
- name: Verify serve mode
run: |
blast-radius --serve --host 127.0.0.1 --port 5055 . >server.log 2>&1 &
server_pid=$!
trap 'kill "$server_pid" 2>/dev/null || true' EXIT
for attempt in {1..30}; do
if curl --fail --silent http://127.0.0.1:5055/ >/dev/null; then
exit 0
fi
sleep 1
done
cat server.log
exit 1
18 changes: 18 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,17 @@ venv.bak/
.spyderproject
.spyproject

#IntelliJ IDEA project settings
.ideas
.idea

#VS Code project settings
.vscode
.vscode/

# Embold
.embold/

# Rope project settings
.ropeproject

Expand All @@ -102,3 +113,10 @@ venv.bak/

# mypy
.mypy_cache/

# Terraform configuration
.terraform/
*.tfstate

# Mac
.DS_Store
Loading