Commit Graph

475 Commits

Author SHA1 Message Date
CarterPerez-dev 1b8cfc9589 feat: wire RotationWorker + Telegram in cre run + CONFIGURATION.md guide
Two changes that go together:

1. RotationWorker (src/cre/engine/rotation_worker.cr) is the missing
   subscriber that turns RotationScheduled events into actual 4-step
   rotations. Without it, the daemon ticked, evaluated, fired
   RotationScheduled, and... nothing happened. Now it dispatches via
   the orchestrator using a kind -> Rotator dispatch table populated
   at boot.

2. cre run now wires:
   - All 4 rotators based on env vars (AWS_ACCESS_KEY_ID, VAULT_ADDR/TOKEN,
     GITHUB_TOKEN). EnvFile is always available.
   - Telegram subscriber + bot if TELEGRAM_TOKEN + chat-id env vars set.
   Boot output reports which rotators wired and whether telegram is on.

3. CONFIGURATION.md: full operator setup guide. 13 sections covering
   required env vars, Postgres setup with role hardening, key generation,
   policy authoring, inventory seeding (per-rotator tag schemas), AWS IAM
   policy, Vault token policy.hcl, GitHub admin PAT acquisition, Telegram
   bot creation + chat ID discovery, systemd unit with hardening
   directives, audit chain verification, KEK rotation procedure, and a
   13-item production security checklist.
2026-04-29 01:42:45 -04:00
CarterPerez-dev f156941cd8 docs(encrypted-p2p-chat): add DEMO.md with UI screenshots
Walks through the full flow — passkey registration, passkey login,
new conversation lookup, empty thread, first message, end-to-end
chat, and mobile view — matching the format used by the bug-bounty
and SIEM project demos.
2026-04-29 01:42:05 -04:00
CarterPerez-dev 7835aa4dc5 feat(demo): add tui-demo command + fix demo-full recipe
cre tui-demo (8 seconds default) renders the live TUI with synthetic
events: 4 fake credentials going through rotation states, a policy
violation, drift detection, an apply-step failure, and a critical alert.
Lets you see what watch mode looks like without seeding any real data.

demo-full: dropped the bogus --config=... flag (cre run never
implemented config-file loading; uses env vars + --db). Now exports
the four service URLs (DATABASE_URL, AWS_ENDPOINT, VAULT_ADDR,
GITHUB_API_BASE) at the user's manually-set ports (6022/45666/18201/7115)
and runs the daemon against the real Postgres. Added demo-full-status
to peek at container health.
2026-04-29 01:34:25 -04:00
CarterPerez-dev 73e3488edc chore: replace Makefile with justfile to match repo convention
Justfile mirrors the haskell-reverse-proxy pattern (grouped recipes:
build, run, demo, test, quality, db, util). 33 recipes covering full
lifecycle - including parameterized recipes (cre rotate ID, cre policy
show NAME) that read more naturally as 'just rotate ...' than as
make targets.

User-edited docker-compose.yml port mappings preserved
(postgres:18 on 6022, localstack on 45666, vault on 18201,
fake-github on 7115).
2026-04-29 01:28:37 -04:00
CarterPerez-dev a40d064009 fix(credential-enumeration): rename .nimble to credenum.nimble
Nim package names cannot contain hyphens, so `nimble install -y nph`
in the lint workflow aborted on `validatePackageName` before nph could
be installed, causing the Nim lint job to fail with `nph: command not
found`. Renaming the manifest to match the binary name resolves it
and lets contributors run nimble inside the project.
2026-04-29 01:23:40 -04:00
CarterPerez-dev 33cddb57cd fix(demo): wire AuditSubscriber so events reach the audit log
Tier 1 demo was creating an AuditLog instance but never subscribing it
to the bus, so the verification step always reported '0 events'.
Now we explicitly start the AuditSubscriber and the verifier reports
the actual chain length (4 step events + RotationCompleted = 5).
2026-04-29 01:22:18 -04:00
CarterPerez-dev 51287d3f7d docs: install.sh + learn/ walkthrough series + full README
install.sh: cross-platform Crystal version check, libpcre2 dependency
hint, shards install + release build, optional install to PATH via
INSTALL_TO_PATH=1.

learn/:
  00-OVERVIEW.md       - quick start + three-tier demo path
  01-CONCEPTS.md       - rotation theory, real breaches (SolarWinds,
                         Codecov, LastPass, Storm-0558, Snowflake/UNC5537),
                         framework controls
  02-ARCHITECTURE.md   - bus + plugin diagrams, three-layer audit integrity,
                         AEAD envelope encryption layer breakdown
  03-IMPLEMENTATION.md - code walkthrough pointing at each key file
  04-CHALLENGES.md     - 10 ranked extension challenges (PG ALTER USER
                         rotator, Slack notifier, ML-KEM hybrid wrap,
                         OpenTimestamps anchoring, SPIFFE workload identity,
                         JIT credential broker, etc.)

README.md: full hero + badges + quick start + subcommand cheatsheet +
flagship rotator table + ASCII architecture diagram + project layout
+ links to learn/ + test suite instructions.
2026-04-29 01:21:17 -04:00
CarterPerez-dev a19e8669d2 feat(demo): Tier 1 zero-deps demo + Tier 2 docker-compose scaffold
Tier 1 (cre demo): in-memory SQLite + tempfile .env rotator. Walks
through inventory -> before -> 4-step rotation -> after -> audit chain
verify. Narrates every step event live with green/red glyphs. Runs in
under 1 second on commodity hardware, no external deps.

Tier 2 (docker/docker-compose.yml): postgres:16, localstack
(secretsmanager), hashicorp/vault dev mode, plus a fake-GitHub Flask
app that mocks /user, POST/DELETE /user/personal-access-tokens.
config/demo-full.cr.example documents env vars for the full stack.

Also fixed env_file rotator newline preservation (lines(chomp: true)
+ explicit \n join) so the rotated file is properly delimited.
2026-04-29 01:16:08 -04:00
CarterPerez-dev 7ce0cb48bd feat(compliance): evidence bundle export + framework control mapping
ControlMapping for SOC2 (CC6.1, CC6.6, CC6.7, CC4.1, CC7.x), PCI-DSS
(8.3.9, 8.6.3, 10.5.x, 3.7.4), ISO 27001:2022 (A.5.16, A.5.17, A.5.18,
A.8.5, A.8.15, A.8.16, A.8.24), HIPAA (164.308 / 164.312). Mapping is
intentionally minimal - each event maps only where it provides direct
evidence.

Bundle.write produces a self-verifying ZIP:
- audit_log.ndjson (raw chain rows with hex hashes)
- audit_batches.json (signed Merkle roots)
- control_mapping.json (event_type -> controls)
- manifest.json (per-file SHA-256 + size)
- README.md (verification instructions)
- public_key.pem + manifest.sig (Ed25519, when signer provided)

7 specs verify ZIP layout, manifest sha256-per-file, control mapping
content per framework.
2026-04-29 01:14:02 -04:00
CarterPerez-dev 545e189b43 feat(cli): subcommand dispatch with 9 commands + output formatters
CLI grammar:
  cre run                    daemon (sqlite or postgres)
  cre watch                  daemon + live TUI in same process
  cre check                  one-shot policy eval (CI-friendly exit codes)
  cre rotate <id>            manual rotation
  cre policy list / show     compile-time-baked policy registry inspection
  cre export --framework=X   compliance bundle (Phase 14 stub)
  cre audit verify           hash chain + HMAC + Merkle integrity verification
  cre demo                   Tier 1 demo (Phase 15 stub)
  cre version                version
  cre help                   usage

Output module: human / json / ndjson formatter; CI-friendly exit codes
(0 ok, 1 violations/error, 64 usage, 2 audit-chain-broken).

run/watch wire engine + persistence + scheduler + evaluator + log
notifier (and TUI for watch); SIGINT triggers graceful shutdown.

7 unit specs cover usage / version / policy-list-empty / policy-show-404
/ unknown-subcommand / check-no-violations. All commands callable
end-to-end against a working binary.
2026-04-29 01:12:46 -04:00
CarterPerez-dev 9651ff56f1 feat(tui): hand-rolled live monitor with ANSI primitives + 4 panels
Stack:
- Ansi: stdlib-only escape helpers (move, colorize, strip)
- State: rolling view of active rotations + recent events; trims to N
- Renderer: paints header / status / active / recent panels; works against
  any IO so tests assert against IO::Memory
- Tui: ties State + Renderer to event bus; coalesces repaints to a tick
  interval (default 200ms) to avoid flicker under burst events

Active rotation rows show step progress as a filled-bar (▰▰▰▱). Recent
events list latest 8 with timestamp + severity glyph (✓ / ⚠ / !). The
renderer's pad/center helpers correctly account for ANSI escape widths
when computing visible column width.

9 specs cover ANSI helpers (color codes, cursor move, strip), State
event-to-row mapping with completion bookkeeping and ring-buffer trim,
and Renderer output assertions across empty + active + populated states.
2026-04-29 01:09:20 -04:00
CarterPerez-dev 67d65a934f feat(notifiers): structured-log subscriber + Telegram bidirectional bot
LogNotifier subscribes (Drop overflow) and emits stdlib Log lines with
structured kwargs (credential_id, rotation_id, severity, etc.) suitable
for downstream ingestion by journald/vector/fluentd.

Telegram is a thin HTTP::Client wrapper for sendMessage and getUpdates.
TelegramSubscriber sends emoji-prefixed alerts on RotationFailed,
DriftDetected, PolicyViolation, AlertRaised; success notifications gated
by the notify_on_success flag. Errors are swallowed so a flaky bot never
blocks the engine.

TelegramBot does long-polling getUpdates and dispatches commands:
- viewer tier: /status /queue /history /alerts /help
- operator tier: viewer + /rotate + /snooze
ACL is by chat_id allowlist (bot token + chat IDs in env vars).
/rotate publishes RotationScheduled to the bus.

11 unit specs cover send_message + error handling + getUpdates parsing,
subscriber dispatch, success-suppression flag, and bot ACL enforcement
(unauthorized / viewer-blocked-from-mutations / operator-can-rotate).
2026-04-29 01:07:44 -04:00
CarterPerez-dev d7d5f10825 feat(engine): Scheduler fiber publishes SchedulerTick on a fixed interval
Initial tick fires immediately on start so first policy evaluation
doesn't wait for the full interval on boot. The PolicyEvaluator
subscribes to SchedulerTick events and invokes evaluate_all -> overdue
discovery -> RotationScheduled fan-out. 3 specs verify boot-tick,
periodic cadence, and clean stop().
2026-04-29 01:05:44 -04:00
CarterPerez-dev 873257ad4b feat(rotators): GitHub fine-grained PAT rotator + thin GitHub API client
Github::Client wraps the bearer-auth REST API with required
'X-GitHub-Api-Version: 2022-11-28' header. Implements me, create_pat
(POST /user/personal-access-tokens), delete_pat (DELETE by id).

GithubPatRotator's 4-step contract:
- generate: create_pat returns new id + token value (fresh PAT alongside old)
- apply: no-op (create_pat already active)
- verify: probe-client uses the NEW PAT to GET /user; success means it works
- commit: delete OLD PAT by id (tracked via old_pat_id tag)
- rollback_apply: delete NEW PAT

7 unit specs verify create/delete/me round-trips, full rotation path,
verify-on-401, and rollback deletion.
2026-04-29 01:05:10 -04:00
CarterPerez-dev d431e9014e feat(rotators): Vault dynamic-secrets rotator + thin Vault client
Vault::Client wraps token-auth REST: read_dynamic, revoke_lease,
renew_lease, health. Errors surface as VaultError carrying status.

VaultDynamicRotator's rotation contract leans on Vault as the secret
factory:
- generate: read_dynamic (Vault issues new creds + lease)
- apply: no-op (Vault already provisioned)
- verify: lease renewal acts as liveness check
- commit: revoke OLD lease (tracked in current_lease_id tag)
- rollback_apply: revoke NEW lease

8 unit specs cover client method round-trips, rotator full path with
old-lease revocation, verify-on-Vault-error handling, rollback, and
the no-old-lease pass-through case.
2026-04-29 01:04:12 -04:00
CarterPerez-dev a4a9e1170a feat: add Aenebris.ML.Middleware (Wai integration for ML pipeline)
- New Aenebris.ML.Middleware module: Wai middleware that wires the
  Aenebris.ML.Engine into the per-request pipeline. Per request:
    1. Run extractFeatures (FeatureContext + Request) -> FeatureVector
    2. Convert via featureVectorToVector -> VU.Vector Double
    3. runEngine eng fv -> DecisionDetails
    4. Route by ddDecision:
       DecisionHuman     -> pass through to inner Application,
                            optionally attach X-Aenebris-ML-Decision
                            and X-Aenebris-ML-Score response headers
       DecisionBot       -> 403 + text/plain block body
       DecisionChallenge -> 403 + text/html challenge page
  All response builders are operator-overridable via the
  MLMiddlewareConfig record. Optional logging callback fires once
  per request for structured logs / metrics integration.

- defaultBotResponse, defaultChallengeResponse: sensible defaults
  matching the existing WAF middleware pattern (403 + descriptive
  body). decisionResponseHeader / scoreResponseHeader are exported
  so operators can build custom responses that still surface the
  signal headers.

- 12 tests via Network.Wai.Test.runSession covering: pass-through
  on Human, 403 on Bot, 403 on Challenge with text/html body,
  signal-header attachment toggle, custom response builder override,
  logging callback invocation count.

- aenebris.cabal: expose Aenebris.ML.Middleware in the library stanza.
- test/Spec.hs: add modifyTVar' to the Control.Concurrent.STM import
  list for the logging-callback test.

- 354 total examples passing, 0 GHC warnings on the new module.

This closes the core Phase 2.5 ML pipeline. The full sequence
(Features -> Model -> Loader -> Inference -> Calibration -> IForest
-> Engine -> Middleware) is now fully implemented and integration-
tested. A hosted Aenebris instance can now be configured with a
trained LightGBM model + optional calibrator + optional IForest
and will block bots, challenge ambiguous traffic, and pass humans
on every HTTP request.
2026-04-29 01:04:01 -04:00
CarterPerez-dev 7e23f58fbb feat(rotators): AWS Secrets Manager rotator with SigV4 signer + secrets client
SigV4 implementation per AWS reference: canonical request -> string-to-sign
-> HMAC-derived signing key (kSecret -> kDate -> kRegion -> kService ->
kSigning) -> HMAC-SHA256 signature. Includes session token (STS) support.

SecretsManagerClient wraps PutSecretValue, GetSecretValue,
UpdateSecretVersionStage with custom endpoint support (LocalStack).
AWS API errors surface as AwsApiError carrying HTTP status + AWS __type.

AwsSecretsRotator implements 4-step contract:
- generate: PutSecretValue with AWSPENDING stage, captures version_id
- apply: no-op (PutSecretValue already exposed it)
- verify: GetSecretValue by version_id, byte-equal SecretString check
- commit: UpdateSecretVersionStage move AWSCURRENT to new + remove from old
- rollback_apply: UpdateSecretVersionStage remove AWSPENDING from new version

13 unit specs verify SigV4 idempotence + format, client methods (with
WebMock), rotator's full 4-step path, verify-mismatch, rollback_apply,
and can_rotate? gating.
2026-04-29 01:02:40 -04:00
CarterPerez-dev bad50daad2 feat(rotators): abstract Rotator with macro registration + EnvFileRotator + 4-step orchestrator
Rotator base exposes the four lifecycle methods as abstract; subclasses
register at compile time via 'register_as :kind' macro. REGISTRY is
populated as soon as the rotator file is required - drop a new file in
src/cre/rotators/ and the orchestrator can dispatch to it.

EnvFileRotator implements the simplest rotation:
- generate: 32 random bytes -> base64-urlsafe (no padding)
- apply: write to PATH.pending atomically (in-place line replace, 0600)
- verify: parse pending file, confirm key=value present and non-empty
- commit: rename PATH.pending -> PATH (atomic on POSIX)
- rollback_apply: unlink PATH.pending

RotationOrchestrator runs the 4-step contract with full event publishing,
state machine transitions in DB (generating -> applying -> verifying ->
committing -> completed | failed), and rollback_apply on apply/verify
failure. 8 specs cover happy path + raised-during-apply + rollback verification.
2026-04-29 00:59:01 -04:00
CarterPerez-dev 538395ebcc feat(policy): Crystal Policy as Code DSL with macros + compile-time enum autocast
- Policy struct: matcher Proc, max_age, warn_at, enforce_action, notify_channels, triggers
- Builder validates all required fields at .build, raises BuilderError with the policy name
- DSL exposes top-level 'policy' method via 'with builder yield' so all
  builder methods (description, match, max_age, enforce, notify_via, etc.)
  are receiver-less inside the block
- Symbol literals autocast to Action/Channel/Trigger enums on direct calls;
  Symbol overload for splat parameters (notify_via :telegram, :email)
- Evaluator subscribes to bus, fires PolicyViolation + RotationScheduled
  (rotate_immediately) or AlertRaised (notify_only/quarantine) when overdue
- 15 unit specs cover Policy.matches?/overdue?/in_warning_window?,
  Builder validation, DSL syntax with closures, evaluator action dispatch
2026-04-29 00:56:29 -04:00
CarterPerez-dev a98de6f8f4 feat: add Aenebris.ML.Engine decision pipeline
- New Aenebris.ML.Engine module: pure decision pipeline composing
  the previously-built Loader, Inference, Calibration, and IForest
  modules into a single per-request scoring path.
  Engine record holds (Ensemble, Calibrator, Maybe IForest,
  EngineConfig); runEngine takes a feature vector and produces
  DecisionDetails (Decision, raw proba, calibrated proba, optional
  IForest score). The Decision is one of DecisionHuman, DecisionBot,
  or DecisionChallenge.

- Implements the escalation-gate semantics per the 2026 research
  correction (over the deprecated 0.8/0.2 weighted blend):
    calibrated <= humanThreshold       -> DecisionHuman
    calibrated >= botThreshold         -> DecisionBot
    otherwise (ambiguous band):
      if IForest configured and ifScore >= escalation threshold
        -> DecisionBot (escalation)
      else if challenges enabled
        -> DecisionChallenge
      else
        -> DecisionHuman (fallthrough)
  Defaults: 0.3 / 0.7 thresholds, 0.6 IForest escalation, challenges
  on by default.

- 17 tests covering: defaultEngineConfig values, decision boundaries
  with NoCalibrator and no IForest (low/mid/high leaf ensembles),
  ambiguous-band escalation via low-vs-high anomaly IForests,
  ambiguous-band with challenges disabled (fallthrough to Human or
  escalation to Bot), Platt calibrator pulling decisions across
  thresholds, and DecisionDetails field correctness.

- aenebris.cabal: expose Aenebris.ML.Engine in the library stanza.

- 342 total examples passing, 0 GHC warnings on the new module.

The Wai middleware wiring (extract features -> runEngine -> route by
Decision) is the next module (ML.Middleware); Engine intentionally
stays pure / independent of HTTP machinery so it can be unit-tested
without request fixtures.
2026-04-29 00:55:58 -04:00
CarterPerez-dev 2ba81cfd82 feat(engine): typed event hierarchy + EventBus with fanout + AuditSubscriber + Engine
Events form a Crystal class hierarchy so subscribers pattern-match
exhaustively. EventBus delivers to subscribers via Crystal channels with
per-subscriber overflow policy (Block for audit, Drop for best-effort).

AuditSubscriber listens for all rotation/policy/drift/alert events and
serializes them into the hash-chained audit log via AuditLog.append.

Engine wires Persistence + AuditLog + AuditSubscriber + EventBus together
so callers just .start/.stop. 7 unit specs verify boot, fanout to N
subscribers, drop-on-overflow semantics, and end-to-end event -> audit row.
2026-04-29 00:47:45 -04:00
CarterPerez-dev fe5e9cd07b feat(audit): hash chain + HMAC ratchet + Merkle batches + Ed25519 signing
Three layers of integrity:
- Hash chain (SHA-256 chained) catches silent edits
- HMAC ratchet rotates keys every N entries with HKDF-style derivation
  and zeroizes old key bytes from memory
- Merkle batch sealing builds tree over content_hashes, signs root
  with Ed25519 (FFI to libcrypto EVP_PKEY_ED25519 directly since stdlib
  lacks the high-level OpenSSL::PKey wrapper)

AuditLog.append is mutex-guarded for serial writes; verify_chain detects
both single-row tampering and structural inconsistency. BatchSealer's
pack_message format (BE start_seq || BE end_seq || merkle_root) is shared
between signer and verifier so external auditors can validate offline.
2026-04-29 00:45:54 -04:00
CarterPerez-dev 4723716e08 feat(crypto): AEAD envelope encryption with AES-256-GCM, KEK loader, secure random
- Random with constant-time-equal helper
- KEK loader from env (Tier 1) with InvalidKekError on bad/missing var
- AEAD via direct LibCrypto FFI bindings (Crystal 1.20 stdlib OpenSSL::Cipher
  doesn't expose GCM auth_data/auth_tag, so we extend LibCrypto with
  EVP_CIPHER_CTX_ctrl + EVP_aes_256_gcm and call them directly)
- Envelope: per-row DEK wrapped by KEK, AAD-bound, algorithm_id reserved
  for crypto agility (0x01 = AES-256-GCM today, 0x02/0x03 reserved)
- 17 unit specs including a 100-iteration random property test
- Tag-tampered ciphertext / wrong-AAD / wrong-key all raise Aead::Error
2026-04-29 00:43:12 -04:00
CarterPerez-dev 989635e7b0 feat: add Aenebris.ML.IForest for anomaly scoring
- New Aenebris.ML.IForest module: pure Isolation Forest scorer
  implementing the Liu et al. 2008 ICDM formula
  anomaly_score = 2^(-E[h(x)] / c(n))
  where E[h(x)] is the average path length across iTrees and
  c(n) = 2*H(n-1) - 2(n-1)/n  (expected unsuccessful BST search depth).
  ITree ADT (ITreeLeaf size | ITreeSplit featIdx threshold left right)
  with leaf-size c(n) correction added to traversal depth at every
  leaf, matching the original paper. Score-only mode (accept pre-
  trained forests from Python sklearn or similar); fitting is deferred
  to a later phase. Default constants from Liu et al.: 100 trees,
  256 subsample size, max depth ceil(log2(256)) = 8.

- 24 tests covering: harmonicNumber edge cases (H(0), H(1), H(2),
  H(3), large-n asymptotic), normalizationConstant for n in {0, 1,
  2, 256}, single-split and deep-tree path length traversal,
  scoreIForest edge cases (empty forest, subsample 0, subsample 1),
  shorter-path-equals-higher-score invariant, default constants,
  Euler-Mascheroni precision.

- aenebris.cabal: expose Aenebris.ML.IForest in the library stanza.
- test/Spec.hs: import Expectation explicitly from Test.Hspec for the
  shouldBeApprox helper.

- 325 total examples passing, 0 GHC warnings on the new module.

The escalation-gate composition with the calibrated GBDT score
(per docs/research/phase-2.5-ml-synthesis.md correction over the
0.8/0.2 folk-wisdom blend) is intentionally NOT in this module --
it belongs in the downstream ML.Engine module that wires Loader +
Inference + Calibration + IForest into a single decision pipeline.
2026-04-29 00:42:18 -04:00
CarterPerez-dev 5971cbd33e feat(persistence): PostgreSQL adapter with append-only audit trigger
- All 4 repos mirror the SQLite contracts using PG-native types
  (UUID, BYTEA, JSONB, BIGSERIAL, TIMESTAMPTZ, SMALLINT)
- audit_no_modify() trigger refuses UPDATE/DELETE/TRUNCATE on audit_events
- pg_advisory_xact_lock for cross-process row locking
- Integration tests verify trigger fires correctly on tamper attempt
- Test cleanup helper temporarily disables trigger to reset between specs
- 4 integration specs all green against PostgreSQL 16
2026-04-29 00:39:53 -04:00
CarterPerez-dev 58e12941e9 feat(persistence): SQLite adapter with credentials/versions/rotations/audit repos
All four repos implement their abstract contracts. Migrations create
tables idempotently. Bytes round-trip through SQLite BLOB columns
correctly. RotatorKind and RotationState enums replace Symbol fields
in record types so they round-trip safely through DB string columns.
8 unit specs verify CRUD, find_by_external, in_flight filtering,
revocation, and audit append/range/latest_hash genesis behavior.
2026-04-29 00:36:22 -04:00
CarterPerez-dev e5c2f59675 feat: add Aenebris.ML.Inference and Aenebris.ML.Calibration
- New Aenebris.ML.Inference module: pure tree-walk over the unified Tree
  SoA produced by Aenebris.ML.Loader. Mirrors LightGBM C++ NumericalDecision
  exactly: NaN remapped to 0 unless MissingType=NaN; MissingType=Zero/NaN
  routes via default-left flag; '<=' predicate (not '<'); categorical
  bitmap test using cat_boundaries slice; average_output divisor for RF
  mode; sigmoid link for binary logistic objective. kZeroThreshold = 1e-35
  matches LightGBM's IsZero exactly. Defensive against NaN/Inf/negative
  on categorical paths. 35 tests covering leaf-only, numerical splits,
  missing-value semantics, categorical routing, multi-tree sums, sigmoid
  saturation, average_output, regression vs binary objectives, and
  end-to-end against the disk fixture.

- New Aenebris.ML.Calibration module: pure calibration of binary
  classifier outputs. Calibrator ADT (NoCalibrator | PlattCalibrator a b
  | IsotonicCalibrator bp). Platt scaling uses Newton's method with
  damped line search on Platt-1999 smoothed targets (N+ + 1)/(N+ + 2)
  and 1/(N- + 2); numerically stable softplus-based log-loss. Isotonic
  regression uses Pool Adjacent Violators on a stack with tie pre-
  grouping, sorted (raw, calibrated) breakpoints, linear interpolation,
  out-of-range clamping. Sub-2-sample input returns NoCalibrator. 28
  tests covering all three calibrator constructors, fit edge cases,
  Platt convergence on logistic data, isotonic correction of non-
  monotone data, tie handling, all-same-label degenerate cases, and
  lookup behavior including clamping and interpolation.

- aenebris.cabal: expose both new modules in the library stanza.

- 301 total examples passing, 0 GHC warnings on either new module.
2026-04-29 00:35:07 -04:00
CarterPerez-dev fb4e26c798 feat(persistence): abstract Persistence + repo contracts (CredentialsRepo, VersionsRepo, RotationsRepo, AuditRepo) and record types 2026-04-29 00:33:26 -04:00
CarterPerez-dev d91477cfa1 feat(domain): NewSecret and CredentialVersion structs
CredentialVersion adds a revoked? predicate so callers don't need to
nil-check revoked_at directly. Both structs are immutable value types.
2026-04-29 00:32:53 -04:00
CarterPerez-dev fd77a4c323 feat(domain): Credential struct with kind enum and tag accessor
CredentialKind enum covers AwsSecretsmgr, AwsIamKey, VaultDynamic,
GithubPat, EnvFile, Database. Auto-generated kind predicates
(c.kind.aws_secretsmgr?) drive policy matching at compile time.
tag() accepts both string and symbol keys.
2026-04-29 00:28:54 -04:00
CarterPerez-dev 8ebdd3fee7 feat(cre): source tree skeleton with empty module dirs and CI workflow
- src/cre.cr entry point + version.cr
- Empty module dirs: cli, tui, engine, events, rotators, policy, audit, crypto, persistence, notifiers, compliance, config, domain, aws, vault, github, demo
- spec/ unit + integration + fixtures structure mirroring src/
- spec_helper.cr with stdlib spec + cre require
- GitHub Actions CI: format, unit matrix (Crystal 1.19/1.20/nightly x ubuntu/macos), integration with PG service, build job
2026-04-28 23:54:59 -04:00
CarterPerez-dev e69cc301cf 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
2026-04-28 18:05:36 -04:00
Carter Perez 2a4f559ea2
Update DEMO.md 2026-04-28 18:03:08 -04:00
Carter Perez 0fbd09c264
Update DEMO.md 2026-04-28 18:01:21 -04:00
CarterPerez-dev b70da08b70 Merge remote-tracking branch 'origin/main' into chore/haskell-reverse-proxy-finish
# Conflicts:
#	TEMPLATES/fullstack-template
2026-04-28 17:57:03 -04:00
CarterPerez-dev a302741b1e feat: add Aenebris.ML.Loader for LightGBM v4 model parsing
- New Aenebris.ML.Loader module: pure ByteString -> Either ParseError Ensemble
  parser for LightGBM v4 plain-text models. Header / tree-blocks / trailing-
  section state machine; converts split-arrays + leaf-arrays into the unified
  Tree SoA via unifyChild + complement; rejects non-v4, multi-class, and
  is_linear=1; extracts embedded sigmoid scale and bare average_output flag;
  runs validateEnsemble before returning.
- Frozen test fixtures under test/fixtures/ml/ (tiny_lgbm_v4.txt,
  stump_lgbm_v4.txt) hand-crafted from the v4 spec annotated example. CI runs
  against these with zero Python dependency.
- scripts/regen_lgbm_fixture.py: uv-runnable PEP 723 script that retrains a
  tiny binary GBDT and writes to a separate
  test/fixtures/ml/regen_sample_v4.txt so the frozen fixtures stay pristine.
- 30 new mlLoaderSpec tests covering happy path, header rejection, sigmoid
  extraction, average_output, tree-level rejection, feature_names with '=',
  and ParseError reporting. 238 total examples passing, 0 GHC warnings on
  Loader.
2026-04-28 17:35:33 -04:00
Carter Perez ee684e5307
Merge pull request #196 from CarterPerez-dev/dependabot/pip/PROJECTS/intermediate/api-security-scanner/backend/python-multipart-0.0.26
chore(deps): bump python-multipart from 0.0.21 to 0.0.26 in /PROJECTS/intermediate/api-security-scanner/backend
2026-04-26 23:55:34 -04:00
dependabot[bot] 30fa1ce440
chore(deps): bump python-multipart
Bumps [python-multipart](https://github.com/Kludex/python-multipart) from 0.0.21 to 0.0.26.
- [Release notes](https://github.com/Kludex/python-multipart/releases)
- [Changelog](https://github.com/Kludex/python-multipart/blob/main/CHANGELOG.md)
- [Commits](https://github.com/Kludex/python-multipart/compare/0.0.21...0.0.26)

---
updated-dependencies:
- dependency-name: python-multipart
  dependency-version: 0.0.26
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-27 03:54:00 +00:00
Carter Perez eb1cdb4671
Merge pull request #190 from CarterPerez-dev/dependabot/uv/PROJECTS/advanced/ai-threat-detection/backend/python-dotenv-1.2.2
chore(deps): bump python-dotenv from 1.2.1 to 1.2.2 in /PROJECTS/advanced/ai-threat-detection/backend
2026-04-26 23:53:53 -04:00
Carter Perez e8ab86fb68
Merge pull request #192 from CarterPerez-dev/dependabot/uv/PROJECTS/intermediate/dlp-scanner/lxml-6.1.0
chore(deps): bump lxml from 6.0.2 to 6.1.0 in /PROJECTS/intermediate/dlp-scanner
2026-04-26 23:53:37 -04:00
Carter Perez 4478c8a6a5
Merge pull request #189 from CarterPerez-dev/dependabot/uv/PROJECTS/advanced/encrypted-p2p-chat/backend/python-dotenv-1.2.2
chore(deps): bump python-dotenv from 1.2.1 to 1.2.2 in /PROJECTS/advanced/encrypted-p2p-chat/backend
2026-04-26 23:52:07 -04:00
Carter Perez d40293490e
Merge pull request #188 from CarterPerez-dev/dependabot/uv/PROJECTS/beginner/c2-beacon/backend/python-dotenv-1.2.2
chore(deps): bump python-dotenv from 1.2.1 to 1.2.2 in /PROJECTS/beginner/c2-beacon/backend
2026-04-26 23:51:57 -04:00
Carter Perez ceb1f28d4d
Merge pull request #187 from CarterPerez-dev/dependabot/pip/PROJECTS/intermediate/api-security-scanner/backend/python-dotenv-1.2.2
chore(deps): bump python-dotenv from 1.2.1 to 1.2.2 in /PROJECTS/intermediate/api-security-scanner/backend
2026-04-26 23:51:47 -04:00
Carter Perez d962a5de88
Merge pull request #186 from CarterPerez-dev/dependabot/uv/PROJECTS/advanced/bug-bounty-platform/backend/python-dotenv-1.2.2
chore(deps): bump python-dotenv from 1.2.1 to 1.2.2 in /PROJECTS/advanced/bug-bounty-platform/backend
2026-04-26 23:51:36 -04:00
Carter Perez 8350f9139e
Merge pull request #191 from CarterPerez-dev/dependabot/uv/PROJECTS/beginner/metadata-scrubber-tool/lxml-6.1.0
chore(deps): bump lxml from 6.0.2 to 6.1.0 in /PROJECTS/beginner/metadata-scrubber-tool
2026-04-26 23:51:10 -04:00
Carter Perez 6e29b0b386
Merge pull request #193 from CarterPerez-dev/dependabot/cargo/PROJECTS/intermediate/binary-analysis-tool/backend/rand-0.8.6
chore(deps): bump rand from 0.8.5 to 0.8.6 in /PROJECTS/intermediate/binary-analysis-tool/backend
2026-04-26 23:50:57 -04:00
CarterPerez-dev ef315b072b chore: add demos for projects, update haskell-reverse-proxy modules, refresh siem assets
- Add DEMO.md and screenshots for bug-bounty-platform, hash-cracker,
  linux-cis-hardening-auditor, simple-port-scanner, simple-vulnerability-scanner,
  systemd-persistence-scanner, base64-tool, caesar-cipher, dns-lookup,
  metadata-scrubber-tool, network-traffic-analyzer, siem-dashboard
- Link DEMO.md from project READMEs
- Add .gitignore entries for DEMO-TRACKER and simple-port-scanner build dir
- Restructure haskell-reverse-proxy with DDoS, Fingerprint, ML, RateLimit, WAF,
  Geo, and Honeypot modules; drop superseded research docs and old Makefile
- Refresh siem-dashboard dashboard.png and rename alerts.png to alert-detail.png
2026-04-26 23:12:48 -04:00
dependabot[bot] 07d3b3967c
chore(deps): bump gitpython
Bumps [gitpython](https://github.com/gitpython-developers/GitPython) from 3.1.46 to 3.1.47.
- [Release notes](https://github.com/gitpython-developers/GitPython/releases)
- [Changelog](https://github.com/gitpython-developers/GitPython/blob/main/CHANGES)
- [Commits](https://github.com/gitpython-developers/GitPython/compare/3.1.46...3.1.47)

---
updated-dependencies:
- dependency-name: gitpython
  dependency-version: 3.1.47
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-26 01:24:42 +00:00
dependabot[bot] 246462e565
chore(deps): bump rand
Bumps [rand](https://github.com/rust-random/rand) from 0.8.5 to 0.8.6.
- [Release notes](https://github.com/rust-random/rand/releases)
- [Changelog](https://github.com/rust-random/rand/blob/0.8.6/CHANGELOG.md)
- [Commits](https://github.com/rust-random/rand/compare/0.8.5...0.8.6)

---
updated-dependencies:
- dependency-name: rand
  dependency-version: 0.8.6
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-23 02:41:33 +00:00
dependabot[bot] 93567c1450
chore(deps): bump lxml in /PROJECTS/intermediate/dlp-scanner
Bumps [lxml](https://github.com/lxml/lxml) from 6.0.2 to 6.1.0.
- [Release notes](https://github.com/lxml/lxml/releases)
- [Changelog](https://github.com/lxml/lxml/blob/master/CHANGES.txt)
- [Commits](https://github.com/lxml/lxml/compare/lxml-6.0.2...lxml-6.1.0)

---
updated-dependencies:
- dependency-name: lxml
  dependency-version: 6.1.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-21 23:13:03 +00:00
dependabot[bot] c122bcd914
chore(deps): bump lxml in /PROJECTS/beginner/metadata-scrubber-tool
Bumps [lxml](https://github.com/lxml/lxml) from 6.0.2 to 6.1.0.
- [Release notes](https://github.com/lxml/lxml/releases)
- [Changelog](https://github.com/lxml/lxml/blob/master/CHANGES.txt)
- [Commits](https://github.com/lxml/lxml/compare/lxml-6.0.2...lxml-6.1.0)

---
updated-dependencies:
- dependency-name: lxml
  dependency-version: 6.1.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-21 23:10:02 +00:00
dependabot[bot] 066ab85b34
chore(deps): bump python-dotenv
Bumps [python-dotenv](https://github.com/theskumar/python-dotenv) from 1.2.1 to 1.2.2.
- [Release notes](https://github.com/theskumar/python-dotenv/releases)
- [Changelog](https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md)
- [Commits](https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2)

---
updated-dependencies:
- dependency-name: python-dotenv
  dependency-version: 1.2.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-21 22:42:21 +00:00
dependabot[bot] 9bfb93e161
chore(deps): bump python-dotenv
Bumps [python-dotenv](https://github.com/theskumar/python-dotenv) from 1.2.1 to 1.2.2.
- [Release notes](https://github.com/theskumar/python-dotenv/releases)
- [Changelog](https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md)
- [Commits](https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2)

---
updated-dependencies:
- dependency-name: python-dotenv
  dependency-version: 1.2.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-21 22:39:46 +00:00
dependabot[bot] 67e59f2255
chore(deps): bump python-dotenv in /PROJECTS/beginner/c2-beacon/backend
Bumps [python-dotenv](https://github.com/theskumar/python-dotenv) from 1.2.1 to 1.2.2.
- [Release notes](https://github.com/theskumar/python-dotenv/releases)
- [Changelog](https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md)
- [Commits](https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2)

---
updated-dependencies:
- dependency-name: python-dotenv
  dependency-version: 1.2.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-21 22:37:58 +00:00
dependabot[bot] 714909034e
chore(deps): bump python-dotenv
Bumps [python-dotenv](https://github.com/theskumar/python-dotenv) from 1.2.1 to 1.2.2.
- [Release notes](https://github.com/theskumar/python-dotenv/releases)
- [Changelog](https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md)
- [Commits](https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2)

---
updated-dependencies:
- dependency-name: python-dotenv
  dependency-version: 1.2.2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-21 22:33:34 +00:00
dependabot[bot] f533b41b06
chore(deps): bump python-dotenv
Bumps [python-dotenv](https://github.com/theskumar/python-dotenv) from 1.2.1 to 1.2.2.
- [Release notes](https://github.com/theskumar/python-dotenv/releases)
- [Changelog](https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md)
- [Commits](https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2)

---
updated-dependencies:
- dependency-name: python-dotenv
  dependency-version: 1.2.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-21 22:33:33 +00:00
CarterPerez-dev dc6567ae25 chore complete + add pre commit chnages 2026-04-19 18:54:08 -04:00
Carter Perez b6f75db1a7
Update README.md 2026-04-19 13:27:28 -04:00
Carter Perez 1321a813ae
Update badge link for Cybersecurity Projects 2026-04-19 13:25:49 -04:00
Carter Perez d7ebd7956a
Merge pull request #183 from CarterPerez-dev/project/honeypot-network
feat: advanced honeypot-network project complete
2026-04-19 13:22:10 -04:00
CarterPerez-dev e35d752289 feat: advanced honeypot-network project complete 2026-04-19 13:13:49 -04:00
Carter Perez e20848b45a
Merge pull request #180 from CarterPerez-dev/dependabot/uv/PROJECTS/advanced/bug-bounty-platform/backend/mako-1.3.11
chore(deps): bump mako from 1.3.10 to 1.3.11 in /PROJECTS/advanced/bug-bounty-platform/backend
2026-04-18 03:17:28 -04:00
Carter Perez 8ba4e88865
Merge pull request #179 from CarterPerez-dev/dependabot/uv/PROJECTS/advanced/ai-threat-detection/backend/mako-1.3.11
chore(deps): bump mako from 1.3.10 to 1.3.11 in /PROJECTS/advanced/ai-threat-detection/backend
2026-04-18 03:17:12 -04:00
Carter Perez 3b7b2e4f8f
Merge pull request #178 from CarterPerez-dev/dependabot/uv/PROJECTS/beginner/metadata-scrubber-tool/pypdf-6.10.2
chore(deps): bump pypdf from 6.10.1 to 6.10.2 in /PROJECTS/beginner/metadata-scrubber-tool
2026-04-18 03:16:48 -04:00
Carter Perez b419685e6a
Merge pull request #177 from CarterPerez-dev/dependabot/npm_and_yarn/PROJECTS/intermediate/api-security-scanner/frontend/axios-1.15.0
chore(deps): bump axios from 1.13.5 to 1.15.0 in /PROJECTS/intermediate/api-security-scanner/frontend
2026-04-18 03:16:32 -04:00
Carter Perez 119893c8e6
Merge pull request #182 from CarterPerez-dev/dependabot/uv/PROJECTS/advanced/api-rate-limiter/python-multipart-0.0.26
chore(deps): bump python-multipart from 0.0.22 to 0.0.26 in /PROJECTS/advanced/api-rate-limiter
2026-04-18 03:16:19 -04:00
dependabot[bot] d68cc2e21e
chore(deps): bump python-multipart
Bumps [python-multipart](https://github.com/Kludex/python-multipart) from 0.0.22 to 0.0.26.
- [Release notes](https://github.com/Kludex/python-multipart/releases)
- [Changelog](https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.26)

---
updated-dependencies:
- dependency-name: python-multipart
  dependency-version: 0.0.26
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-17 22:49:17 +00:00
dependabot[bot] be41a9ac0f
chore(deps): bump github.com/go-git/go-git/v5
Bumps [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) from 5.17.1 to 5.18.0.
- [Release notes](https://github.com/go-git/go-git/releases)
- [Commits](https://github.com/go-git/go-git/compare/v5.17.1...v5.18.0)

---
updated-dependencies:
- dependency-name: github.com/go-git/go-git/v5
  dependency-version: 5.18.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-17 22:41:45 +00:00
dependabot[bot] e0a9bcbebf
chore(deps): bump mako in /PROJECTS/advanced/bug-bounty-platform/backend
Bumps [mako](https://github.com/sqlalchemy/mako) from 1.3.10 to 1.3.11.
- [Release notes](https://github.com/sqlalchemy/mako/releases)
- [Changelog](https://github.com/sqlalchemy/mako/blob/main/CHANGES)
- [Commits](https://github.com/sqlalchemy/mako/commits)

---
updated-dependencies:
- dependency-name: mako
  dependency-version: 1.3.11
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-16 23:24:08 +00:00
dependabot[bot] 786a1ea0c3
chore(deps): bump mako in /PROJECTS/advanced/ai-threat-detection/backend
Bumps [mako](https://github.com/sqlalchemy/mako) from 1.3.10 to 1.3.11.
- [Release notes](https://github.com/sqlalchemy/mako/releases)
- [Changelog](https://github.com/sqlalchemy/mako/blob/main/CHANGES)
- [Commits](https://github.com/sqlalchemy/mako/commits)

---
updated-dependencies:
- dependency-name: mako
  dependency-version: 1.3.11
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-16 23:20:58 +00:00
dependabot[bot] 69a1a3989a
chore(deps): bump pypdf in /PROJECTS/beginner/metadata-scrubber-tool
Bumps [pypdf](https://github.com/py-pdf/pypdf) from 6.10.1 to 6.10.2.
- [Release notes](https://github.com/py-pdf/pypdf/releases)
- [Changelog](https://github.com/py-pdf/pypdf/blob/main/CHANGELOG.md)
- [Commits](https://github.com/py-pdf/pypdf/compare/6.10.1...6.10.2)

---
updated-dependencies:
- dependency-name: pypdf
  dependency-version: 6.10.2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-16 22:32:38 +00:00
dependabot[bot] 6205385fd4
chore(deps): bump axios
Bumps [axios](https://github.com/axios/axios) from 1.13.5 to 1.15.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.13.5...v1.15.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.15.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-15 23:58:24 +00:00
Carter Perez cac4a65232
Merge pull request #172 from CarterPerez-dev/dependabot/uv/PROJECTS/beginner/metadata-scrubber-tool/pypdf-6.10.1
chore(deps): bump pypdf from 6.10.0 to 6.10.1 in /PROJECTS/beginner/metadata-scrubber-tool
2026-04-15 19:40:51 -04:00
Carter Perez 280c1f9aee
Merge pull request #175 from CarterPerez-dev/dependabot/uv/PROJECTS/advanced/encrypted-p2p-chat/backend/python-multipart-0.0.26
chore(deps): bump python-multipart from 0.0.22 to 0.0.26 in /PROJECTS/advanced/encrypted-p2p-chat/backend
2026-04-15 19:40:39 -04:00
Carter Perez 87ed5c73e6
Merge pull request #174 from CarterPerez-dev/dependabot/uv/PROJECTS/beginner/c2-beacon/backend/python-multipart-0.0.26
chore(deps): bump python-multipart from 0.0.22 to 0.0.26 in /PROJECTS/beginner/c2-beacon/backend
2026-04-15 19:40:23 -04:00
Carter Perez d5f3aecfe7
Merge pull request #173 from CarterPerez-dev/dependabot/uv/PROJECTS/advanced/bug-bounty-platform/backend/python-multipart-0.0.26
chore(deps): bump python-multipart from 0.0.21 to 0.0.26 in /PROJECTS/advanced/bug-bounty-platform/backend
2026-04-15 19:40:07 -04:00
Carter Perez cccd383b30
Merge branch 'main' into project/systemd-persistence-scanner 2026-04-15 19:37:43 -04:00
CarterPerez-dev 8c8a37c654 docs: add learn folder and update README for systemd persistence scanner 2026-04-15 19:21:56 -04:00
dependabot[bot] 467e5c88ac
chore(deps): bump python-multipart
Bumps [python-multipart](https://github.com/Kludex/python-multipart) from 0.0.22 to 0.0.26.
- [Release notes](https://github.com/Kludex/python-multipart/releases)
- [Changelog](https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.26)

---
updated-dependencies:
- dependency-name: python-multipart
  dependency-version: 0.0.26
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-15 21:19:02 +00:00
dependabot[bot] d3b48ef80a
chore(deps): bump python-multipart
Bumps [python-multipart](https://github.com/Kludex/python-multipart) from 0.0.22 to 0.0.26.
- [Release notes](https://github.com/Kludex/python-multipart/releases)
- [Changelog](https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.26)

---
updated-dependencies:
- dependency-name: python-multipart
  dependency-version: 0.0.26
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-15 21:13:20 +00:00
dependabot[bot] cfc4b7a21b
chore(deps): bump python-multipart
Bumps [python-multipart](https://github.com/Kludex/python-multipart) from 0.0.21 to 0.0.26.
- [Release notes](https://github.com/Kludex/python-multipart/releases)
- [Changelog](https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Kludex/python-multipart/compare/0.0.21...0.0.26)

---
updated-dependencies:
- dependency-name: python-multipart
  dependency-version: 0.0.26
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-15 21:06:26 +00:00
dependabot[bot] 64fb1d0dbd
chore(deps): bump pypdf in /PROJECTS/beginner/metadata-scrubber-tool
Bumps [pypdf](https://github.com/py-pdf/pypdf) from 6.10.0 to 6.10.1.
- [Release notes](https://github.com/py-pdf/pypdf/releases)
- [Changelog](https://github.com/py-pdf/pypdf/blob/main/CHANGELOG.md)
- [Commits](https://github.com/py-pdf/pypdf/compare/6.10.0...6.10.1)

---
updated-dependencies:
- dependency-name: pypdf
  dependency-version: 6.10.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-15 20:42:36 +00:00
CarterPerez-dev aa0c03d0e9 feat: add systemd persistence scanner project
17 scanner modules covering systemd, cron, shell profiles, SSH,
XDG autostart, PAM, udev, kernel modules, LD_PRELOAD, MOTD,
init.d, at jobs, logrotate hooks, systemd generators, bash
completion, network interface hooks, and sshrc.

16 detection patterns with MITRE ATT&CK mappings, baseline
diffing, JSON output, and ignore-list support.

go install: github.com/CarterPerez-dev/sentinel/cmd/sentinel@latest
2026-04-15 09:00:16 -04:00
Carter Perez ec319b2e49
Merge pull request #164 from CarterPerez-dev/dependabot/uv/PROJECTS/beginner/keylogger/pytest-9.0.3
chore(deps): bump pytest from 8.4.1 to 9.0.3 in /PROJECTS/beginner/keylogger
2026-04-15 07:03:07 -04:00
Carter Perez 928d9ee68d
Merge pull request #163 from CarterPerez-dev/dependabot/uv/PROJECTS/beginner/network-traffic-analyzer/python/pillow-12.2.0
chore(deps): bump pillow from 12.1.1 to 12.2.0 in /PROJECTS/beginner/network-traffic-analyzer/python
2026-04-15 07:02:54 -04:00
Carter Perez f19599356e
Merge pull request #162 from CarterPerez-dev/dependabot/uv/PROJECTS/advanced/ai-threat-detection/backend/pillow-12.2.0
chore(deps): bump pillow from 12.1.1 to 12.2.0 in /PROJECTS/advanced/ai-threat-detection/backend
2026-04-15 07:02:41 -04:00
Carter Perez cfdd501975
Merge pull request #161 from CarterPerez-dev/dependabot/uv/PROJECTS/beginner/metadata-scrubber-tool/pillow-12.2.0
chore(deps): bump pillow from 12.1.0 to 12.2.0 in /PROJECTS/beginner/metadata-scrubber-tool
2026-04-15 07:02:20 -04:00
Carter Perez 3d3d189458
Merge pull request #165 from CarterPerez-dev/dependabot/uv/PROJECTS/advanced/api-rate-limiter/pytest-9.0.3
chore(deps): bump pytest from 9.0.2 to 9.0.3 in /PROJECTS/advanced/api-rate-limiter
2026-04-15 07:02:06 -04:00
Carter Perez db5c6ca1f0
Merge pull request #166 from CarterPerez-dev/dependabot/uv/PROJECTS/beginner/caesar-cipher/pytest-9.0.3
chore(deps): bump pytest from 9.0.2 to 9.0.3 in /PROJECTS/beginner/caesar-cipher
2026-04-15 07:01:46 -04:00
dependabot[bot] 0faca40468
chore(deps): bump pytest in /PROJECTS/advanced/api-rate-limiter
Bumps [pytest](https://github.com/pytest-dev/pytest) from 9.0.2 to 9.0.3.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3)

---
updated-dependencies:
- dependency-name: pytest
  dependency-version: 9.0.3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-15 11:01:29 +00:00
dependabot[bot] 5b2b7e86a4
chore(deps): bump pytest in /PROJECTS/beginner/caesar-cipher
Bumps [pytest](https://github.com/pytest-dev/pytest) from 9.0.2 to 9.0.3.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3)

---
updated-dependencies:
- dependency-name: pytest
  dependency-version: 9.0.3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-15 11:01:27 +00:00
Carter Perez 4f1c3a1049
Merge pull request #171 from CarterPerez-dev/dependabot/npm_and_yarn/PROJECTS/advanced/ai-threat-detection/frontend/axios-1.15.0
chore(deps): bump axios from 1.13.6 to 1.15.0 in /PROJECTS/advanced/ai-threat-detection/frontend
2026-04-15 07:01:25 -04:00
dependabot[bot] bb0ad647ae
chore(deps): bump pytest in /PROJECTS/beginner/keylogger
Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.4.1 to 9.0.3.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/8.4.1...9.0.3)

---
updated-dependencies:
- dependency-name: pytest
  dependency-version: 9.0.3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-15 11:01:10 +00:00
Carter Perez 4a161754de
Merge pull request #167 from CarterPerez-dev/dependabot/uv/PROJECTS/beginner/base64-tool/pytest-9.0.3
chore(deps): bump pytest from 9.0.2 to 9.0.3 in /PROJECTS/beginner/base64-tool
2026-04-15 07:01:01 -04:00
dependabot[bot] 74a2dd18f4
chore(deps): bump axios
Bumps [axios](https://github.com/axios/axios) from 1.13.6 to 1.15.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.13.6...v1.15.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.15.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-15 11:00:49 +00:00
Carter Perez 703a0c7679
Merge pull request #168 from CarterPerez-dev/dependabot/uv/PROJECTS/beginner/dns-lookup/pytest-9.0.3
chore(deps): bump pytest from 9.0.2 to 9.0.3 in /PROJECTS/beginner/dns-lookup
2026-04-15 07:00:40 -04:00
Carter Perez bab9a8435f
Merge pull request #169 from CarterPerez-dev/dependabot/uv/PROJECTS/beginner/network-traffic-analyzer/python/pytest-9.0.3
chore(deps): bump pytest from 9.0.2 to 9.0.3 in /PROJECTS/beginner/network-traffic-analyzer/python
2026-04-15 07:00:05 -04:00
dependabot[bot] 1285310112
chore(deps): bump pytest
Bumps [pytest](https://github.com/pytest-dev/pytest) from 9.0.2 to 9.0.3.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3)

---
updated-dependencies:
- dependency-name: pytest
  dependency-version: 9.0.3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-14 03:08:08 +00:00
dependabot[bot] 5eb71369e3
chore(deps): bump pytest
Bumps [pytest](https://github.com/pytest-dev/pytest) from 9.0.2 to 9.0.3.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3)

---
updated-dependencies:
- dependency-name: pytest
  dependency-version: 9.0.3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-14 03:06:39 +00:00
dependabot[bot] 00e0141b41
chore(deps): bump pytest in /PROJECTS/beginner/dns-lookup
Bumps [pytest](https://github.com/pytest-dev/pytest) from 9.0.2 to 9.0.3.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3)

---
updated-dependencies:
- dependency-name: pytest
  dependency-version: 9.0.3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-14 02:59:57 +00:00
dependabot[bot] 93849e855c
chore(deps): bump pytest in /PROJECTS/beginner/base64-tool
Bumps [pytest](https://github.com/pytest-dev/pytest) from 9.0.2 to 9.0.3.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3)

---
updated-dependencies:
- dependency-name: pytest
  dependency-version: 9.0.3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-14 02:37:32 +00:00
dependabot[bot] 07ad8379ee
chore(deps): bump pillow
Bumps [pillow](https://github.com/python-pillow/Pillow) from 12.1.1 to 12.2.0.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/12.1.1...12.2.0)

---
updated-dependencies:
- dependency-name: pillow
  dependency-version: 12.2.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-13 23:47:13 +00:00
dependabot[bot] a7410bc34e
chore(deps): bump pillow
Bumps [pillow](https://github.com/python-pillow/Pillow) from 12.1.1 to 12.2.0.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/12.1.1...12.2.0)

---
updated-dependencies:
- dependency-name: pillow
  dependency-version: 12.2.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-13 23:45:45 +00:00
dependabot[bot] bcf2ca34ae
chore(deps): bump pillow in /PROJECTS/beginner/metadata-scrubber-tool
Bumps [pillow](https://github.com/python-pillow/Pillow) from 12.1.0 to 12.2.0.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/12.1.0...12.2.0)

---
updated-dependencies:
- dependency-name: pillow
  dependency-version: 12.2.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-13 23:37:05 +00:00
CarterPerez-dev eebc205773 Merge branch 'main' of github.com:CarterPerez-dev/Cybersecurity-Projects 2026-04-11 07:32:28 -04:00
CarterPerez-dev c79d17c8ff fix: remove unused imports and merge comparison in dlp-scanner
Remove unused TextChunk, DetectorMatch, make_flow_key imports and
merge repeated DNS_PORT equality check into set membership test.
2026-04-11 07:27:25 -04:00
Carter Perez f02fa1ca87
Merge pull request #158 from CarterPerez-dev/dependabot/npm_and_yarn/PROJECTS/intermediate/binary-analysis-tool/frontend/axios-1.15.0
chore(deps): bump axios from 1.13.5 to 1.15.0 in /PROJECTS/intermediate/binary-analysis-tool/frontend
2026-04-11 05:58:39 -04:00
Carter Perez f7081e9dd4
Merge pull request #157 from CarterPerez-dev/dependabot/uv/PROJECTS/beginner/metadata-scrubber-tool/pypdf-6.10.0
chore(deps): bump pypdf from 6.9.2 to 6.10.0 in /PROJECTS/beginner/metadata-scrubber-tool
2026-04-11 05:58:32 -04:00
Carter Perez f6f6af267c
Merge pull request #156 from CarterPerez-dev/dependabot/npm_and_yarn/PROJECTS/intermediate/siem-dashboard/frontend/axios-1.15.0
chore(deps): bump axios from 1.13.5 to 1.15.0 in /PROJECTS/intermediate/siem-dashboard/frontend
2026-04-11 05:58:25 -04:00
Carter Perez b4c3f42cb1
Merge pull request #159 from CarterPerez-dev/dependabot/npm_and_yarn/PROJECTS/advanced/bug-bounty-platform/frontend/axios-1.15.0
chore(deps): bump axios from 1.13.2 to 1.15.0 in /PROJECTS/advanced/bug-bounty-platform/frontend
2026-04-11 05:57:35 -04:00
CarterPerez-dev 4c5bce05c1 add: AGPL 3.0 license files to hash-cracker, ebpf tracer, dlp scanner 2026-04-11 05:56:43 -04:00
CarterPerez-dev 34465a1255 fix: CI nim action, sbom badge, and main README links
Replace broken jiro4989/setup-nim-action@v2 with direct choosenim
install. Add ebpf tracer and dlp scanner to lint matrix. Update SBOM
generator badge to Project #24 and add source/docs links in main
README. Bump project count to 24/67.
2026-04-11 05:52:55 -04:00
CarterPerez-dev d3fa5ea132 fix: update READMEs for ebpf tracer & dlp scanner
Add ASCII art, project number badges, justfile tip, and learn module
links. Add missing justfile to dlp-scanner. Update main README with
source code links and bump project count to 23/67.
2026-04-11 05:38:49 -04:00
Carter Perez db3e25e886
Merge pull request #160 from CarterPerez-dev/project/linux-ebpf-security-tracer
feat: linux ebpf security tracer project
2026-04-11 05:09:18 -04:00
CarterPerez-dev d292f1e4b7 feat: linux ebpf security tracer project
eBPF-based security monitoring tool with process, file, network,
privilege escalation, and system call tracing via BCC. Includes
threat detection engine, Rich TUI renderer, and learn docs.
2026-04-11 04:54:57 -04:00
dependabot[bot] 042de8543d
chore(deps): bump axios
Bumps [axios](https://github.com/axios/axios) from 1.13.2 to 1.15.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.13.2...v1.15.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.15.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-10 22:06:20 +00:00
dependabot[bot] 4920dadf35
chore(deps): bump axios
Bumps [axios](https://github.com/axios/axios) from 1.13.5 to 1.15.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.13.5...v1.15.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.15.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-10 21:50:33 +00:00
dependabot[bot] d6db8a6ea3
chore(deps): bump pypdf in /PROJECTS/beginner/metadata-scrubber-tool
Bumps [pypdf](https://github.com/py-pdf/pypdf) from 6.9.2 to 6.10.0.
- [Release notes](https://github.com/py-pdf/pypdf/releases)
- [Changelog](https://github.com/py-pdf/pypdf/blob/main/CHANGELOG.md)
- [Commits](https://github.com/py-pdf/pypdf/compare/6.9.2...6.10.0)

---
updated-dependencies:
- dependency-name: pypdf
  dependency-version: 6.10.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-10 21:36:18 +00:00
dependabot[bot] 10be86e496
chore(deps): bump axios
Bumps [axios](https://github.com/axios/axios) from 1.13.5 to 1.15.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.13.5...v1.15.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.15.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-10 21:36:02 +00:00
Carter Perez b7c163f773
Merge pull request #155 from CarterPerez-dev/project/dlp-scanner
Project/dlp scanner
2026-04-10 17:31:28 -04:00
CarterPerez-dev 2ba9985936 docs: update learn/ for dlp-scanner audit changes
Reflect network_scanner.py rewrite, new scoring.py module,
per-brand credit card rule IDs, NPI validator, FL/IL driver's
license rules, Literal config types, and network exfil compliance
mappings.
2026-04-10 17:29:15 -04:00
CarterPerez-dev 8d5a177bca feat: dlp scanner — multi-format data loss prevention scanner
Scans files, databases, and network captures for sensitive data
(PII, credentials, financial, health) with 30+ detection rules,
protocol-aware network analysis, DNS exfiltration detection,
compliance mapping (HIPAA, PCI-DSS, GDPR, CCPA), and multi-format
reporting (console, JSON, SARIF, CSV).
2026-04-10 17:14:30 -04:00
Carter Perez 9edf1f6cff
Merge pull request #153 from CarterPerez-dev/project/sbom-generator-vulnerability-matcher
feat: sbom generator & vulnerability matcher + docstrings across 6 pr…
2026-04-08 23:54:50 -04:00
CarterPerez-dev d277d50a93 feat: sbom generator & vulnerability matcher + docstrings across 6 projects
Add bomber CLI tool (Go) — scans dependencies across Go/Node/Python
ecosystems, generates SPDX 2.3 and CycloneDX 1.5 SBOMs, and matches
against OSV/NVD vulnerability databases with policy engine for CI/CD.

Add file-level docstrings to ai-threat-detection, firewall-rule-engine,
hash-cracker, linux-cis-hardening-auditor, binary-analysis-tool, and
credential-enumeration.
2026-04-08 23:53:40 -04:00
Carter Perez 470eb6ca47
Merge pull request #152 from CarterPerez-dev/dependabot/uv/PROJECTS/advanced/bug-bounty-platform/backend/cryptography-46.0.7
chore(deps): bump cryptography from 46.0.3 to 46.0.7 in /PROJECTS/advanced/bug-bounty-platform/backend
2026-04-08 18:49:08 -04:00
Carter Perez 33a4e52bfe
Merge pull request #146 from CarterPerez-dev/dependabot/npm_and_yarn/PROJECTS/intermediate/api-security-scanner/frontend/vite-7.3.2
chore(deps-dev): bump vite from 7.3.1 to 7.3.2 in /PROJECTS/intermediate/api-security-scanner/frontend
2026-04-08 16:38:55 -04:00
dependabot[bot] 8517b473bb
chore(deps): bump cryptography
Bumps [cryptography](https://github.com/pyca/cryptography) from 46.0.3 to 46.0.7.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/46.0.3...46.0.7)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-version: 46.0.7
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-08 20:37:17 +00:00
dependabot[bot] 736d81e50e
chore(deps): bump cryptography in /PROJECTS/advanced/api-rate-limiter
Bumps [cryptography](https://github.com/pyca/cryptography) from 46.0.5 to 46.0.7.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/46.0.5...46.0.7)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-version: 46.0.7
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-08 20:32:27 +00:00
Carter Perez 579d802817
Merge pull request #148 from CarterPerez-dev/dependabot/go_modules/PROJECTS/intermediate/docker-security-audit/go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp-1.43.0
chore(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp from 1.39.0 to 1.43.0 in /PROJECTS/intermediate/docker-security-audit
2026-04-08 16:30:59 -04:00
dependabot[bot] 5b6457797c
chore(deps): bump cryptography
Bumps [cryptography](https://github.com/pyca/cryptography) from 46.0.5 to 46.0.7.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/46.0.5...46.0.7)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-version: 46.0.7
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-08 20:16:02 +00:00
dependabot[bot] 7c57aa4d2f
chore(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp
Bumps [go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp](https://github.com/open-telemetry/opentelemetry-go) from 1.39.0 to 1.43.0.
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.39.0...v1.43.0)

---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp
  dependency-version: 1.43.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-08 20:02:55 +00:00
Carter Perez d856257b3c
Update README.md 2026-04-08 00:46:42 -04:00
Carter Perez 0421ccd9e5
Merge pull request #141 from CarterPerez-dev/dependabot/uv/PROJECTS/advanced/ai-threat-detection/backend/onnx-1.21.0
chore(deps): bump onnx from 1.20.1 to 1.21.0 in /PROJECTS/advanced/ai-threat-detection/backend
2026-04-08 00:25:19 -04:00
dependabot[bot] 34afc8879c
chore(deps-dev): bump vite
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 7.3.1 to 7.3.2.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v7.3.2/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v7.3.2/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 7.3.2
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-08 04:23:14 +00:00
dependabot[bot] dae8c4c56d
chore(deps-dev): bump vite
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 7.3.1 to 7.3.2.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v7.3.2/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v7.3.2/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 7.3.2
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-06 23:28:45 +00:00
Carter Perez f95785ac8d
Merge pull request #142 from CarterPerez-dev/dependabot/uv/PROJECTS/advanced/ai-threat-detection/backend/aiohttp-3.13.4
chore(deps): bump aiohttp from 3.13.3 to 3.13.4 in /PROJECTS/advanced/ai-threat-detection/backend
2026-04-04 23:00:30 -04:00
Carter Perez e96420176c
Merge branch 'main' into project/credential-harvester 2026-04-04 20:23:24 -04:00
CarterPerez-dev c1ec748dda feat: credential enumeration complete 2026-04-04 20:21:19 -04:00
dependabot[bot] 1b7073e6c8
chore(deps): bump aiohttp
---
updated-dependencies:
- dependency-name: aiohttp
  dependency-version: 3.13.4
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-01 22:25:50 +00:00
dependabot[bot] d0fbd65d4d
chore(deps): bump aiohttp
---
updated-dependencies:
- dependency-name: aiohttp
  dependency-version: 3.13.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-01 22:21:09 +00:00
dependabot[bot] 14486ab5a1
chore(deps): bump onnx in /PROJECTS/advanced/ai-threat-detection/backend
Bumps [onnx](https://github.com/onnx/onnx) from 1.20.1 to 1.21.0.
- [Release notes](https://github.com/onnx/onnx/releases)
- [Changelog](https://github.com/onnx/onnx/blob/main/docs/Changelog-ml.md)
- [Commits](https://github.com/onnx/onnx/compare/v1.20.1...v1.21.0)

---
updated-dependencies:
- dependency-name: onnx
  dependency-version: 1.21.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-01 22:11:19 +00:00
dependabot[bot] cc00b5e37d
chore(deps): bump aiohttp
---
updated-dependencies:
- dependency-name: aiohttp
  dependency-version: 3.13.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-01 21:49:04 +00:00
Carter Perez bf0fb03d04
Merge pull request #139 from CarterPerez-dev/project/binary-analysis-tool
update
2026-04-01 00:57:13 -04:00
CarterPerez-dev fbb41ed09d update 2026-04-01 00:56:17 -04:00
Carter Perez ea4c6c4e55
Merge pull request #137 from CarterPerez-dev/dependabot/npm_and_yarn/PROJECTS/intermediate/binary-analysis-tool/frontend/axios-1.13.5 2026-03-31 02:07:51 -04:00
Carter Perez 2e182b39d7
Update README.md 2026-03-30 16:03:21 -04:00
Carter Perez 9f01c0219b
Merge pull request #138 from CarterPerez-dev/project/linux-cis-hardening-auditor
Add linux CIS hardening auditor
2026-03-30 15:52:46 -04:00
CarterPerez-dev ec7a41bb3f project linux-cis-hardening-auditor complete 2026-03-30 15:50:06 -04:00
dependabot[bot] fab4346769
chore(deps): bump axios
Bumps [axios](https://github.com/axios/axios) from 1.13.2 to 1.13.5.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.13.2...v1.13.5)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.13.5
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-30 19:35:56 +00:00
Carter Perez 3700bb8c3f
Change code block syntax from Rust to JSON 2026-03-30 15:32:55 -04:00