From 429f686fa0c66a8fc00f5a2d4947bca42b50b5a6 Mon Sep 17 00:00:00 2001 From: Joe Carstairs Date: Fri, 18 Jul 2025 20:35:59 +0100 Subject: add task-010, task-011, task-012, task-013, task-014, task-015, task-016, task-017, task-018, task-019, task-020, task-021, task-022, task-023, task-024, task-025, task-026, task-027 --- requirements/architecture/ard-000.md | 2 ++ requirements/architecture/ard-001.md | 2 ++ requirements/architecture/ard-002.md | 2 ++ requirements/architecture/ard-003.md | 2 ++ requirements/architecture/ard-004.md | 2 ++ requirements/architecture/ard-005.md | 2 ++ requirements/architecture/ard-006.md | 2 ++ requirements/architecture/ard-007.md | 2 ++ requirements/architecture/ard-008.md | 2 ++ requirements/architecture/ard-009.md | 2 ++ requirements/architecture/ard-010.md | 2 ++ requirements/architecture/ard-011.md | 2 ++ requirements/tasks/task-010.md | 7 +++++++ requirements/tasks/task-011.md | 6 ++++++ requirements/tasks/task-012.md | 8 ++++++++ requirements/tasks/task-013.md | 8 ++++++++ requirements/tasks/task-014.md | 8 ++++++++ requirements/tasks/task-015.md | 8 ++++++++ requirements/tasks/task-016.md | 5 +++++ requirements/tasks/task-017.md | 5 +++++ requirements/tasks/task-018.md | 5 +++++ requirements/tasks/task-019.md | 5 +++++ requirements/tasks/task-020.md | 8 ++++++++ requirements/tasks/task-021.md | 8 ++++++++ requirements/tasks/task-022.md | 5 +++++ requirements/tasks/task-023.md | 6 ++++++ requirements/tasks/task-024.md | 7 +++++++ requirements/tasks/task-025.md | 8 ++++++++ requirements/tasks/task-026.md | 5 +++++ requirements/tasks/task-027.md | 5 +++++ 30 files changed, 141 insertions(+) create mode 100644 requirements/tasks/task-010.md create mode 100644 requirements/tasks/task-011.md create mode 100644 requirements/tasks/task-012.md create mode 100644 requirements/tasks/task-013.md create mode 100644 requirements/tasks/task-014.md create mode 100644 requirements/tasks/task-015.md create mode 100644 requirements/tasks/task-016.md create mode 100644 requirements/tasks/task-017.md create mode 100644 requirements/tasks/task-018.md create mode 100644 requirements/tasks/task-019.md create mode 100644 requirements/tasks/task-020.md create mode 100644 requirements/tasks/task-021.md create mode 100644 requirements/tasks/task-022.md create mode 100644 requirements/tasks/task-023.md create mode 100644 requirements/tasks/task-024.md create mode 100644 requirements/tasks/task-025.md create mode 100644 requirements/tasks/task-026.md create mode 100644 requirements/tasks/task-027.md diff --git a/requirements/architecture/ard-000.md b/requirements/architecture/ard-000.md index 160c261..64f5d13 100644 --- a/requirements/architecture/ard-000.md +++ b/requirements/architecture/ard-000.md @@ -1,5 +1,7 @@ # ard-000: desktop GUI implemented in iced.rs +Satisfied by: task-010, task-011 + ## Problem Various requirements ask for the user to interact with Schist using a desktop diff --git a/requirements/architecture/ard-001.md b/requirements/architecture/ard-001.md index 0137251..1a63eac 100644 --- a/requirements/architecture/ard-001.md +++ b/requirements/architecture/ard-001.md @@ -1,5 +1,7 @@ # ard-001: SQLite for desktop storage +Satisfied by: task-012 + ## Problem Schist needs a desktop GUI, and this desktop GUI needs a storage medium, in diff --git a/requirements/architecture/ard-002.md b/requirements/architecture/ard-002.md index 0c5fab8..6ff80d8 100644 --- a/requirements/architecture/ard-002.md +++ b/requirements/architecture/ard-002.md @@ -2,3 +2,5 @@ The desktop GUI must persist config and caches somehow. Nobody has considered any alternatives, except that it stores it in files. So that's what we'll do. + +Satisfied by: task-013 diff --git a/requirements/architecture/ard-003.md b/requirements/architecture/ard-003.md index cb5486a..ecb9192 100644 --- a/requirements/architecture/ard-003.md +++ b/requirements/architecture/ard-003.md @@ -11,3 +11,5 @@ I'd like a local-first architecture, because: There is really only one mature local-first architectural reference, and that involves a CRDT sync server as an essential component. So that's what we'll do. + +Satisfied by: task-014 diff --git a/requirements/architecture/ard-004.md b/requirements/architecture/ard-004.md index 643dc7c..d4c979a 100644 --- a/requirements/architecture/ard-004.md +++ b/requirements/architecture/ard-004.md @@ -1,5 +1,7 @@ # ard-004: REST API for communication between UIs and the CRDT sync server +Satisfied by: task-015, task-016, task-017 + ## Problem There needs to be an inter-process interface available at a distance between the diff --git a/requirements/architecture/ard-005.md b/requirements/architecture/ard-005.md index c0b3812..4755236 100644 --- a/requirements/architecture/ard-005.md +++ b/requirements/architecture/ard-005.md @@ -1,5 +1,7 @@ # ard-005: IndexedDB +Satisfied by: task-020 + ## Problem The Web GUI must store domain entities somewhere. diff --git a/requirements/architecture/ard-006.md b/requirements/architecture/ard-006.md index 78604cd..dcef27c 100644 --- a/requirements/architecture/ard-006.md +++ b/requirements/architecture/ard-006.md @@ -1,5 +1,7 @@ # ard-006: SQLite storage for the CRDT sync server +Satisfied by: task-021 + ## Problem The CRDT sync server must persist domain entities. diff --git a/requirements/architecture/ard-007.md b/requirements/architecture/ard-007.md index 8eb9546..a57deda 100644 --- a/requirements/architecture/ard-007.md +++ b/requirements/architecture/ard-007.md @@ -1,5 +1,7 @@ # ard-007: backup bucket and service on the CRDT sync server +Satisfied by: task-022, task-023 + ## Problem Schist's persisted data must be recoverable (req-067). diff --git a/requirements/architecture/ard-008.md b/requirements/architecture/ard-008.md index f728642..937c55e 100644 --- a/requirements/architecture/ard-008.md +++ b/requirements/architecture/ard-008.md @@ -1,5 +1,7 @@ # ard-008: monolith architecture +Satisfied by: task-024, task-025 + ## Problem The architecture already contains the following software components running diff --git a/requirements/architecture/ard-009.md b/requirements/architecture/ard-009.md index ff7e554..3805ee1 100644 --- a/requirements/architecture/ard-009.md +++ b/requirements/architecture/ard-009.md @@ -2,3 +2,5 @@ Schist should distribute its Web GUI over the Web. No alternatives were considered. What are you going to do, email a HTML file? + +Satisfied by: task-026 diff --git a/requirements/architecture/ard-010.md b/requirements/architecture/ard-010.md index 3763847..ed22431 100644 --- a/requirements/architecture/ard-010.md +++ b/requirements/architecture/ard-010.md @@ -2,3 +2,5 @@ Schist's Web GUI will store config and caches in Local Storage. It's the only standard solution and is perfectly acceptable. No alternatives were considered. + +Satisfied by: task-027 diff --git a/requirements/architecture/ard-011.md b/requirements/architecture/ard-011.md index 6fb47d3..13a8c05 100644 --- a/requirements/architecture/ard-011.md +++ b/requirements/architecture/ard-011.md @@ -1,5 +1,7 @@ # ard-011: Unix sockets for IPC on the server machine +Satisfied by: task-018, task-019 + ## Problem The architecture already grants that the CRDT sync server, REST API and SMS API diff --git a/requirements/tasks/task-010.md b/requirements/tasks/task-010.md new file mode 100644 index 0000000..83bfc48 --- /dev/null +++ b/requirements/tasks/task-010.md @@ -0,0 +1,7 @@ +# task-010 + +Schist must have a desktop GUI implemented in iced.rs. + +Source: ard-000 + +For the purposes of this task, the GUI need only be a "Hello, world!" diff --git a/requirements/tasks/task-011.md b/requirements/tasks/task-011.md new file mode 100644 index 0000000..83cdaff --- /dev/null +++ b/requirements/tasks/task-011.md @@ -0,0 +1,6 @@ +# task-011 + +There must be documented processes for installing and updating the desktop GUI +on the user's machine. + +Source: ard-000 diff --git a/requirements/tasks/task-012.md b/requirements/tasks/task-012.md new file mode 100644 index 0000000..95b848e --- /dev/null +++ b/requirements/tasks/task-012.md @@ -0,0 +1,8 @@ +# task-012 + +The desktop GUI must persist domain entities to an SQLite file. + +Source: ard-001 + +For the purposes of this task, any read/write operation is enough to prove that +the pattern is ready to be used in other tasks. diff --git a/requirements/tasks/task-013.md b/requirements/tasks/task-013.md new file mode 100644 index 0000000..339fd17 --- /dev/null +++ b/requirements/tasks/task-013.md @@ -0,0 +1,8 @@ +# task-014 + +The desktop GUI must persist config and caches to file. + +Source: ard-002 + +For the purposes of this task, any read/write operation is enough to prove that +the pattern is ready to be used in other tasks. diff --git a/requirements/tasks/task-014.md b/requirements/tasks/task-014.md new file mode 100644 index 0000000..5606154 --- /dev/null +++ b/requirements/tasks/task-014.md @@ -0,0 +1,8 @@ +# task-014 + +There must be a CRDT sync server. + +Source: ard-003 + +For the purposes of this ticket, the CRDT sync server need only be a "Hello, +world". diff --git a/requirements/tasks/task-015.md b/requirements/tasks/task-015.md new file mode 100644 index 0000000..598d4af --- /dev/null +++ b/requirements/tasks/task-015.md @@ -0,0 +1,8 @@ +# task-015 + +There must be a REST API. + +Source: ard-004 + +For the purposes of this ticket, the REST API need only have a health check +endpoint which responds OK to any request. diff --git a/requirements/tasks/task-016.md b/requirements/tasks/task-016.md new file mode 100644 index 0000000..6c7d62d --- /dev/null +++ b/requirements/tasks/task-016.md @@ -0,0 +1,5 @@ +# task-016 + +The REST API must communicate with the desktop GUI via HTTPS. + +Source: ard-004 diff --git a/requirements/tasks/task-017.md b/requirements/tasks/task-017.md new file mode 100644 index 0000000..5079d91 --- /dev/null +++ b/requirements/tasks/task-017.md @@ -0,0 +1,5 @@ +# task-017 + +The REST API must communicate with the Web GUI via HTTPS. + +Source: ard-004 diff --git a/requirements/tasks/task-018.md b/requirements/tasks/task-018.md new file mode 100644 index 0000000..e9f8974 --- /dev/null +++ b/requirements/tasks/task-018.md @@ -0,0 +1,5 @@ +# task-018 + +The REST API must communicate with the CRDT sync server via Unix sockets. + +Source: ard-011 diff --git a/requirements/tasks/task-019.md b/requirements/tasks/task-019.md new file mode 100644 index 0000000..3bf08b6 --- /dev/null +++ b/requirements/tasks/task-019.md @@ -0,0 +1,5 @@ +# task-018 + +The SMS API must communicate with the CRDT sync server via Unix sockets. + +Source: ard-011 diff --git a/requirements/tasks/task-020.md b/requirements/tasks/task-020.md new file mode 100644 index 0000000..32c9b3b --- /dev/null +++ b/requirements/tasks/task-020.md @@ -0,0 +1,8 @@ +# task-020 + +The Web GUI must persist domain entities to IndexedDB. + +Source: ard-005 + +For the purposes of this task, any read/write operation is enough to prove that +the pattern is ready to be used in other tasks. diff --git a/requirements/tasks/task-021.md b/requirements/tasks/task-021.md new file mode 100644 index 0000000..81f8063 --- /dev/null +++ b/requirements/tasks/task-021.md @@ -0,0 +1,8 @@ +# task-021 + +The CRDT sync server must persist domain entities to an SQLite file. + +Source: ard-006 + +For the purposes of this task, any read/write operation is enough to prove that +the pattern is ready to be used in other tasks. diff --git a/requirements/tasks/task-022.md b/requirements/tasks/task-022.md new file mode 100644 index 0000000..e5719dd --- /dev/null +++ b/requirements/tasks/task-022.md @@ -0,0 +1,5 @@ +# task-022 + +Provision a backups bucket. + +Source: ard-007 diff --git a/requirements/tasks/task-023.md b/requirements/tasks/task-023.md new file mode 100644 index 0000000..aaa13e1 --- /dev/null +++ b/requirements/tasks/task-023.md @@ -0,0 +1,6 @@ +# task-023 + +There must be a backups service running on the same machine as the CRDT sync +server. It must make regular backups to the backups bucket. + +Source: ard-007 diff --git a/requirements/tasks/task-024.md b/requirements/tasks/task-024.md new file mode 100644 index 0000000..7976265 --- /dev/null +++ b/requirements/tasks/task-024.md @@ -0,0 +1,7 @@ +# task-024 + +Provision a remote computer to run the remote services on. + +Source: ard-008 + +Blocked by: task-025 diff --git a/requirements/tasks/task-025.md b/requirements/tasks/task-025.md new file mode 100644 index 0000000..a0601e4 --- /dev/null +++ b/requirements/tasks/task-025.md @@ -0,0 +1,8 @@ +# task-025 + +There must be documented processes for installing, updating and operating the +software on the server machine. + +Source: ard-008 + +Blocks: task-024 diff --git a/requirements/tasks/task-026.md b/requirements/tasks/task-026.md new file mode 100644 index 0000000..c927bef --- /dev/null +++ b/requirements/tasks/task-026.md @@ -0,0 +1,5 @@ +# task-026 + +Schist should have a Web GUI. + +Source: ard-009 diff --git a/requirements/tasks/task-027.md b/requirements/tasks/task-027.md new file mode 100644 index 0000000..887eefd --- /dev/null +++ b/requirements/tasks/task-027.md @@ -0,0 +1,5 @@ +# task-027 + +Schist's Web GUI must store config and caches in Local Storage. + +Source: ard-010 -- cgit v1.2.3