polls-free.openapps.xyz

Source

This app’s code and revision history are public. Download a copy or explore the files below.

Public
The app’s code and revision history are public.
Owned app · rev c06cea4889e9
Run it yourself
Take the whole tree and run it on your own machine. The download needs no account. Cloning needs a sign-in.
Download .zip
bounded clone 334801de44cb0fe911d5a88b
A copy you download is not bounded. The guarantees this app runs under - declared egress, proven invariants, writes that fail closed - live in the runtime serving this page, not in the files. What you get is auditable source you can read and run, with no runtime guarantees attached.
← All files
policy-tests/events.json
{
  "version": "1",
  "name": "creating an event, its join code, and owner powers",
  "actors": { "Host": "host_user", "Guest": "guest_user", "Eve": "eve_user", "Api": "api_principal" },
  "constants": { "BOUNDED_PUBLIC_PRINCIPAL_API": "api_principal" },
  "steps": [
    { "op": "setTime", "epoch": 1800000000 },
    { "op": "set", "path": "events/evaaaaaaaaaaaaaaaaaa/joins/nobody", "data": { "at": 1800000000 }, "shouldFail": true },

    { "op": "as", "who": "Host" },
    { "op": "setMany", "shouldFail": true, "writes": [
      { "path": "events/evaaaaaaaaaaaaaaaaaa", "data": { "title": "All hands", "code": "482913", "current": "", "qa": true, "moderate": false, "allowChange": true, "createdBy": "$Host", "createdAt": 1800000000 } },
      { "path": "events/evaaaaaaaaaaaaaaaaaa/joins/host_user", "data": { "at": 1800000000 } },
      { "path": "events/evaaaaaaaaaaaaaaaaaa/owners/host_user", "data": { "at": 1800000000 } },
      { "path": "eventkeys/evaaaaaaaaaaaaaaaaaa", "data": { "key": "kkkkkkkkkkkkkkkkkkkkkkkk" } }
    ] },
    { "op": "setMany", "shouldFail": true, "writes": [
      { "path": "events/evaaaaaaaaaaaaaaaaaa", "data": { "title": "All hands", "code": "482913", "current": "", "qa": true, "moderate": false, "allowChange": true, "createdBy": "$Host", "createdAt": 1800000000 } },
      { "path": "events/evaaaaaaaaaaaaaaaaaa/joins/host_user", "data": { "at": 1800000000 } },
      { "path": "events/evaaaaaaaaaaaaaaaaaa/owners/host_user", "data": { "at": 1800000000 } },
      { "path": "codes/482913", "data": { "event": "evaaaaaaaaaaaaaaaaaa", "at": 1800000000 } }
    ] },
    { "op": "setMany", "shouldFail": true, "writes": [
      { "path": "events/evaaaaaaaaaaaaaaaaaa", "data": { "title": "All hands", "code": "48291", "current": "", "qa": true, "moderate": false, "allowChange": true, "createdBy": "$Host", "createdAt": 1800000000 } },
      { "path": "events/evaaaaaaaaaaaaaaaaaa/joins/host_user", "data": { "at": 1800000000 } },
      { "path": "events/evaaaaaaaaaaaaaaaaaa/owners/host_user", "data": { "at": 1800000000 } },
      { "path": "eventkeys/evaaaaaaaaaaaaaaaaaa", "data": { "key": "kkkkkkkkkkkkkkkkkkkkkkkk" } },
      { "path": "codes/48291", "data": { "event": "evaaaaaaaaaaaaaaaaaa", "at": 1800000000 } }
    ] },
    { "op": "setMany", "writes": [
      { "path": "events/evaaaaaaaaaaaaaaaaaa", "data": { "title": "All hands", "code": "482913", "current": "", "qa": true, "moderate": false, "allowChange": true, "createdBy": "$Host", "createdAt": 1800000000 } },
      { "path": "events/evaaaaaaaaaaaaaaaaaa/joins/host_user", "data": { "at": 1800000000 } },
      { "path": "events/evaaaaaaaaaaaaaaaaaa/owners/host_user", "data": { "at": 1800000000 } },
      { "path": "eventkeys/evaaaaaaaaaaaaaaaaaa", "data": { "key": "kkkkkkkkkkkkkkkkkkkkkkkk" } },
      { "path": "codes/482913", "data": { "event": "evaaaaaaaaaaaaaaaaaa", "at": 1800000000 } },
      { "path": "events/evaaaaaaaaaaaaaaaaaa/polls/p1", "data": { "type": "choice", "question": "Lunch?", "options": "[\"Pizza\",\"Salad\"]", "multi": false, "max": 0, "pos": 0, "status": "draft", "showResults": false, "results": "", "createdAt": 1800000000 } }
    ] },
    { "op": "expect", "expr": "get(/codes/482913).event == 'evaaaaaaaaaaaaaaaaaa'" },
    { "op": "set", "path": "events/evaaaaaaaaaaaaaaaaaa", "data": { "title": "All hands, October", "current": "p1" } },
    { "op": "set", "path": "events/evaaaaaaaaaaaaaaaaaa", "data": { "code": "111111" }, "shouldFail": true },
    { "op": "set", "path": "events/evaaaaaaaaaaaaaaaaaa", "data": { "title": "" }, "shouldFail": true },

    { "op": "as", "who": "Eve" },
    { "op": "setMany", "shouldFail": true, "writes": [
      { "path": "events/evbbbbbbbbbbbbbbbbbb", "data": { "title": "Fake", "code": "482913", "current": "", "qa": true, "moderate": false, "allowChange": true, "createdBy": "$Eve", "createdAt": 1800000000 } },
      { "path": "events/evbbbbbbbbbbbbbbbbbb/owners/eve_user", "data": { "at": 1800000000 } },
      { "path": "eventkeys/evbbbbbbbbbbbbbbbbbb", "data": { "key": "eeeeeeeeeeeeeeeeeeeeeeee" } },
      { "path": "codes/482913", "data": { "event": "evbbbbbbbbbbbbbbbbbb", "at": 1800000000 } }
    ] },
    { "op": "set", "path": "codes/482913", "data": { "event": "evbbbbbbbbbbbbbbbbbb" }, "shouldFail": true },
    { "op": "delete", "path": "codes/482913", "shouldFail": true },
    { "op": "set", "path": "codes/555555", "data": { "event": "evaaaaaaaaaaaaaaaaaa", "at": 1800000000 }, "shouldFail": true },

    { "op": "set", "path": "events/evaaaaaaaaaaaaaaaaaa/joins/host_user", "data": { "at": 1800000000 }, "shouldFail": true },
    { "op": "set", "path": "events/evaaaaaaaaaaaaaaaaaa/joins/eve_user", "data": { "at": 1800000000 } },
    { "op": "set", "path": "events/evaaaaaaaaaaaaaaaaaa", "data": { "title": "Hacked" }, "shouldFail": true },
    { "op": "set", "path": "events/evaaaaaaaaaaaaaaaaaa/polls/p1", "data": { "status": "open" }, "shouldFail": true },
    { "op": "set", "path": "events/evaaaaaaaaaaaaaaaaaa/polls/p2", "data": { "type": "open", "question": "Spam", "options": "[]", "multi": false, "max": 0, "pos": 1, "status": "open", "showResults": false, "results": "", "createdAt": 1800000000 }, "shouldFail": true },
    { "op": "delete", "path": "events/evaaaaaaaaaaaaaaaaaa/polls/p1", "shouldFail": true },
    { "op": "set", "path": "events/evaaaaaaaaaaaaaaaaaa/owners/eve_user", "data": { "at": 1800000000 }, "shouldFail": true },
    { "op": "setMany", "shouldFail": true, "writes": [
      { "path": "eventclaims/evaaaaaaaaaaaaaaaaaa/c/eve_user", "data": { "key": "wrongwrongwrongwrongwron" } },
      { "path": "events/evaaaaaaaaaaaaaaaaaa/owners/eve_user", "data": { "at": 1800000000 } }
    ] },
    { "op": "set", "path": "eventkeys/evaaaaaaaaaaaaaaaaaa", "data": { "key": "eeeeeeeeeeeeeeeeeeeeeeee" }, "shouldFail": true },

    { "op": "as", "who": "Guest" },
    { "op": "set", "path": "events/evaaaaaaaaaaaaaaaaaa/joins/guest_user", "data": { "at": 1800000000 } },
    { "op": "setMany", "writes": [
      { "path": "eventclaims/evaaaaaaaaaaaaaaaaaa/c/guest_user", "data": { "key": "kkkkkkkkkkkkkkkkkkkkkkkk" } },
      { "path": "events/evaaaaaaaaaaaaaaaaaa/owners/guest_user", "data": { "at": 1800000000 } }
    ] },
    { "op": "set", "path": "events/evaaaaaaaaaaaaaaaaaa/polls/p1", "data": { "status": "open", "showResults": true } },
    { "op": "set", "path": "events/evaaaaaaaaaaaaaaaaaa/polls/p1", "data": { "results": "{\"n\":1,\"counts\":[1,0]}" } },
    { "op": "set", "path": "events/evaaaaaaaaaaaaaaaaaa/polls/p1", "data": { "showResults": false }, "shouldFail": true },
    { "op": "set", "path": "events/evaaaaaaaaaaaaaaaaaa/polls/p1", "data": { "showResults": false, "results": "" } },
    { "op": "set", "path": "events/evaaaaaaaaaaaaaaaaaa/polls/p1", "data": { "results": "{\"n\":2,\"counts\":[2,0]}" }, "shouldFail": true },
    { "op": "expect", "expr": "get(/events/evaaaaaaaaaaaaaaaaaa/polls/p1).results == ''" },
    { "op": "set", "path": "events/evaaaaaaaaaaaaaaaaaa/polls/p1", "data": { "type": "open" }, "shouldFail": true },
    { "op": "set", "path": "events/evaaaaaaaaaaaaaaaaaa/polls/p1", "data": { "status": "maybe" }, "shouldFail": true },
    { "op": "set", "path": "events/evaaaaaaaaaaaaaaaaaa/polls/p3", "data": { "type": "poll", "question": "Bad type", "options": "[]", "multi": false, "max": 0, "pos": 2, "status": "draft", "showResults": false, "results": "", "createdAt": 1800000000 }, "shouldFail": true },
    { "op": "set", "path": "events/evaaaaaaaaaaaaaaaaaa/polls/p3", "data": { "type": "rating", "question": "How was it?", "options": "[]", "multi": false, "max": 5, "pos": 2, "status": "draft", "showResults": false, "results": "", "createdAt": 1800000000 } },
    { "op": "delete", "path": "events/evaaaaaaaaaaaaaaaaaa/polls/p3" },

    { "op": "as", "who": "Api" },
    { "op": "set", "path": "events/evaaaaaaaaaaaaaaaaaa/joins/api_principal", "data": { "at": 1800000000 } },
    { "op": "setMany", "writes": [
      { "path": "eventclaims/evaaaaaaaaaaaaaaaaaa/c/api_principal", "data": { "key": "kkkkkkkkkkkkkkkkkkkkkkkk" } },
      { "path": "events/evaaaaaaaaaaaaaaaaaa/owners/api_principal", "data": { "at": 1800000000 } }
    ] },
    { "op": "expect", "expr": "get(/events/evaaaaaaaaaaaaaaaaaa/owners/api_principal) != null" }
  ]
}

Change history

Point OpenApps links to openapps.free
c06cea4889 · 17 hours ago
Bind agent address in policy constants
a7de116d52 · 19 hours ago
Use OpenApps service URLs and add contribution strip
e8ce0b0bf0 · 19 hours ago
Bounded source sync
dcdc4d56e6 · 1 day ago
Bounded source sync
7acdace1e1 · 1 day ago
Bounded source sync
2140a66ea0 · 1 day ago
Bounded source sync
0db2fe3ca0 · 1 day ago
Bounded source sync
996f633a3c · 1 day ago