diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/.github/workflows/ci.yml b/PROJECTS/intermediate/credential-rotation-enforcer/.github/workflows/ci.yml new file mode 100644 index 00000000..18687c0a --- /dev/null +++ b/PROJECTS/intermediate/credential-rotation-enforcer/.github/workflows/ci.yml @@ -0,0 +1,73 @@ +# ©AngelaMos | 2026 +# ci.yml + +name: CI - Credential Rotation Enforcer + +on: + push: + paths: + - 'PROJECTS/intermediate/credential-rotation-enforcer/**' + - '.github/workflows/cre-*.yml' + pull_request: + paths: + - 'PROJECTS/intermediate/credential-rotation-enforcer/**' + +defaults: + run: + working-directory: PROJECTS/intermediate/credential-rotation-enforcer + +jobs: + format: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: crystal-lang/install-crystal@v1 + with: + crystal: 1.20.0 + - run: crystal tool format --check + + unit: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, macos-latest] + crystal: ["1.19.0", "1.20.0", "nightly"] + steps: + - uses: actions/checkout@v4 + - uses: crystal-lang/install-crystal@v1 + with: + crystal: ${{ matrix.crystal }} + - run: shards install + - run: crystal spec spec/unit --order=random + + integration: + runs-on: ubuntu-latest + services: + postgres: + image: postgres:16 + env: + POSTGRES_USER: cre_test + POSTGRES_PASSWORD: cre_test + POSTGRES_DB: cre_test + ports: [5432:5432] + options: --health-cmd "pg_isready -U cre_test" --health-interval 10s + env: + DATABASE_URL: postgres://cre_test:cre_test@localhost:5432/cre_test + steps: + - uses: actions/checkout@v4 + - uses: crystal-lang/install-crystal@v1 + with: + crystal: 1.20.0 + - run: shards install + - run: crystal spec spec/integration --order=random + + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: crystal-lang/install-crystal@v1 + with: + crystal: 1.20.0 + - run: shards install + - run: shards build cre --release diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/spec/fixtures/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/spec/fixtures/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/spec/fixtures/policies/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/spec/fixtures/policies/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/spec/integration/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/spec/integration/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/spec/integration/aws/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/spec/integration/aws/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/spec/integration/demo/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/spec/integration/demo/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/spec/integration/engine/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/spec/integration/engine/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/spec/integration/persistence/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/spec/integration/persistence/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/spec/integration/rotators/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/spec/integration/rotators/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/spec/integration/tui/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/spec/integration/tui/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/spec/integration/vault/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/spec/integration/vault/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/spec/spec_helper.cr b/PROJECTS/intermediate/credential-rotation-enforcer/spec/spec_helper.cr new file mode 100644 index 00000000..0b70b0dd --- /dev/null +++ b/PROJECTS/intermediate/credential-rotation-enforcer/spec/spec_helper.cr @@ -0,0 +1,7 @@ +# =================== +# ©AngelaMos | 2026 +# spec_helper.cr +# =================== + +require "spec" +require "../src/cre" diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/audit/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/audit/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/aws/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/aws/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/cli/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/cli/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/compliance/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/compliance/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/crypto/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/crypto/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/domain/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/domain/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/engine/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/engine/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/events/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/events/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/github/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/github/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/notifiers/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/notifiers/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/persistence/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/persistence/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/persistence/sqlite/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/persistence/sqlite/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/policy/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/policy/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/rotators/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/rotators/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/tui/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/tui/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/vault/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/vault/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/src/cre.cr b/PROJECTS/intermediate/credential-rotation-enforcer/src/cre.cr new file mode 100644 index 00000000..6251157b --- /dev/null +++ b/PROJECTS/intermediate/credential-rotation-enforcer/src/cre.cr @@ -0,0 +1,16 @@ +# =================== +# ©AngelaMos | 2026 +# cre.cr +# =================== + +require "./cre/version" + +module CRE + def self.main(argv : Array(String)) : Int32 + 0 + end +end + +if PROGRAM_NAME.includes?("cre") + exit CRE.main(ARGV) +end diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/audit/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/audit/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/aws/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/aws/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/cli/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/cli/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/compliance/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/compliance/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/config/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/config/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/crypto/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/crypto/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/demo/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/demo/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/domain/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/domain/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/engine/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/engine/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/engine/subscribers/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/engine/subscribers/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/events/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/events/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/github/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/github/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/notifiers/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/notifiers/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/persistence/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/persistence/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/persistence/postgres/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/persistence/postgres/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/persistence/sqlite/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/persistence/sqlite/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/policy/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/policy/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/rotators/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/rotators/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/tui/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/tui/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/vault/.gitkeep b/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/vault/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/version.cr b/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/version.cr new file mode 100644 index 00000000..40aae0cd --- /dev/null +++ b/PROJECTS/intermediate/credential-rotation-enforcer/src/cre/version.cr @@ -0,0 +1,8 @@ +# =================== +# ©AngelaMos | 2026 +# version.cr +# =================== + +module CRE + VERSION = "0.1.0" +end