diff options
Diffstat (limited to 'examples/muck')
-rw-r--r-- | examples/muck/muck.md | 36 | ||||
-rw-r--r-- | examples/muck/muck.subplot | 12 | ||||
-rw-r--r-- | examples/muck/muck.yaml | 18 |
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 |