diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index da9a4e0..a12c887 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,6 +1,6 @@ # These are supported funding model platforms -github: rennf93 +github: Guard-Core # patreon: # Replace with a single Patreon username # open_collective: # Replace with a single Open Collective username # ko_fi: # Replace with a single Ko-fi username diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 44fd55e..d4a34d5 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,8 +1,8 @@ blank_issues_enabled: false contact_links: - name: DjangoAPI Guard Documentation - url: https://rennf93.github.io/djapi-guard/ + url: https://guard-core.github.io/djapi-guard/ about: Check the documentation for usage information and tutorials - name: Usage Questions - url: https://github.com/rennf93/djapi-guard/discussions + url: https://github.com/Guard-Core/djapi-guard/discussions about: Please ask and answer questions in GitHub Discussions diff --git a/.github/scripts/bump_version.py b/.github/scripts/bump_version.py index 3e8b979..19d247c 100644 --- a/.github/scripts/bump_version.py +++ b/.github/scripts/bump_version.py @@ -189,7 +189,7 @@ def update_index_md(version: str) -> bool: content = path.read_text() pattern = re.compile( - r"(docker pull ghcr\.io/rennf93/djapi-guard-example:v)" + r"(docker pull ghcr\.io/guard-core/djapi-guard-example:v)" r"[\d]+\.[\d]+\.[\d]+" ) match = pattern.search(content) diff --git a/AGENTS.md b/AGENTS.md index 8e39c64..7beeb24 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -14,7 +14,7 @@ DjAPI Guard (repo name `djangoapi-guard`, distribution name `djapi-guard`) is a - Route-level security decorators - Behavioral analysis and anomaly detection -It is a direct port of [FlaskAPI Guard](https://github.com/rennf93/flaskapi-guard) to the Django middleware model, with the same feature set adapted to Django's synchronous request/response cycle. +It is a direct port of [FlaskAPI Guard](https://github.com/Guard-Core/flaskapi-guard) to the Django middleware model, with the same feature set adapted to Django's synchronous request/response cycle. - **PyPI Package**: `djapi-guard` - **Import Name**: `djangoapi_guard` @@ -24,7 +24,7 @@ It is a direct port of [FlaskAPI Guard](https://github.com/rennf93/flaskapi-guar ## Ecosystem Position -DjAPI Guard is a **thin adapter** over [guard-core](https://github.com/rennf93/guard-core). All security logic (models, handlers, decorators, detection engine, protocols, utilities) lives in the `guard_core` package; this repo contains only the Django integration layer. +DjAPI Guard is a **thin adapter** over [guard-core](https://github.com/Guard-Core/guard-core). All security logic (models, handlers, decorators, detection engine, protocols, utilities) lives in the `guard_core` package; this repo contains only the Django integration layer. ```text guard-core (engine, PyPI dependency >=3.15.0) <- all security logic @@ -56,7 +56,7 @@ All blocking checks respect `config.passive_mode`: when `True`, violations are l ## Boundary Rules -- **This repo MUST NOT** contain security logic (checks, handlers, models, detection patterns, `SecurityConfig`). Those belong in [guard-core](https://github.com/rennf93/guard-core); a security fix belongs upstream, not here. +- **This repo MUST NOT** contain security logic (checks, handlers, models, detection patterns, `SecurityConfig`). Those belong in [guard-core](https://github.com/Guard-Core/guard-core); a security fix belongs upstream, not here. - **This repo MUST** bridge Django native types to guard-core's `GuardRequest` / `GuardResponse` / response-factory protocols through `djangoapi_guard/adapters.py`, and use the `guard_core.sync.*` mirror (never the async tree) because Django is synchronous. - **This repo MUST** keep `DjangoAPIGuard` a thin orchestrator that delegates to `SecurityCheckPipeline`; do not fork or reimplement pipeline behavior. - **This repo MUST** re-export new guard-core public surface from `djangoapi_guard/__init__.py` when it becomes part of the adapter's user-facing API. @@ -331,10 +331,10 @@ Tests need a reachable Redis at `localhost:6379` (or set `REDIS_URL`). ## Related Projects -- **guard-core** - Framework-agnostic security engine (the engine this adapter wraps): -- **fastapi-guard** - FastAPI/Starlette adapter (async reference implementation): -- **flaskapi-guard** - Flask extension adapter (sync mirror): -- **tornadoapi-guard** - Tornado handler/middleware adapter: -- **guard-agent** - Telemetry and monitoring agent: -- **guard-core-mcp** - MCP server for config validation and docs search: -- **guard-core-app** - SaaS platform (API, dashboard, playground): +- **guard-core** - Framework-agnostic security engine (the engine this adapter wraps): +- **fastapi-guard** - FastAPI/Starlette adapter (async reference implementation): +- **flaskapi-guard** - Flask extension adapter (sync mirror): +- **tornadoapi-guard** - Tornado handler/middleware adapter: +- **guard-agent** - Telemetry and monitoring agent: +- **guard-core-mcp** - MCP server for config validation and docs search: +- **guard-core-app** - SaaS platform (API, dashboard, playground): diff --git a/CLAUDE.md b/CLAUDE.md index 8e39c64..7beeb24 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -14,7 +14,7 @@ DjAPI Guard (repo name `djangoapi-guard`, distribution name `djapi-guard`) is a - Route-level security decorators - Behavioral analysis and anomaly detection -It is a direct port of [FlaskAPI Guard](https://github.com/rennf93/flaskapi-guard) to the Django middleware model, with the same feature set adapted to Django's synchronous request/response cycle. +It is a direct port of [FlaskAPI Guard](https://github.com/Guard-Core/flaskapi-guard) to the Django middleware model, with the same feature set adapted to Django's synchronous request/response cycle. - **PyPI Package**: `djapi-guard` - **Import Name**: `djangoapi_guard` @@ -24,7 +24,7 @@ It is a direct port of [FlaskAPI Guard](https://github.com/rennf93/flaskapi-guar ## Ecosystem Position -DjAPI Guard is a **thin adapter** over [guard-core](https://github.com/rennf93/guard-core). All security logic (models, handlers, decorators, detection engine, protocols, utilities) lives in the `guard_core` package; this repo contains only the Django integration layer. +DjAPI Guard is a **thin adapter** over [guard-core](https://github.com/Guard-Core/guard-core). All security logic (models, handlers, decorators, detection engine, protocols, utilities) lives in the `guard_core` package; this repo contains only the Django integration layer. ```text guard-core (engine, PyPI dependency >=3.15.0) <- all security logic @@ -56,7 +56,7 @@ All blocking checks respect `config.passive_mode`: when `True`, violations are l ## Boundary Rules -- **This repo MUST NOT** contain security logic (checks, handlers, models, detection patterns, `SecurityConfig`). Those belong in [guard-core](https://github.com/rennf93/guard-core); a security fix belongs upstream, not here. +- **This repo MUST NOT** contain security logic (checks, handlers, models, detection patterns, `SecurityConfig`). Those belong in [guard-core](https://github.com/Guard-Core/guard-core); a security fix belongs upstream, not here. - **This repo MUST** bridge Django native types to guard-core's `GuardRequest` / `GuardResponse` / response-factory protocols through `djangoapi_guard/adapters.py`, and use the `guard_core.sync.*` mirror (never the async tree) because Django is synchronous. - **This repo MUST** keep `DjangoAPIGuard` a thin orchestrator that delegates to `SecurityCheckPipeline`; do not fork or reimplement pipeline behavior. - **This repo MUST** re-export new guard-core public surface from `djangoapi_guard/__init__.py` when it becomes part of the adapter's user-facing API. @@ -331,10 +331,10 @@ Tests need a reachable Redis at `localhost:6379` (or set `REDIS_URL`). ## Related Projects -- **guard-core** - Framework-agnostic security engine (the engine this adapter wraps): -- **fastapi-guard** - FastAPI/Starlette adapter (async reference implementation): -- **flaskapi-guard** - Flask extension adapter (sync mirror): -- **tornadoapi-guard** - Tornado handler/middleware adapter: -- **guard-agent** - Telemetry and monitoring agent: -- **guard-core-mcp** - MCP server for config validation and docs search: -- **guard-core-app** - SaaS platform (API, dashboard, playground): +- **guard-core** - Framework-agnostic security engine (the engine this adapter wraps): +- **fastapi-guard** - FastAPI/Starlette adapter (async reference implementation): +- **flaskapi-guard** - Flask extension adapter (sync mirror): +- **tornadoapi-guard** - Tornado handler/middleware adapter: +- **guard-agent** - Telemetry and monitoring agent: +- **guard-core-mcp** - MCP server for config validation and docs search: +- **guard-core-app** - SaaS platform (API, dashboard, playground): diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 6832a90..e607324 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -76,7 +76,7 @@ Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at -[rennf93@users.noreply.github.com](mailto:rennf93@users.noreply.github.com). +[contact@guard-core.com](mailto:contact@guard-core.com). All complaints will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the privacy and security of the diff --git a/README.md b/README.md index b789590..edcef48 100644 --- a/README.md +++ b/README.md @@ -1,41 +1,41 @@

- - DjangoAPI Guard + + DjangoAPI Guard

---

- djapi-guard is a security library for Django that provides middleware to control IPs, log requests, detect penetration attempts and more. It integrates seamlessly with Django to offer robust protection against various security threats. Powered by guard-core. + djapi-guard is a security library for Django that provides middleware to control IPs, log requests, detect penetration attempts and more. It integrates seamlessly with Django to offer robust protection against various security threats. Powered by guard-core.

PyPiVersion - - Release + + Release License - - CI + + CI - - CodeQL + + CodeQL

- - PagesBuildDeployment + + PagesBuildDeployment - - DocsUpdate + + DocsUpdate - last-commit + last-commit

@@ -49,7 +49,7 @@

Website · - Docs · + Docs · Playground · Dashboard · Discord @@ -59,7 +59,7 @@ # Documentation -**[Documentation](https://rennf93.github.io/djapi-guard)** - Full technical documentation and deep dive into its inner workings. +**[Documentation](https://guard-core.github.io/djapi-guard)** - Full technical documentation and deep dive into its inner workings. ___ @@ -71,24 +71,24 @@ DjangoAPI Guard is the Django adapter for the Guard security ecosystem. Powered | Package | Role | PyPI | |---|---|---| -| [guard-core](https://github.com/rennf93/guard-core) | Framework-agnostic security engine | [![PyPI](https://img.shields.io/pypi/v/guard-core)](https://pypi.org/project/guard-core/) | -| [guard-agent](https://github.com/rennf93/guard-agent) | Telemetry agent | [![PyPI](https://img.shields.io/pypi/v/guard-agent)](https://pypi.org/project/guard-agent/) | -| [fastapi-guard](https://github.com/rennf93/fastapi-guard) | FastAPI / Starlette adapter | [![PyPI](https://img.shields.io/pypi/v/fastapi-guard)](https://pypi.org/project/fastapi-guard/) | -| [flaskapi-guard](https://github.com/rennf93/flaskapi-guard) | Flask adapter | [![PyPI](https://img.shields.io/pypi/v/flaskapi-guard)](https://pypi.org/project/flaskapi-guard/) | -| [djapi-guard](https://github.com/rennf93/djapi-guard) | Django adapter (this package) | [![PyPI](https://img.shields.io/pypi/v/djapi-guard)](https://pypi.org/project/djapi-guard/) | -| [tornadoapi-guard](https://github.com/rennf93/tornadoapi-guard) | Tornado adapter | [![PyPI](https://img.shields.io/pypi/v/tornadoapi-guard)](https://pypi.org/project/tornadoapi-guard/) | +| [guard-core](https://github.com/Guard-Core/guard-core) | Framework-agnostic security engine | [![PyPI](https://img.shields.io/pypi/v/guard-core)](https://pypi.org/project/guard-core/) | +| [guard-agent](https://github.com/Guard-Core/guard-agent) | Telemetry agent | [![PyPI](https://img.shields.io/pypi/v/guard-agent)](https://pypi.org/project/guard-agent/) | +| [fastapi-guard](https://github.com/Guard-Core/fastapi-guard) | FastAPI / Starlette adapter | [![PyPI](https://img.shields.io/pypi/v/fastapi-guard)](https://pypi.org/project/fastapi-guard/) | +| [flaskapi-guard](https://github.com/Guard-Core/flaskapi-guard) | Flask adapter | [![PyPI](https://img.shields.io/pypi/v/flaskapi-guard)](https://pypi.org/project/flaskapi-guard/) | +| [djapi-guard](https://github.com/Guard-Core/djapi-guard) | Django adapter (this package) | [![PyPI](https://img.shields.io/pypi/v/djapi-guard)](https://pypi.org/project/djapi-guard/) | +| [tornadoapi-guard](https://github.com/Guard-Core/tornadoapi-guard) | Tornado adapter | [![PyPI](https://img.shields.io/pypi/v/tornadoapi-guard)](https://pypi.org/project/tornadoapi-guard/) | ### TypeScript / JavaScript -Published under the [`@guardcore`](https://www.npmjs.com/org/guardcore) npm scope. Source in the [guard-core-ts](https://github.com/rennf93/guard-core-ts) monorepo. **Production-ready.** +Published under the [`@guardcore`](https://www.npmjs.com/org/guardcore) npm scope. Source in the [guard-core-ts](https://github.com/Guard-Core/guard-core-ts) monorepo. **Production-ready.** | Package | Role | npm | |---|---|---| -| [@guardcore/core](https://github.com/rennf93/guard-core-ts/tree/master/packages/core) | Core engine | [![npm](https://img.shields.io/npm/v/%40guardcore%2Fcore)](https://www.npmjs.com/package/@guardcore/core) | -| [@guardcore/express](https://github.com/rennf93/guard-core-ts/tree/master/packages/express) | Express adapter | [![npm](https://img.shields.io/npm/v/%40guardcore%2Fexpress)](https://www.npmjs.com/package/@guardcore/express) | -| [@guardcore/nestjs](https://github.com/rennf93/guard-core-ts/tree/master/packages/nestjs) | NestJS adapter | [![npm](https://img.shields.io/npm/v/%40guardcore%2Fnestjs)](https://www.npmjs.com/package/@guardcore/nestjs) | -| [@guardcore/fastify](https://github.com/rennf93/guard-core-ts/tree/master/packages/fastify) | Fastify adapter | [![npm](https://img.shields.io/npm/v/%40guardcore%2Ffastify)](https://www.npmjs.com/package/@guardcore/fastify) | -| [@guardcore/hono](https://github.com/rennf93/guard-core-ts/tree/master/packages/hono) | Hono adapter | [![npm](https://img.shields.io/npm/v/%40guardcore%2Fhono)](https://www.npmjs.com/package/@guardcore/hono) | +| [@guardcore/core](https://github.com/Guard-Core/guard-core-ts/tree/master/packages/core) | Core engine | [![npm](https://img.shields.io/npm/v/%40guardcore%2Fcore)](https://www.npmjs.com/package/@guardcore/core) | +| [@guardcore/express](https://github.com/Guard-Core/guard-core-ts/tree/master/packages/express) | Express adapter | [![npm](https://img.shields.io/npm/v/%40guardcore%2Fexpress)](https://www.npmjs.com/package/@guardcore/express) | +| [@guardcore/nestjs](https://github.com/Guard-Core/guard-core-ts/tree/master/packages/nestjs) | NestJS adapter | [![npm](https://img.shields.io/npm/v/%40guardcore%2Fnestjs)](https://www.npmjs.com/package/@guardcore/nestjs) | +| [@guardcore/fastify](https://github.com/Guard-Core/guard-core-ts/tree/master/packages/fastify) | Fastify adapter | [![npm](https://img.shields.io/npm/v/%40guardcore%2Ffastify)](https://www.npmjs.com/package/@guardcore/fastify) | +| [@guardcore/hono](https://github.com/Guard-Core/guard-core-ts/tree/master/packages/hono) | Hono adapter | [![npm](https://img.shields.io/npm/v/%40guardcore%2Fhono)](https://www.npmjs.com/package/@guardcore/hono) | ### Rust @@ -96,11 +96,11 @@ Published on crates.io. **🚧 Placeholder crates — implementation in progress | Package | Role | crates.io | |---|---|---| -| [guard-core](https://github.com/rennf93/guard-core-rs) | Core engine | [![crates.io](https://img.shields.io/crates/v/guard-core)](https://crates.io/crates/guard-core) | -| [actix-guard-rs](https://github.com/rennf93/actix-guard-rs) | Actix adapter | [![crates.io](https://img.shields.io/crates/v/actix-guard-rs)](https://crates.io/crates/actix-guard-rs) | -| [axum-guard-rs](https://github.com/rennf93/axum-guard-rs) | Axum adapter | [![crates.io](https://img.shields.io/crates/v/axum-guard-rs)](https://crates.io/crates/axum-guard-rs) | -| [rocket-guard-rs](https://github.com/rennf93/rocket-guard-rs) | Rocket adapter | [![crates.io](https://img.shields.io/crates/v/rocket-guard-rs)](https://crates.io/crates/rocket-guard-rs) | -| [tower-guard-rs](https://github.com/rennf93/tower-guard-rs) | Tower adapter | [![crates.io](https://img.shields.io/crates/v/tower-guard-rs)](https://crates.io/crates/tower-guard-rs) | +| [guard-core](https://github.com/Guard-Core/guard-core-rs) | Core engine | [![crates.io](https://img.shields.io/crates/v/guard-core)](https://crates.io/crates/guard-core) | +| [actix-guard-rs](https://github.com/Guard-Core/actix-guard-rs) | Actix adapter | [![crates.io](https://img.shields.io/crates/v/actix-guard-rs)](https://crates.io/crates/actix-guard-rs) | +| [axum-guard-rs](https://github.com/Guard-Core/axum-guard-rs) | Axum adapter | [![crates.io](https://img.shields.io/crates/v/axum-guard-rs)](https://crates.io/crates/axum-guard-rs) | +| [rocket-guard-rs](https://github.com/Guard-Core/rocket-guard-rs) | Rocket adapter | [![crates.io](https://img.shields.io/crates/v/rocket-guard-rs)](https://crates.io/crates/rocket-guard-rs) | +| [tower-guard-rs](https://github.com/Guard-Core/tower-guard-rs) | Tower adapter | [![crates.io](https://img.shields.io/crates/v/tower-guard-rs)](https://crates.io/crates/tower-guard-rs) | ___ @@ -807,7 +807,7 @@ ___ ## Key Differences from FlaskAPI Guard -DjangoAPI Guard is a direct port of [FlaskAPI Guard](https://github.com/rennf93/flaskapi-guard) to the Django ecosystem. The security logic is identical, but adapted for Django's middleware model: +DjangoAPI Guard is a direct port of [FlaskAPI Guard](https://github.com/Guard-Core/flaskapi-guard) to the Django ecosystem. The security logic is identical, but adapted for Django's middleware model: | Aspect | FlaskAPI Guard | DjangoAPI Guard | |--------|--------------|----------------| @@ -838,15 +838,15 @@ ___ ## Author -Renzo Franceschini - [rennf93@users.noreply.github.com](mailto:rennf93@users.noreply.github.com) . +Renzo Franceschini - [contact@guard-core.com](mailto:contact@guard-core.com) . ___ ## Acknowledgements - [Django](https://www.djangoproject.com/) -- [FlaskAPI Guard](https://github.com/rennf93/flaskapi-guard) -- [FastAPI Guard](https://github.com/rennf93/fastapi-guard) +- [FlaskAPI Guard](https://github.com/Guard-Core/flaskapi-guard) +- [FastAPI Guard](https://github.com/Guard-Core/fastapi-guard) - [IPInfo](https://ipinfo.io/) - [cachetools](https://cachetools.readthedocs.io/) - [Redis](https://redis.io/) diff --git a/SECURITY.md b/SECURITY.md index 9767647..ebfaff2 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -15,7 +15,7 @@ We currently provide security updates for the following versions of DjangoAPI Gu We take the security of DjangoAPI Guard seriously. If you believe you've found a security vulnerability, please follow these steps: 1. **Do not disclose the vulnerability publicly** until it has been addressed by the maintainers. -2. **Report the vulnerability through [GitHub's security advisory feature](https://github.com/rennf93/djapi-guard/security/advisories/new)**: +2. **Report the vulnerability through [GitHub's security advisory feature](https://github.com/Guard-Core/djapi-guard/security/advisories/new)**: - Click "New draft security advisory" - Fill in the details of the vulnerability - Submit the advisory @@ -80,7 +80,7 @@ DjangoAPI Guard provides several security features to protect your Django applic - Country-based Access Control - Cloud Provider IP Blocking -For detailed information on configuring these features, refer to the [documentation](https://rennf93.github.io/djapi-guard). +For detailed information on configuring these features, refer to the [documentation](https://guard-core.github.io/djapi-guard). ## Threat Model diff --git a/djangoapi_guard/.agents/skills/djapi-guard/SKILL.md b/djangoapi_guard/.agents/skills/djapi-guard/SKILL.md index cfcee32..ae87acd 100644 --- a/djangoapi_guard/.agents/skills/djapi-guard/SKILL.md +++ b/djangoapi_guard/.agents/skills/djapi-guard/SKILL.md @@ -73,10 +73,10 @@ Decorators from `guard_core.sync.decorators` write per-route `RouteConfig` objec ## Related Projects -* [guard-core](https://github.com/rennf93/guard-core): framework-agnostic security engine (async source + `guard_core.sync` mirror) this adapter wraps. -* [fastapi-guard](https://github.com/rennf93/fastapi-guard): FastAPI/Starlette adapter (async reference implementation). -* [flaskapi-guard](https://github.com/rennf93/flaskapi-guard): Flask extension adapter (sync mirror). -* [tornadoapi-guard](https://github.com/rennf93/tornadoapi-guard): Tornado handler/middleware adapter. -* [guard-agent](https://github.com/rennf93/guard-agent): telemetry client used by `enable_agent=True`. -* [guard-core-mcp](https://github.com/rennf93/guard-core-mcp): MCP server for config validation and docs search. -* [guard-core-app](https://github.com/rennf93/guard-core-app): SaaS platform the agent reports to. +* [guard-core](https://github.com/Guard-Core/guard-core): framework-agnostic security engine (async source + `guard_core.sync` mirror) this adapter wraps. +* [fastapi-guard](https://github.com/Guard-Core/fastapi-guard): FastAPI/Starlette adapter (async reference implementation). +* [flaskapi-guard](https://github.com/Guard-Core/flaskapi-guard): Flask extension adapter (sync mirror). +* [tornadoapi-guard](https://github.com/Guard-Core/tornadoapi-guard): Tornado handler/middleware adapter. +* [guard-agent](https://github.com/Guard-Core/guard-agent): telemetry client used by `enable_agent=True`. +* [guard-core-mcp](https://github.com/Guard-Core/guard-core-mcp): MCP server for config validation and docs search. +* [guard-core-app](https://github.com/Guard-Core/guard-core-app): SaaS platform the agent reports to. diff --git a/docs/index.md b/docs/index.md index 6b912cc..7b41405 100644 --- a/docs/index.md +++ b/docs/index.md @@ -11,12 +11,12 @@ keywords: django, security, middleware, python, ip control, rate limiting, penet ![DjangoAPI Guard](assets/djapi_guard_legend.svg) [![PyPI version](https://badge.fury.io/py/djapi-guard.svg?cache=none&icon=si%3Apython&icon_color=%23008cb4)](https://badge.fury.io/py/djapi-guard) -[![Release](https://github.com/rennf93/djapi-guard/actions/workflows/release.yml/badge.svg)](https://github.com/rennf93/djapi-guard/actions/workflows/release.yml) +[![Release](https://github.com/Guard-Core/djapi-guard/actions/workflows/release.yml/badge.svg)](https://github.com/Guard-Core/djapi-guard/actions/workflows/release.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) -[![CI](https://github.com/rennf93/djapi-guard/actions/workflows/ci.yml/badge.svg)](https://github.com/rennf93/djapi-guard/actions/workflows/ci.yml) -[![CodeQL](https://github.com/rennf93/djapi-guard/actions/workflows/code-ql.yml/badge.svg)](https://github.com/rennf93/djapi-guard/actions/workflows/code-ql.yml) +[![CI](https://github.com/Guard-Core/djapi-guard/actions/workflows/ci.yml/badge.svg)](https://github.com/Guard-Core/djapi-guard/actions/workflows/ci.yml) +[![CodeQL](https://github.com/Guard-Core/djapi-guard/actions/workflows/code-ql.yml/badge.svg)](https://github.com/Guard-Core/djapi-guard/actions/workflows/code-ql.yml) -`djapi-guard` is a comprehensive security library for Django applications, providing middleware to control IPs, log requests, and detect penetration attempts. It integrates seamlessly with Django to offer robust protection against various security threats, ensuring your application remains secure and reliable. DjangoAPI Guard is a direct port of [FastAPI Guard](https://github.com/rennf93/fastapi-guard) to the Django ecosystem. +`djapi-guard` is a comprehensive security library for Django applications, providing middleware to control IPs, log requests, and detect penetration attempts. It integrates seamlessly with Django to offer robust protection against various security threats, ensuring your application remains secure and reliable. DjangoAPI Guard is a direct port of [FastAPI Guard](https://github.com/Guard-Core/fastapi-guard) to the Django ecosystem. ___ @@ -96,20 +96,20 @@ ___ ## Example App -Inside [examples](https://github.com/rennf93/djapi-guard/tree/master/examples), you can find a simple example app that demonstrates how to use DjangoAPI Guard. +Inside [examples](https://github.com/Guard-Core/djapi-guard/tree/master/examples), you can find a simple example app that demonstrates how to use DjangoAPI Guard. ___ ## Docker Container -You can also download the example app as a Docker container from [GitHub Container Registry](https://github.com/orgs/rennf93/packages/container/djapi-guard-example). +You can also download the example app as a Docker container from [GitHub Container Registry](https://github.com/orgs/Guard-Core/packages/container/djapi-guard-example). ```bash # Pull the latest version -docker pull ghcr.io/rennf93/djapi-guard-example:latest +docker pull ghcr.io/guard-core/djapi-guard-example:latest # Or pull a specific version (matches library releases) -docker pull ghcr.io/rennf93/djapi-guard-example:v4.3.2 +docker pull ghcr.io/guard-core/djapi-guard-example:v4.3.2 ``` ___ @@ -122,7 +122,7 @@ The easiest way to run the example app is with Docker Compose, which automatical ```bash # Clone the repository -git clone https://github.com/rennf93/djapi-guard.git +git clone https://github.com/Guard-Core/djapi-guard.git cd djapi-guard/examples # Start the app with Redis @@ -137,14 +137,14 @@ Alternatively, you can run just the container: ```bash # Run with default settings -docker run -p 8000:8000 ghcr.io/rennf93/djapi-guard-example:latest +docker run -p 8000:8000 ghcr.io/guard-core/djapi-guard-example:latest # Run with custom Redis connection docker run -p 8000:8000 \ -e REDIS_URL=redis://your-redis-host:your-redis-port \ -e REDIS_PREFIX=your-redis-prefix \ -e IPINFO_TOKEN=your-ipinfo-token \ - ghcr.io/rennf93/djapi-guard-example:latest + ghcr.io/guard-core/djapi-guard-example:latest ``` ### Running Locally @@ -400,7 +400,7 @@ ___ ## Key Differences from FastAPI Guard -DjangoAPI Guard is a direct port of [FastAPI Guard](https://github.com/rennf93/fastapi-guard) adapted for Django's synchronous model: +DjangoAPI Guard is a direct port of [FastAPI Guard](https://github.com/Guard-Core/fastapi-guard) adapted for Django's synchronous model: | Aspect | FastAPI Guard | DjangoAPI Guard | |--------|--------------|----------------| @@ -421,6 +421,6 @@ ___ ## Documentation - [Release Notes](release-notes.md) -- [GitHub Repository](https://github.com/rennf93/djapi-guard) +- [GitHub Repository](https://github.com/Guard-Core/djapi-guard) - [PyPI Package](https://pypi.org/project/djapi-guard/) -- [FastAPI Guard (upstream)](https://github.com/rennf93/fastapi-guard) +- [FastAPI Guard (upstream)](https://github.com/Guard-Core/fastapi-guard) diff --git a/docs/llms.txt b/docs/llms.txt index 72b42a7..59bb441 100644 --- a/docs/llms.txt +++ b/docs/llms.txt @@ -1,6 +1,6 @@ # DjangoAPI Guard Documentation - LLMs.txt # For LLM Crawlers and AI Assistants -# Documentation Site: https://rennf93.github.io/djapi-guard +# Documentation Site: https://guard-core.github.io/djapi-guard ## Overview DjangoAPI Guard is a comprehensive security middleware for Django applications, providing enterprise-grade protection with minimal configuration. Powered by guard-core, the framework-agnostic security engine. This documentation site provides complete technical guides, API references, tutorials, and examples. @@ -8,105 +8,105 @@ DjangoAPI Guard is a comprehensive security middleware for Django applications, ## Documentation Structure ### Getting Started -- **Home**: https://rennf93.github.io/djapi-guard/latest/ -- **Installation**: https://rennf93.github.io/djapi-guard/latest/installation/ -- **First Steps**: https://rennf93.github.io/djapi-guard/latest/tutorial/first-steps/ +- **Home**: https://guard-core.github.io/djapi-guard/latest/ +- **Installation**: https://guard-core.github.io/djapi-guard/latest/installation/ +- **First Steps**: https://guard-core.github.io/djapi-guard/latest/tutorial/first-steps/ ### Core Features Documentation #### IP Management - **IP Banning**: Automatic and manual IP banning with threshold-based blocking - - Docs: https://rennf93.github.io/djapi-guard/latest/tutorial/ip-management/banning/ + - Docs: https://guard-core.github.io/djapi-guard/latest/tutorial/ip-management/banning/ - **Geolocation**: Country-based access control using IP geolocation - - Docs: https://rennf93.github.io/djapi-guard/latest/tutorial/ip-management/geolocation/ + - Docs: https://guard-core.github.io/djapi-guard/latest/tutorial/ip-management/geolocation/ - **Cloud Providers**: Block requests from AWS, GCP, Azure IP ranges - - Docs: https://rennf93.github.io/djapi-guard/latest/tutorial/ip-management/cloud-providers/ + - Docs: https://guard-core.github.io/djapi-guard/latest/tutorial/ip-management/cloud-providers/ - **Rate Limiting**: Multiple strategies (fixed window, sliding window, token bucket) - - Docs: https://rennf93.github.io/djapi-guard/latest/tutorial/ip-management/rate-limiter/ + - Docs: https://guard-core.github.io/djapi-guard/latest/tutorial/ip-management/rate-limiter/ #### Security Decorators - **Overview**: Route-level security with Python decorators - - Docs: https://rennf93.github.io/djapi-guard/latest/tutorial/decorators/overview/ + - Docs: https://guard-core.github.io/djapi-guard/latest/tutorial/decorators/overview/ - **Access Control**: IP whitelisting, blacklisting, country restrictions - - Docs: https://rennf93.github.io/djapi-guard/latest/tutorial/decorators/access-control/ + - Docs: https://guard-core.github.io/djapi-guard/latest/tutorial/decorators/access-control/ - **Authentication**: Bearer, Basic, API Key header validation - - Docs: https://rennf93.github.io/djapi-guard/latest/tutorial/decorators/authentication/ + - Docs: https://guard-core.github.io/djapi-guard/latest/tutorial/decorators/authentication/ - **Rate Limiting Decorators**: Per-route rate limits - - Docs: https://rennf93.github.io/djapi-guard/latest/tutorial/decorators/rate-limiting/ + - Docs: https://guard-core.github.io/djapi-guard/latest/tutorial/decorators/rate-limiting/ - **Behavioral Analysis**: Usage monitoring, return value monitoring - - Docs: https://rennf93.github.io/djapi-guard/latest/tutorial/decorators/behavioral/ + - Docs: https://guard-core.github.io/djapi-guard/latest/tutorial/decorators/behavioral/ - **Content Filtering**: Request/response content validation - - Docs: https://rennf93.github.io/djapi-guard/latest/tutorial/decorators/content-filtering/ + - Docs: https://guard-core.github.io/djapi-guard/latest/tutorial/decorators/content-filtering/ - **Advanced Decorators**: Combined security features - - Docs: https://rennf93.github.io/djapi-guard/latest/tutorial/decorators/advanced/ + - Docs: https://guard-core.github.io/djapi-guard/latest/tutorial/decorators/advanced/ #### Security Features - **Penetration Detection**: SQL injection, XSS, command injection detection - - Docs: https://rennf93.github.io/djapi-guard/latest/tutorial/security/penetration-detection/ + - Docs: https://guard-core.github.io/djapi-guard/latest/tutorial/security/penetration-detection/ - **Detection Engine**: Advanced pattern matching and threat detection - - Overview: https://rennf93.github.io/djapi-guard/latest/tutorial/security/detection-engine/overview/ - - Architecture: https://rennf93.github.io/djapi-guard/latest/tutorial/security/detection-engine/architecture/ - - Components: https://rennf93.github.io/djapi-guard/latest/tutorial/security/detection-engine/components/ - - Configuration: https://rennf93.github.io/djapi-guard/latest/tutorial/security/detection-engine/configuration/ - - Performance: https://rennf93.github.io/djapi-guard/latest/tutorial/security/detection-engine/performance-tuning/ + - Overview: https://guard-core.github.io/djapi-guard/latest/tutorial/security/detection-engine/overview/ + - Architecture: https://guard-core.github.io/djapi-guard/latest/tutorial/security/detection-engine/architecture/ + - Components: https://guard-core.github.io/djapi-guard/latest/tutorial/security/detection-engine/components/ + - Configuration: https://guard-core.github.io/djapi-guard/latest/tutorial/security/detection-engine/configuration/ + - Performance: https://guard-core.github.io/djapi-guard/latest/tutorial/security/detection-engine/performance-tuning/ - **Proxy Security**: Trusted proxy handling, X-Forwarded-For validation - - Docs: https://rennf93.github.io/djapi-guard/latest/tutorial/security/proxy-security/ + - Docs: https://guard-core.github.io/djapi-guard/latest/tutorial/security/proxy-security/ - **Custom Patterns**: Define custom attack patterns - - Docs: https://rennf93.github.io/djapi-guard/latest/tutorial/security/custom-patterns/ + - Docs: https://guard-core.github.io/djapi-guard/latest/tutorial/security/custom-patterns/ - **Security Monitoring**: Event tracking and analytics - - Docs: https://rennf93.github.io/djapi-guard/latest/tutorial/security/monitoring/ + - Docs: https://guard-core.github.io/djapi-guard/latest/tutorial/security/monitoring/ #### Configuration - **Security Config**: Complete configuration reference - - Docs: https://rennf93.github.io/djapi-guard/latest/tutorial/configuration/security-config/ + - Docs: https://guard-core.github.io/djapi-guard/latest/tutorial/configuration/security-config/ - **CORS**: Cross-Origin Resource Sharing setup - - Docs: https://rennf93.github.io/djapi-guard/latest/tutorial/configuration/cors/ + - Docs: https://guard-core.github.io/djapi-guard/latest/tutorial/configuration/cors/ - **Logging**: Security event logging configuration - - Docs: https://rennf93.github.io/djapi-guard/latest/tutorial/configuration/logging/ + - Docs: https://guard-core.github.io/djapi-guard/latest/tutorial/configuration/logging/ #### Redis Integration - **Distributed State**: Redis for multi-instance deployments - - Docs: https://rennf93.github.io/djapi-guard/latest/tutorial/redis-integration/caching/ + - Docs: https://guard-core.github.io/djapi-guard/latest/tutorial/redis-integration/caching/ #### Advanced Topics - **Advanced Customizations**: Custom request checks, response modifiers - - Docs: https://rennf93.github.io/djapi-guard/latest/tutorial/advanced-customizations/ + - Docs: https://guard-core.github.io/djapi-guard/latest/tutorial/advanced-customizations/ - **Example Application**: Complete working example - - Docs: https://rennf93.github.io/djapi-guard/latest/tutorial/examples/example-app/ + - Docs: https://guard-core.github.io/djapi-guard/latest/tutorial/examples/example-app/ ### API Reference Complete API documentation for all classes and functions: -- **Overview**: https://rennf93.github.io/djapi-guard/latest/api/overview/ +- **Overview**: https://guard-core.github.io/djapi-guard/latest/api/overview/ - **DjangoAPIGuard**: Main middleware class - - Docs: https://rennf93.github.io/djapi-guard/latest/api/security-middleware/ + - Docs: https://guard-core.github.io/djapi-guard/latest/api/security-middleware/ - **Core Architecture**: Internal architecture and design - - Docs: https://rennf93.github.io/djapi-guard/latest/api/core-architecture/ + - Docs: https://guard-core.github.io/djapi-guard/latest/api/core-architecture/ - **SecurityDecorators**: All decorator functions - - Docs: https://rennf93.github.io/djapi-guard/latest/api/decorators/ + - Docs: https://guard-core.github.io/djapi-guard/latest/api/decorators/ - **BehaviorManager**: Behavioral analysis manager - - Docs: https://rennf93.github.io/djapi-guard/latest/api/behavior-manager/ + - Docs: https://guard-core.github.io/djapi-guard/latest/api/behavior-manager/ - **RedisManager**: Redis state management - - Docs: https://rennf93.github.io/djapi-guard/latest/api/redis-manager/ + - Docs: https://guard-core.github.io/djapi-guard/latest/api/redis-manager/ - **IPBanManager**: IP banning logic - - Docs: https://rennf93.github.io/djapi-guard/latest/api/ipban-manager/ + - Docs: https://guard-core.github.io/djapi-guard/latest/api/ipban-manager/ - **IPInfoManager**: IP geolocation - - Docs: https://rennf93.github.io/djapi-guard/latest/api/ipinfo-manager/ + - Docs: https://guard-core.github.io/djapi-guard/latest/api/ipinfo-manager/ - **RateLimitManager**: Rate limiting algorithms - - Docs: https://rennf93.github.io/djapi-guard/latest/api/ratelimit-manager/ + - Docs: https://guard-core.github.io/djapi-guard/latest/api/ratelimit-manager/ - **SusPatternsManager**: Suspicious pattern detection - - Docs: https://rennf93.github.io/djapi-guard/latest/api/sus-patterns/ + - Docs: https://guard-core.github.io/djapi-guard/latest/api/sus-patterns/ - **CloudManager**: Cloud provider IP management - - Docs: https://rennf93.github.io/djapi-guard/latest/api/cloud-manager/ + - Docs: https://guard-core.github.io/djapi-guard/latest/api/cloud-manager/ - **SecurityHeadersManager**: HTTP security headers - - Docs: https://rennf93.github.io/djapi-guard/latest/api/security-headers/ + - Docs: https://guard-core.github.io/djapi-guard/latest/api/security-headers/ - **Utilities**: Helper functions and utilities - - Docs: https://rennf93.github.io/djapi-guard/latest/api/utilities/ + - Docs: https://guard-core.github.io/djapi-guard/latest/api/utilities/ ### Release Notes - **Changelog**: All version history and updates - - Docs: https://rennf93.github.io/djapi-guard/latest/release-notes/ + - Docs: https://guard-core.github.io/djapi-guard/latest/release-notes/ ## Key Features Explained @@ -179,15 +179,15 @@ MIDDLEWARE = [ ## Related Resources ### Official Sites -- **Documentation**: https://rennf93.github.io/djapi-guard/latest/ -- **GitHub**: https://github.com/rennf93/djapi-guard +- **Documentation**: https://guard-core.github.io/djapi-guard/latest/ +- **GitHub**: https://github.com/Guard-Core/djapi-guard - **PyPI**: https://pypi.org/project/djapi-guard/ ### Community -- **Issues**: https://github.com/rennf93/djapi-guard/issues -- **Discussions**: https://github.com/rennf93/djapi-guard/discussions -- **Contributing**: https://github.com/rennf93/djapi-guard/blob/main/CONTRIBUTING.md -- **Security Policy**: https://github.com/rennf93/djapi-guard/security/policy +- **Issues**: https://github.com/Guard-Core/djapi-guard/issues +- **Discussions**: https://github.com/Guard-Core/djapi-guard/discussions +- **Contributing**: https://github.com/Guard-Core/djapi-guard/blob/master/CONTRIBUTING.md +- **Security Policy**: https://github.com/Guard-Core/djapi-guard/security/policy ## License MIT License - Free for commercial and personal use. @@ -197,4 +197,4 @@ This documentation covers all versions of DjangoAPI Guard. Use the version selec Default version: latest (stable) Provider: Mike (MkDocs versioning) -Versions JSON: https://rennf93.github.io/djapi-guard/versions.json +Versions JSON: https://guard-core.github.io/djapi-guard/versions.json diff --git a/docs/robots.txt b/docs/robots.txt index a1fe810..4713487 100644 --- a/docs/robots.txt +++ b/docs/robots.txt @@ -1,3 +1,3 @@ User-agent: * Allow: / -Sitemap: https://rennf93.github.io/djapi-guard/sitemap.xml \ No newline at end of file +Sitemap: https://guard-core.github.io/djapi-guard/sitemap.xml \ No newline at end of file diff --git a/docs/tutorial/configuration/telemetry.md b/docs/tutorial/configuration/telemetry.md index 31286ab..3b8755f 100644 --- a/docs/tutorial/configuration/telemetry.md +++ b/docs/tutorial/configuration/telemetry.md @@ -7,7 +7,7 @@ description: OpenTelemetry, Logfire, and event/metric/log muting for DjangoAPI G # Telemetry -DjangoAPI Guard emits security events and request metrics through a composable telemetry pipeline provided by [guard-core](https://github.com/rennf93/guard-core). Events can be muted, metrics can be muted, individual security-check logs can be muted, and exports to OpenTelemetry and Logfire are opt-in. +DjangoAPI Guard emits security events and request metrics through a composable telemetry pipeline provided by [guard-core](https://github.com/Guard-Core/guard-core). Events can be muted, metrics can be muted, individual security-check logs can be muted, and exports to OpenTelemetry and Logfire are opt-in. The middleware installs and tears down the telemetry pipeline automatically — you only set fields on `GUARD_SECURITY_CONFIG`. @@ -201,7 +201,7 @@ When `enable_enrichment=True`, every event and every metric routed through the m | `guard.behavior.correlation_key` | `str` (16-char hex) | SHA-256 prefix of `ip \| service \| floor(now/300)` — stable within a 5-minute window | events only | | `guard.behavior.recent_event_count` | `int` | Total events observed from the IP across all endpoints in the last 5 minutes | events only | -All fields are nullable; absence = unavailable context. Every exporter (guard-agent, OTel, Logfire) sees the same enriched payload. See the [guard-core telemetry reference](https://github.com/rennf93/guard-core/blob/master/docs/architecture/telemetry.md) for the full behavior spec. +All fields are nullable; absence = unavailable context. Every exporter (guard-agent, OTel, Logfire) sees the same enriched payload. See the [guard-core telemetry reference](https://github.com/Guard-Core/guard-core/blob/master/docs/architecture/telemetry.md) for the full behavior spec. ## Incoming `traceparent` @@ -230,4 +230,4 @@ The error message lists the valid values. Common typos: `"suspicious"` instead o ## Reference -The full field schema and pipeline behaviour is maintained in the [guard-core telemetry reference](https://github.com/rennf93/guard-core/blob/master/docs/architecture/telemetry.md). +The full field schema and pipeline behaviour is maintained in the [guard-core telemetry reference](https://github.com/Guard-Core/guard-core/blob/master/docs/architecture/telemetry.md). diff --git a/docs/tutorial/examples/example-app.md b/docs/tutorial/examples/example-app.md index 08d9ee3..7070772 100644 --- a/docs/tutorial/examples/example-app.md +++ b/docs/tutorial/examples/example-app.md @@ -32,7 +32,7 @@ Code Overview The example app is built using Django and shows how to integrate DjangoAPI Guard as middleware: -[Example Code](https://github.com/rennf93/djapi-guard/blob/master/examples/main.py) +[Example Code](https://github.com/Guard-Core/djapi-guard/blob/master/examples/main.py) ```python # settings.py @@ -64,7 +64,7 @@ The easiest way to run the example is with Docker Compose, which automatically s ```bash # Clone the repository -git clone https://github.com/rennf93/djapi-guard.git +git clone https://github.com/Guard-Core/djapi-guard.git cd djapi-guard/examples # Start the app with Redis @@ -83,7 +83,7 @@ ___ Docker Compose File ------------------- -[Docker Compose File](https://github.com/rennf93/djapi-guard/blob/master/examples/compose.yml) +[Docker Compose File](https://github.com/Guard-Core/djapi-guard/blob/master/examples/compose.yml) ```yaml services: @@ -122,7 +122,7 @@ Testing Security Features You can use the included test battery to verify security features: -[Test battery](https://github.com/rennf93/djapi-guard/blob/master/examples/test_battery.txt) +[Test battery](https://github.com/Guard-Core/djapi-guard/blob/master/examples/test_battery.txt) ```bash # For rate limiting (will trigger after 15 requests) @@ -159,7 +159,7 @@ ___ Source Code ----------- -You can find the complete example code in the [examples directory](https://github.com/rennf93/djapi-guard/tree/master/examples) of the GitHub repository. +You can find the complete example code in the [examples directory](https://github.com/Guard-Core/djapi-guard/tree/master/examples) of the GitHub repository. ___ diff --git a/mkdocs.yml b/mkdocs.yml index abe1aa5..0330fac 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,8 +1,8 @@ site_name: DjangoAPI Guard site_description: Security middleware for Django applications -site_url: https://rennf93.github.io/djapi-guard/latest/ -repo_name: rennf93/djapi-guard -repo_url: https://github.com/rennf93/djapi-guard +site_url: https://guard-core.github.io/djapi-guard/latest/ +repo_name: Guard-Core/djapi-guard +repo_url: https://github.com/Guard-Core/djapi-guard edit_uri: edit/master/docs/ theme: @@ -131,7 +131,7 @@ plugins: extra: social: - icon: fontawesome/brands/github - link: https://github.com/rennf93/djapi-guard + link: https://github.com/Guard-Core/djapi-guard - icon: fontawesome/brands/python link: https://pypi.org/project/djapi-guard/ @@ -150,7 +150,7 @@ extra: data: 0 note: >- Thanks for your feedback! Help us improve by using our - issue tracker. + issue tracker. generator: false meta: @@ -161,7 +161,7 @@ extra: - property: og:description content: Comprehensive security library for Django applications providing IP control, request logging, and penetration detection - property: og:image - content: https://rennf93.github.io/djapi-guard/latest/assets/djapi_guard_legend.svg + content: https://guard-core.github.io/djapi-guard/latest/assets/djapi_guard_legend.svg - name: keywords content: django, security, middleware, python, ip control, rate limiting, penetration detection diff --git a/pyproject.toml b/pyproject.toml index 4ff1d6b..65edcf0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ name = "djapi-guard" version = "4.3.2" description = "A security library for Django to control IPs, log requests, and detect penetration attempts." authors = [ - {name = "Renzo Franceschini", email = "rennf93@users.noreply.github.com"} + {name = "Renzo Franceschini", email = "rennf93@guard-core.com"} ] readme = "README.md" license = "MIT" @@ -27,11 +27,11 @@ dependencies = [ ] [project.urls] -Homepage = "https://github.com/rennf93/djapi-guard" -Documentation = "https://rennf93.github.io/djapi-guard/latest/" -Repository = "https://github.com/rennf93/djapi-guard" -Issues = "https://github.com/rennf93/djapi-guard/issues" -Changelog = "https://github.com/rennf93/djapi-guard/blob/master/CHANGELOG.md" +Homepage = "https://github.com/Guard-Core/djapi-guard" +Documentation = "https://guard-core.github.io/djapi-guard/latest/" +Repository = "https://github.com/Guard-Core/djapi-guard" +Issues = "https://github.com/Guard-Core/djapi-guard/issues" +Changelog = "https://github.com/Guard-Core/djapi-guard/blob/master/CHANGELOG.md" [project.optional-dependencies] dev = [