Rebrand SooSeF to FieldWitness

Complete project rebrand for better positioning in the press freedom
and digital security space. FieldWitness communicates both field
deployment and evidence testimony — appropriate for the target audience
of journalists, NGOs, and human rights organizations.

Rename mapping:
- soosef → fieldwitness (package, CLI, all imports)
- soosef.stegasoo → fieldwitness.stego
- soosef.verisoo → fieldwitness.attest
- ~/.soosef/ → ~/.fwmetadata/ (innocuous data dir name)
- SOOSEF_DATA_DIR → FIELDWITNESS_DATA_DIR
- SoosefConfig → FieldWitnessConfig
- SoosefError → FieldWitnessError

Also includes:
- License switch from MIT to GPL-3.0
- C2PA bridge module (Phase 0-2 MVP): cert.py, export.py, vendor_assertions.py
- README repositioned to lead with provenance/federation, stego backgrounded
- Threat model skeleton at docs/security/threat-model.md
- Planning docs: docs/planning/c2pa-integration.md, docs/planning/gtm-feasibility.md

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Aaron D. Lee
2026-04-02 15:05:13 -04:00
parent 6325e86873
commit 490f9d4a1d
188 changed files with 4588 additions and 2017 deletions

View File

@@ -1,4 +1,4 @@
# SooSeF Kubernetes Deployment
# FieldWitness Kubernetes Deployment
## Architecture
@@ -29,8 +29,8 @@
```bash
# Build images
docker build -t soosef-server --target server -f deploy/docker/Dockerfile .
docker build -t soosef-relay --target relay -f deploy/docker/Dockerfile .
docker build -t fieldwitness-server --target server -f deploy/docker/Dockerfile .
docker build -t fieldwitness-relay --target relay -f deploy/docker/Dockerfile .
# Deploy to Kubernetes
kubectl apply -f deploy/kubernetes/namespace.yaml
@@ -41,7 +41,7 @@ kubectl apply -f deploy/kubernetes/relay-deployment.yaml
## Notes
- **Single writer**: Both deployments use `replicas: 1` with `Recreate` strategy.
SooSeF uses SQLite and append-only binary logs that require single-writer access.
FieldWitness uses SQLite and append-only binary logs that require single-writer access.
Do not scale horizontally.
- **PVCs**: Both deployments require persistent volumes. The server needs 10Gi,
the relay needs 5Gi. Adjust based on expected attestation volume.

View File

@@ -1,6 +1,6 @@
apiVersion: v1
kind: Namespace
metadata:
name: soosef
name: fieldwitness
labels:
app.kubernetes.io/name: soosef
app.kubernetes.io/name: fieldwitness

View File

@@ -1,13 +1,13 @@
# SooSeF Federation Relay — Lightweight attestation sync relay.
# FieldWitness Federation Relay — Lightweight attestation sync relay.
# Deploy on a VPS in a favorable jurisdiction for geographic redundancy.
# Stores only attestation records — zero knowledge of encryption keys.
apiVersion: apps/v1
kind: Deployment
metadata:
name: soosef-relay
namespace: soosef
name: fieldwitness-relay
namespace: fieldwitness
labels:
app.kubernetes.io/name: soosef
app.kubernetes.io/name: fieldwitness
app.kubernetes.io/component: relay
spec:
replicas: 1
@@ -15,12 +15,12 @@ spec:
type: Recreate
selector:
matchLabels:
app.kubernetes.io/name: soosef
app.kubernetes.io/name: fieldwitness
app.kubernetes.io/component: relay
template:
metadata:
labels:
app.kubernetes.io/name: soosef
app.kubernetes.io/name: fieldwitness
app.kubernetes.io/component: relay
spec:
securityContext:
@@ -29,12 +29,12 @@ spec:
fsGroup: 1000
containers:
- name: relay
image: soosef-relay:latest
image: fieldwitness-relay:latest
ports:
- containerPort: 8000
name: federation
env:
- name: SOOSEF_DATA_DIR
- name: FIELDWITNESS_DATA_DIR
value: /data
volumeMounts:
- name: data
@@ -61,7 +61,7 @@ apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: relay-data
namespace: soosef
namespace: fieldwitness
spec:
accessModes:
- ReadWriteOnce
@@ -72,11 +72,11 @@ spec:
apiVersion: v1
kind: Service
metadata:
name: soosef-relay
namespace: soosef
name: fieldwitness-relay
namespace: fieldwitness
spec:
selector:
app.kubernetes.io/name: soosef
app.kubernetes.io/name: fieldwitness
app.kubernetes.io/component: relay
ports:
- name: federation

View File

@@ -1,12 +1,12 @@
# SooSeF Org Server — Full deployment with persistent storage.
# FieldWitness Org Server — Full deployment with persistent storage.
# For newsroom or trusted infrastructure deployment.
apiVersion: apps/v1
kind: Deployment
metadata:
name: soosef-server
namespace: soosef
name: fieldwitness-server
namespace: fieldwitness
labels:
app.kubernetes.io/name: soosef
app.kubernetes.io/name: fieldwitness
app.kubernetes.io/component: server
spec:
replicas: 1 # Single writer — do not scale horizontally
@@ -14,12 +14,12 @@ spec:
type: Recreate # Not RollingUpdate — SQLite + append-only logs need single writer
selector:
matchLabels:
app.kubernetes.io/name: soosef
app.kubernetes.io/name: fieldwitness
app.kubernetes.io/component: server
template:
metadata:
labels:
app.kubernetes.io/name: soosef
app.kubernetes.io/name: fieldwitness
app.kubernetes.io/component: server
spec:
securityContext:
@@ -27,17 +27,17 @@ spec:
runAsGroup: 1000
fsGroup: 1000
containers:
- name: soosef
image: soosef-server:latest
- name: fieldwitness
image: fieldwitness-server:latest
ports:
- containerPort: 5000
name: web
- containerPort: 8000
name: federation
env:
- name: SOOSEF_DATA_DIR
- name: FIELDWITNESS_DATA_DIR
value: /data
- name: VERISOO_GOSSIP_INTERVAL
- name: FIELDWITNESS_GOSSIP_INTERVAL
value: "60"
volumeMounts:
- name: data
@@ -64,13 +64,13 @@ spec:
volumes:
- name: data
persistentVolumeClaim:
claimName: soosef-data
claimName: fieldwitness-data
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: soosef-data
namespace: soosef
name: fieldwitness-data
namespace: fieldwitness
spec:
accessModes:
- ReadWriteOnce
@@ -81,11 +81,11 @@ spec:
apiVersion: v1
kind: Service
metadata:
name: soosef-server
namespace: soosef
name: fieldwitness-server
namespace: fieldwitness
spec:
selector:
app.kubernetes.io/name: soosef
app.kubernetes.io/name: fieldwitness
app.kubernetes.io/component: server
ports:
- name: web