42 lines
1.1 KiB
Markdown
42 lines
1.1 KiB
Markdown
# ZKAC File-Share Demo
|
|
|
|
This folder contains only the self-contained Textual file-share demo.
|
|
|
|
## Files
|
|
|
|
- `demo/file_share_server.py`: headless opaque server (registry mgmt + file-share channel).
|
|
- `demo/file_share_client.py`: upload/download + role-mask utilities.
|
|
- `demo/file_share_credentials.py`: P2P credential grant helper.
|
|
- `demo/file_share_tui.py`: Textual UI.
|
|
- `demo/zkac_cli_adapter.py`: subprocess bridge to `zkac-node`.
|
|
- `demo/file_share_smoke.py`: end-to-end smoke test.
|
|
|
|
## Run
|
|
|
|
```bash
|
|
uv sync --extra demo
|
|
uv run python demo/file_share_server.py --port 9879
|
|
uv run python demo/file_share_tui.py
|
|
```
|
|
|
|
The demo uses `ZKAC_HOME=~/.ZKAC-FS` by default, so it stays isolated from other
|
|
local ZKAC usage.
|
|
|
|
## UI Flow
|
|
|
|
- `Login`
|
|
- `Connect` (reuses pinned server key when available)
|
|
- `Select Bucket` (list owned + permitted buckets, or create new)
|
|
- `Permissions` (edit per-role bitmask)
|
|
- `Share Permissions`
|
|
- `Listen` (optional port; blank means random)
|
|
- `Inbox`
|
|
|
|
`c` copies the latest generated contact bundle to clipboard.
|
|
|
|
## Verify
|
|
|
|
```bash
|
|
uv run python demo/file_share_smoke.py
|
|
```
|