summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--requirements/architecture/ard-000.md2
-rw-r--r--requirements/architecture/ard-001.md2
-rw-r--r--requirements/architecture/ard-002.md2
-rw-r--r--requirements/architecture/ard-003.md2
-rw-r--r--requirements/architecture/ard-004.md2
-rw-r--r--requirements/architecture/ard-005.md2
-rw-r--r--requirements/architecture/ard-006.md2
-rw-r--r--requirements/architecture/ard-007.md2
-rw-r--r--requirements/architecture/ard-008.md2
-rw-r--r--requirements/architecture/ard-009.md2
-rw-r--r--requirements/architecture/ard-010.md2
-rw-r--r--requirements/architecture/ard-011.md2
-rw-r--r--requirements/tasks/task-010.md7
-rw-r--r--requirements/tasks/task-011.md6
-rw-r--r--requirements/tasks/task-012.md8
-rw-r--r--requirements/tasks/task-013.md8
-rw-r--r--requirements/tasks/task-014.md8
-rw-r--r--requirements/tasks/task-015.md8
-rw-r--r--requirements/tasks/task-016.md5
-rw-r--r--requirements/tasks/task-017.md5
-rw-r--r--requirements/tasks/task-018.md5
-rw-r--r--requirements/tasks/task-019.md5
-rw-r--r--requirements/tasks/task-020.md8
-rw-r--r--requirements/tasks/task-021.md8
-rw-r--r--requirements/tasks/task-022.md5
-rw-r--r--requirements/tasks/task-023.md6
-rw-r--r--requirements/tasks/task-024.md7
-rw-r--r--requirements/tasks/task-025.md8
-rw-r--r--requirements/tasks/task-026.md5
-rw-r--r--requirements/tasks/task-027.md5
30 files changed, 141 insertions, 0 deletions
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