summaryrefslogtreecommitdiff
path: root/examples/muck
diff options
context:
space:
mode:
Diffstat (limited to 'examples/muck')
-rw-r--r--examples/muck/muck.md36
-rw-r--r--examples/muck/muck.subplot12
-rw-r--r--examples/muck/muck.yaml18
3 files changed, 41 insertions, 25 deletions
diff --git a/examples/muck/muck.md b/examples/muck/muck.md
index b074424..0a28020 100644
--- a/examples/muck/muck.md
+++ b/examples/muck/muck.md
@@ -1,12 +1,3 @@
----
-title: Muck JSON storage server and API
-author: Lars Wirzenius
-date: work in progress
-bindings: [muck.yaml]
-impls:
- python: [muck.py]
-...
-
Introduction
=============================================================================
@@ -95,24 +86,19 @@ This chapter lists high level requirements for Muck.
Each requirement here is given a unique mnemonic id for easier
reference in discussions.
-**SimpleOps**
-
-: Muck must be simple to install and operate. Installation should be
- installing a .deb package, configuration by setting the public key
- for token signing of the authentication server.
-
-**Fast**
-
-: Muck must be fast. The speed requirement is that Muck must be able
- to handle at least 100 concurrent clients, creating 1000 objects
- each, and then retrieving each object, and then deleting each
- object, and all of this must happen in no more than ten minutes
- (600 seconds). Muck and the clients should run on different
- virtual machines.
+**SimpleOps** --- Muck must be simple to install and operate.
+ Installation should be installing a .deb package, configuration by
+ setting the public key for token signing of the authentication
+ server.
-**Secure**
+**Fast** --- Muck must be fast. The speed requirement is that Muck
+ must be able to handle at least 100 concurrent clients, creating
+ 1000 objects each, and then retrieving each object, and then
+ deleting each object, and all of this must happen in no more than
+ ten minutes (600 seconds). Muck and the clients should run on
+ different virtual machines.
-: Muck must allow access only by an authenticated client
+**Secure** --- Muck must allow access only by an authenticated client
representing a data subject, and must only allow that client to
access objects owned by the data subject, unless the client has
super privileges. The data subject specifies, via the access
diff --git a/examples/muck/muck.subplot b/examples/muck/muck.subplot
new file mode 100644
index 0000000..f6feb2a
--- /dev/null
+++ b/examples/muck/muck.subplot
@@ -0,0 +1,12 @@
+---
+title: Muck JSON storage server and API
+authors:
+ - Lars Wirzenius
+date: work in progress
+markdowns:
+ - muck.md
+bindings:
+ - muck.yaml
+impls:
+ python:
+ - muck.py
diff --git a/examples/muck/muck.yaml b/examples/muck/muck.yaml
index b22e088..967ab56 100644
--- a/examples/muck/muck.yaml
+++ b/examples/muck/muck.yaml
@@ -18,24 +18,34 @@
python:
function: fixme
regex: true
+ types:
+ json: text
- when: "I do PUT /res with Muck-Id: \\{(?P<id>\\S+)\\}, Muck-Revision: \\{(?P<rev>\\S+)\\}, and body (?P<json>\\{.*\\})"
impl:
python:
function: fixme
regex: true
+ types:
+ id: word
+ rev: word
+ json: text
- when: "I do GET /res with Muck-Id: \\{(?P<id>\\S+)\\}"
impl:
python:
function: fixme
regex: true
+ types:
+ id: word
- when: "I do DELETE /res with Muck-Id: \\{(?P<id>\\S+)\\}"
impl:
python:
function: fixme
regex: true
+ types:
+ id: word
- when: "I restart Muck"
impl:
@@ -58,15 +68,23 @@
python:
function: fixme
regex: true
+ types:
+ header: word
+ name: word
- then: "body matches (?P<json>\\{.*\\})"
impl:
python:
function: fixme
regex: true
+ types:
+ json: text
- then: "revisions \\{(?P<rev1>\\S+)\\} and \\{(?P<rev2>\\S+)\\} are different"
impl:
python:
function: fixme
regex: true
+ types:
+ rev1: word
+ rev2: word