Skip to content
This repository was archived by the owner on Apr 13, 2026. It is now read-only.

Commit 4861262

Browse files
authored
Merge pull request #28 from initstring/codex/rename-platform-to-red-team-assessment-platform
Rename platform to Red Team Assessment Platform
2 parents 2e42e90 + 5587aaf commit 4861262

18 files changed

Lines changed: 64 additions & 61 deletions

File tree

.env.example

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
# Prisma
44
DATABASE_URL="file:db.sqlite" # relative path uses prisma/ in dev builds
5-
# For Postgres in production, set DATABASE_URL="postgresql://USER:PASSWORD@HOST:PORT/ttpx"
5+
# For Postgres in production, set DATABASE_URL="postgresql://USER:PASSWORD@HOST:PORT/rtap"
66

77
# Initial User Creation
88
INITIAL_ADMIN_EMAIL="admin@example.com"

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
# TTPx
1+
# Red Team Assessment Platform (RTAP)
22

33
_This is an experiment in creating something useful with AI coding agents. The initial version was made with Claude Code, but it has since been largely re-written by GPT-5 Codex. It is a personal hobby project, with no commitments and no promises._
44

5-
TTPx is a platform for internal Red Teams to plan and analyze their operations. The features and functionality are designed with their specific needs in mind, such as:
5+
The Red Team Assessment Platform (RTAP) is built for internal Red Teams to plan and analyze their operations. The features and functionality are designed with their specific needs in mind, such as:
66

77
- Integrating the concept of threat actors and crown jewels into all operations - who is being emulated, what is being targeted, and how is that trending over time?
88
- Producing visually appealing artifacts from individual operations, such as attack heatmaps and interactive flow charts that allow the operator to design meaningful attack narratives.

deploy/docker/.env.example

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,29 @@
11
# Web app
2-
TTPX_PORT=3000
3-
TTPX_DATABASE_URL=postgresql://${TTPX_POSTGRES_USER}:${TTPX_POSTGRES_PASSWORD}@${TTPX_POSTGRES_HOST}:${TTPX_POSTGRES_PORT}/${TTPX_POSTGRES_DB}
2+
RTAP_PORT=3000
3+
RTAP_DATABASE_URL=postgresql://${RTAP_POSTGRES_USER}:${RTAP_POSTGRES_PASSWORD}@${RTAP_POSTGRES_HOST}:${RTAP_POSTGRES_PORT}/${RTAP_POSTGRES_DB}
44

55
# Full base URL where the app will be reachable (include http:// or https://).
66
# Cookies are sent over HTTPS only when this starts with https://.
7-
# If you put a TLS-terminating proxy in front of ttpx-web, use its public URL.
8-
TTPX_AUTH_URL=http://localhost:3000
7+
# If you put a TLS-terminating proxy in front of rtap-web, use its public URL.
8+
RTAP_AUTH_URL=http://localhost:3000
99

1010
# Secure values: generate with `openssl rand -base64 32`
11-
TTPX_AUTH_SECRET=REPLACE_WITH_A_SECURE_RANDOM_VALUE
12-
TTPX_INITIAL_ADMIN_EMAIL=admin@example.com
11+
RTAP_AUTH_SECRET=REPLACE_WITH_A_SECURE_RANDOM_VALUE
12+
RTAP_INITIAL_ADMIN_EMAIL=admin@example.com
1313

1414
# Optional SSO
1515
# Toggle passkey provider (default enabled)
16-
TTPX_AUTH_PASSKEYS_ENABLED=true
16+
RTAP_AUTH_PASSKEYS_ENABLED=true
1717
# Register Google provider when present (optional)
18-
#TTPX_GOOGLE_CLIENT_ID=
19-
#TTPX_GOOGLE_CLIENT_SECRET=
18+
#RTAP_GOOGLE_CLIENT_ID=
19+
#RTAP_GOOGLE_CLIENT_SECRET=
2020

2121
# Optional: logging level (default: debug in dev, info in prod)
22-
#TTPX_LOG_LEVEL=info
22+
#RTAP_LOG_LEVEL=info
2323

2424
# Postgres
25-
TTPX_POSTGRES_HOST=ttpx-postgres
26-
TTPX_POSTGRES_PORT="5432"
27-
TTPX_POSTGRES_USER=postgres
28-
TTPX_POSTGRES_PASSWORD=CHANGE_ME
29-
TTPX_POSTGRES_DB=ttpx
25+
RTAP_POSTGRES_HOST=rtap-postgres
26+
RTAP_POSTGRES_PORT="5432"
27+
RTAP_POSTGRES_USER=postgres
28+
RTAP_POSTGRES_PASSWORD=CHANGE_ME
29+
RTAP_POSTGRES_DB=rtap

deploy/docker/docker-compose.yml

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,37 @@
11
services:
2-
ttpx-postgres:
2+
rtap-postgres:
33
image: postgres:16-alpine
4-
container_name: ttpx-postgres
4+
container_name: rtap-postgres
55
environment:
6-
POSTGRES_USER: ${TTPX_POSTGRES_USER}
7-
POSTGRES_PASSWORD: ${TTPX_POSTGRES_PASSWORD}
8-
POSTGRES_DB: ${TTPX_POSTGRES_DB}
6+
POSTGRES_USER: ${RTAP_POSTGRES_USER}
7+
POSTGRES_PASSWORD: ${RTAP_POSTGRES_PASSWORD}
8+
POSTGRES_DB: ${RTAP_POSTGRES_DB}
99
volumes:
10-
- ttpx-postgres-data:/var/lib/postgresql/data
10+
- rtap-postgres-data:/var/lib/postgresql/data
1111
restart: unless-stopped
1212

13-
ttpx-web:
14-
image: ghcr.io/initstring/ttpx:v0.2.2
15-
container_name: ttpx-web
13+
rtap-web:
14+
image: ghcr.io/initstring/rtap:v0.2.2
15+
container_name: rtap-web
1616
depends_on:
17-
- ttpx-postgres
17+
- rtap-postgres
1818
environment:
1919
NODE_ENV: production
20-
PORT: ${TTPX_PORT}
21-
DATABASE_URL: ${TTPX_DATABASE_URL}
22-
AUTH_URL: ${TTPX_AUTH_URL}
23-
AUTH_SECRET: ${TTPX_AUTH_SECRET}
24-
INITIAL_ADMIN_EMAIL: ${TTPX_INITIAL_ADMIN_EMAIL}
25-
AUTH_PASSKEYS_ENABLED: ${TTPX_AUTH_PASSKEYS_ENABLED}
26-
GOOGLE_CLIENT_ID: ${TTPX_GOOGLE_CLIENT_ID}
27-
GOOGLE_CLIENT_SECRET: ${TTPX_GOOGLE_CLIENT_SECRET}
20+
PORT: ${RTAP_PORT}
21+
DATABASE_URL: ${RTAP_DATABASE_URL}
22+
AUTH_URL: ${RTAP_AUTH_URL}
23+
AUTH_SECRET: ${RTAP_AUTH_SECRET}
24+
INITIAL_ADMIN_EMAIL: ${RTAP_INITIAL_ADMIN_EMAIL}
25+
AUTH_PASSKEYS_ENABLED: ${RTAP_AUTH_PASSKEYS_ENABLED}
26+
GOOGLE_CLIENT_ID: ${RTAP_GOOGLE_CLIENT_ID}
27+
GOOGLE_CLIENT_SECRET: ${RTAP_GOOGLE_CLIENT_SECRET}
2828
ports:
29-
- "${TTPX_PORT}:${TTPX_PORT}"
29+
- "${RTAP_PORT}:${RTAP_PORT}"
3030
restart: unless-stopped
3131

3232
# If you need TLS, place your own reverse proxy (e.g., Traefik, Caddy, Nginx)
33-
# in front of ttpx-web and forward port 80/443 to ${PORT}.
33+
# in front of rtap-web and forward port 80/443 to ${PORT}.
3434

3535
volumes:
36-
ttpx-postgres-data:
37-
name: ttpx-postgres-data
36+
rtap-postgres-data:
37+
name: rtap-postgres-data

docs/dev/DESIGN.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# TTPx Design (Current)
1+
# Red Team Assessment Platform Design (Current)
22

3-
A concise, accurate description of how TTPx works today.
3+
A concise, accurate description of how RTAP works today.
44

55
## Purpose
66

docs/dev/STYLE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
TTPx UI Style Guide
1+
RTAP UI Style Guide
22

33
Structure and Naming (source of truth)
44

docs/getting-started.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Getting Started with TTPx
1+
# Getting Started with the Red Team Assessment Platform (RTAP)
22

33
This guide walks through the first workflow after you launch the application. Follow the steps in order so operations have the context they need for accurate analytics. The README already covers installing dependencies and starting the app.
44

@@ -28,7 +28,7 @@ This guide walks through the first workflow after you launch the application. Fo
2828
- Operator: Read/Write access to operations, view analytics, cannot access settings
2929
- Viewer: Read access to operations and analytics, cannot access settings
3030
- Create groups under Settings -> Groups if you plan to restrict operations to specific teams.
31-
- When SSO is enabled, every user still needs to exist in TTPx ahead of time with the correct role and group membership.
31+
- When SSO is enabled, every user still needs to exist in RTAP ahead of time with the correct role and group membership.
3232

3333
## 3. Create an Operation
3434

docs/installation.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Installation
22

3-
Follow these instructions to set up TTPx in local development or production environments.
3+
Follow these instructions to set up the Red Team Assessment Platform (RTAP) in local development or production environments.
44

55
## Local Development (Non-Docker)
66

@@ -39,12 +39,15 @@ cp .env.example .env
3939
docker compose up -d
4040

4141
# Optionally - seed demo taxonomy/operation data (FOR DEMO PURPOSES ONLY)
42-
docker exec ttpx-web npx tsx scripts/demo-data.ts
42+
docker exec rtap-web npx tsx scripts/demo-data.ts
4343

4444
# If not using SSO, generate 1-time login URL to set up your first passkey
45-
docker exec ttpx-web npm run generate-admin-login
45+
docker exec rtap-web npm run generate-admin-login
4646
```
4747

48+
Populate the `.env` file with the `RTAP_*` variables referenced in `docker-compose.yml` (port, database credentials, auth URL,
49+
and optional provider secrets) before starting the stack.
50+
4851
## Authentication
4952

5053
### How it Works

next.config.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import "./src/env";
33
import type { NextConfig } from "next";
44

55
const config: NextConfig = {
6-
// Allow local dev tooling to talk to the dev server when using the ttpx.dev domain
7-
allowedDevOrigins: ["ttpx.dev", "*.ttpx.dev"],
6+
// Allow local dev tooling to talk to the dev server when using the rtap.dev domain
7+
allowedDevOrigins: ["rtap.dev", "*.rtap.dev"],
88
};
99

1010
export default config;

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)