feat(cre): bootstrap Crystal project shell

- shard.yml with db, pg, sqlite3, tourmaline (deps), webmock (dev)
- Makefile with build/test/format/lint/demo targets
- .gitignore, .editorconfig, LICENSE (MIT), README skeleton
- ameba lint deferred until libpcre3-dev is available on this env
This commit is contained in:
CarterPerez-dev 2026-04-28 18:05:36 -04:00
parent ef315b072b
commit e69cc301cf
7 changed files with 193 additions and 0 deletions

View File

@ -0,0 +1,15 @@
# ©AngelaMos | 2026
# .editorconfig
root = true
[*]
end_of_line = lf
insert_final_newline = true
charset = utf-8
indent_style = space
indent_size = 2
trim_trailing_whitespace = true
[*.md]
trim_trailing_whitespace = false

View File

@ -0,0 +1,19 @@
# ©AngelaMos | 2026
# .gitignore
/bin/
/lib/
/.shards/
/.crystal/
*.dwarf
.env.local
.env.pending
*.pid
/coverage/
/tmp/
*.log
.DS_Store
# Local-only dev docs (not committed to public repo)
/docs/research/
/docs/plans/

View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2026 Carter Perez
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -0,0 +1,57 @@
# ©AngelaMos | 2026
# Makefile
.PHONY: build build-dev test test-unit test-integration lint format format-check demo demo-full demo-full-down check ci clean
CRYSTAL ?= crystal
SHARDS ?= shards
build:
$(SHARDS) build cre --release --no-debug
build-dev:
$(SHARDS) build cre
test:
$(CRYSTAL) spec --order=random
test-unit:
$(CRYSTAL) spec spec/unit --order=random
test-integration:
$(CRYSTAL) spec spec/integration --order=random
lint:
@if [ -x ./bin/ameba ]; then \
./bin/ameba; \
else \
echo "ameba not installed (requires libpcre3-dev on Debian 13+); skipping lint"; \
fi
format:
$(CRYSTAL) tool format
format-check:
$(CRYSTAL) tool format --check
demo:
$(SHARDS) build cre && ./bin/cre demo
demo-full:
docker compose -f docker/docker-compose.yml up -d
@echo "Waiting for services..."
@sleep 8
$(SHARDS) build cre && ./bin/cre run --config=config/demo-full.cr
demo-full-down:
docker compose -f docker/docker-compose.yml down -v
check:
$(MAKE) format-check
$(MAKE) lint
$(MAKE) test
ci: check
clean:
rm -rf bin lib .shards .crystal coverage tmp

View File

@ -0,0 +1,13 @@
<!--
©AngelaMos | 2026
README.md
-->
# Credential Rotation Enforcer (cre)
A Crystal-based daemon that tracks and enforces credential rotation
policies across AWS Secrets Manager, HashiCorp Vault, GitHub fine-grained
PATs, and local `.env` files.
> Full README, asciinema demos, and walkthrough live in `learn/`.
> This README will be expanded in Phase 16 of the build.

View File

@ -0,0 +1,33 @@
version: 2.0
shards:
db:
git: https://github.com/crystal-lang/crystal-db.git
version: 0.11.0
html5:
git: https://github.com/naqvis/crystal-html5.git
version: 0.4.0
http_proxy:
git: https://github.com/mamantoha/http_proxy.git
version: 0.14.0+git.commit.5a02af05c5531c639efdf651431a86ec90905f71
pg:
git: https://github.com/will/crystal-pg.git
version: 0.26.0
sqlite3:
git: https://github.com/crystal-lang/crystal-sqlite3.git
version: 0.19.0
tourmaline:
git: https://github.com/protoncr/tourmaline.git
version: 0.28.0
webmock:
git: https://github.com/manastech/webmock.cr.git
version: 0.14.0
xpath2:
git: https://github.com/naqvis/crystal-xpath2.git
version: 0.2.0

View File

@ -0,0 +1,35 @@
# ©AngelaMos | 2026
# shard.yml
name: cre
version: 0.1.0
description: |
Credential Rotation Enforcer - tracks and enforces credential rotation
policies across cloud secret managers, vaults, and developer tooling.
authors:
- Carter Perez <carterperez2222@gmail.com>
license: MIT
crystal: ">= 1.20.0"
targets:
cre:
main: src/cre.cr
dependencies:
db:
github: crystal-lang/crystal-db
version: ~> 0.9
pg:
github: will/crystal-pg
version: ~> 0.9
sqlite3:
github: crystal-lang/crystal-sqlite3
version: ~> 0.9
tourmaline:
github: protoncr/tourmaline
version: ~> 0.28
development_dependencies:
webmock:
github: manastech/webmock.cr
version: ~> 0.9