release: public alpha 0.6.0 baseline
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
# JWeBot Configuration
|
||||
|
||||
JWeBot uses profile packages instead of repository-local environment files.
|
||||
Profiles are structurally similar to plugins: each package has a manifest,
|
||||
independent component files, private context, secrets, and optional overrides.
|
||||
Per-person SteamID mappings and Steam query aliases belong only in private
|
||||
context and are removed from redacted exports.
|
||||
|
||||
## Public Template
|
||||
|
||||
`config/templates/default/` is safe to commit and contains no real identity,
|
||||
host, account, API key, or incident data.
|
||||
|
||||
```text
|
||||
default/
|
||||
manifest.toml
|
||||
components/
|
||||
bot.toml
|
||||
providers.toml
|
||||
runtime.toml
|
||||
debug.toml
|
||||
notification.toml
|
||||
deployment.toml
|
||||
context/
|
||||
people.json
|
||||
secrets/
|
||||
runtime.env
|
||||
overrides/
|
||||
runtime.env
|
||||
root.env
|
||||
```
|
||||
|
||||
## Local Profile
|
||||
|
||||
Create and activate a local profile:
|
||||
|
||||
```sh
|
||||
./tools/jwebot-config.py init personal --activate
|
||||
```
|
||||
|
||||
The command writes only outside the repository:
|
||||
|
||||
```text
|
||||
~/.config/jwebot/
|
||||
current -> profiles/personal
|
||||
profiles/personal/
|
||||
...source profile files...
|
||||
generated/
|
||||
runtime.env
|
||||
root.env
|
||||
private-context.json
|
||||
notification.json
|
||||
manifest.json
|
||||
```
|
||||
|
||||
Source components are compiled into a temporary directory, validated, and
|
||||
renamed atomically. Runtime services read only `current/generated/`.
|
||||
|
||||
## Private State
|
||||
|
||||
Runtime and migrated diagnostic material lives separately:
|
||||
|
||||
```text
|
||||
~/.local/state/jwebot/profiles/personal/
|
||||
debug/sessions/
|
||||
incidents/
|
||||
telemetry/
|
||||
archives/
|
||||
root/
|
||||
```
|
||||
|
||||
Every profile and state directory is mode `0700`; generated files, secrets,
|
||||
private context, and archives are mode `0600`.
|
||||
|
||||
## Import And Export
|
||||
|
||||
Import another profile directory or `.tar.gz` package:
|
||||
|
||||
```sh
|
||||
./tools/jwebot-config.py import profile.tar.gz --activate
|
||||
```
|
||||
|
||||
Create a redacted package for review:
|
||||
|
||||
```sh
|
||||
./tools/jwebot-config.py export personal \
|
||||
--output /tmp/personal-redacted.tar.gz
|
||||
```
|
||||
|
||||
The default export empties secrets and removes people/clock context. Use
|
||||
`--include-private` only for a deliberately protected local backup.
|
||||
|
||||
## Legacy Migration
|
||||
|
||||
Archive old root-level debug files, incident reports, operational material,
|
||||
environment values, and static person aliases:
|
||||
|
||||
```sh
|
||||
./tools/jwebot-config.py migrate-legacy personal \
|
||||
--repository /path/to/old/repository \
|
||||
--activate
|
||||
```
|
||||
|
||||
Migration never adds private material to Git. The original source is left
|
||||
unchanged, and the imported material is copied into the private profile/state
|
||||
tree.
|
||||
Reference in New Issue
Block a user