| Method | Path | Body | Description |
|--------|------|------|-------------|
| GET | /admin/policies | – | List all policies (filter by type, target_id). |
| POST | /admin/policies | Policy JSON (see below) | Create new policy, returns policy_id. |
| GET | /admin/policies/policy_id | – | Retrieve a single policy. |
| PUT | /admin/policies/policy_id | Updated Policy JSON | Replace policy (hot‑reload). |
| DELETE | /admin/policies/policy_id | – | Remove policy (must be disabled first). |
Policy JSON Schema (YAML/JSON)
policy_id: p-001 # optional on POST, auto‑generated if omitted
type: room # global|room|user
target_id: room-1234 # ignored for global
max_per_interval: 20 # integer
interval_seconds: 60 # integer
burst: 5 # integer (optional, default=0)
allowed_roles: # optional array
- premium
- moderator
blocked_content_regex: null # optional, for future expansion
description: "Public channel rate limit"
Yes, watching public streams is free. Tipping and private shows cost tokens.
If you want this expanded into a formal academic-style paper (with citations in a chosen format, an extended literature review, methods, and results), tell me the target length and citation style.
+-------------------+ +-------------------+ +-------------------+
| Front‑end (JS/ | WS/ | ChatBurate API | RPC | Policy Engine |
| iOS/Android) |<------>| (Node/Go) |<------>| (Rule DSL Engine)|
+-------------------+ +-------------------+ +-------------------+
^ ^ ^ ^
| | | |
| | | |
| | | |
| | | |
| | | |
+-----------------+ +-------------------+ +-------------------+
| Message Bus |<-->| Rate‑Limiter |<-->| Redis / DynamoDB |
| (Kafka/NATS) | | (in‑memory) | | (counters, TTL) |
+-----------------+ +-------------------+ +-------------------+
| Method | Path | Body | Description |
|--------|------|------|-------------|
| GET | /admin/policies | – | List all policies (filter by type, target_id). |
| POST | /admin/policies | Policy JSON (see below) | Create new policy, returns policy_id. |
| GET | /admin/policies/policy_id | – | Retrieve a single policy. |
| PUT | /admin/policies/policy_id | Updated Policy JSON | Replace policy (hot‑reload). |
| DELETE | /admin/policies/policy_id | – | Remove policy (must be disabled first). |
Policy JSON Schema (YAML/JSON)
policy_id: p-001 # optional on POST, auto‑generated if omitted
type: room # global|room|user
target_id: room-1234 # ignored for global
max_per_interval: 20 # integer
interval_seconds: 60 # integer
burst: 5 # integer (optional, default=0)
allowed_roles: # optional array
- premium
- moderator
blocked_content_regex: null # optional, for future expansion
description: "Public channel rate limit"
Yes, watching public streams is free. Tipping and private shows cost tokens. chatburate
If you want this expanded into a formal academic-style paper (with citations in a chosen format, an extended literature review, methods, and results), tell me the target length and citation style. | Method | Path | Body | Description
+-------------------+ +-------------------+ +-------------------+
| Front‑end (JS/ | WS/ | ChatBurate API | RPC | Policy Engine |
| iOS/Android) |<------>| (Node/Go) |<------>| (Rule DSL Engine)|
+-------------------+ +-------------------+ +-------------------+
^ ^ ^ ^
| | | |
| | | |
| | | |
| | | |
| | | |
+-----------------+ +-------------------+ +-------------------+
| Message Bus |<-->| Rate‑Limiter |<-->| Redis / DynamoDB |
| (Kafka/NATS) | | (in‑memory) | | (counters, TTL) |
+-----------------+ +-------------------+ +-------------------+