links-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 9e2af813edac
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 3151231032497ed786b88a0a
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/links.json
{
  "version": "1",
  "name": "only owners change a link; only the api counts clicks, one at a time",
  "actors": {
    "Ann": "ann_user",
    "Bob": "bob_user",
    "Api": "api_principal"
  },
  "constants": {
    "BOUNDED_PUBLIC_PRINCIPAL_API": "api_principal"
  },
  "steps": [
    { "op": "setTime", "epoch": 1800000000 },
    { "op": "as", "who": "Ann" },
    { "op": "setMany", "writes": [
      { "path": "links/menu", "data": { "url": "https://example.com/menu", "createdBy": "ann_user", "createdAt": 1800000000, "clicks": 0, "disabled": false } },
      { "path": "links/menu/owners/ann_user", "data": { "at": 1800000000 } },
      { "path": "linkkeys/menu", "data": { "key": "aaaaaaaaaaaaaaaaaaaaaaaa" } }
    ] },
    { "op": "set", "path": "links/menu", "data": { "url": "https://example.com/menu-2" } },
    { "op": "set", "path": "links/menu", "data": { "clicks": 50 }, "shouldFail": true },
    { "op": "set", "path": "links/menu/days/20270115", "data": { "d": 20270115, "clicks": 1 }, "shouldFail": true },

    { "op": "as", "who": "Bob" },
    { "op": "set", "path": "links/menu", "data": { "url": "https://example.com/not-yours" }, "shouldFail": true },
    { "op": "setMany", "writes": [
      { "path": "linkclaims/menu/c/bob_user", "data": { "key": "wrong-key-wrong-key-wrong" } },
      { "path": "links/menu/owners/bob_user", "data": { "at": 1800000000 } }
    ], "shouldFail": true },

    { "op": "as", "who": "Api" },
    { "op": "set", "path": "links/menu", "data": { "clicks": 7 }, "shouldFail": true },
    { "op": "setMany", "writes": [
      { "path": "links/menu", "data": { "clicks": { "operation": "increment", "value": 1 } } },
      { "path": "links/menu/days/20270115", "data": { "d": 20270115, "clicks": { "operation": "increment", "value": 1 } } }
    ] },
    { "op": "setMany", "writes": [
      { "path": "links/menu", "data": { "clicks": { "operation": "increment", "value": 1 } } },
      { "path": "links/menu/days/20270115", "data": { "d": 20270115, "clicks": { "operation": "increment", "value": 1 } } }
    ] },
    { "op": "expect", "expr": "get(/links/menu).clicks == 2" },
    { "op": "set", "path": "links/menu", "data": { "clicks": 3, "url": "https://example.com/hijack" }, "shouldFail": true },
    { "op": "set", "path": "links/menu/days/20270115", "data": { "clicks": 9 }, "shouldFail": true },
    { "op": "set", "path": "links/menu/days/20270115", "data": { "d": 20270116, "clicks": 3 }, "shouldFail": true },
    { "op": "expect", "expr": "get(/links/menu/days/20270115).clicks == 2" },
    { "op": "set", "path": "links/menu/days/20270116", "data": { "d": 20270115, "clicks": 1 }, "shouldFail": true },
    { "op": "set", "path": "links/menu/days/20270116", "data": { "d": 20270116, "clicks": 2 }, "shouldFail": true },
    { "op": "set", "path": "links/menu/days/2027011", "data": { "d": 2027011, "clicks": 1 }, "shouldFail": true },
    { "op": "set", "path": "links/nope/days/20270115", "data": { "d": 20270115, "clicks": 1 }, "shouldFail": true },
    { "op": "delete", "path": "links/menu/days/20270115", "shouldFail": true },

    { "op": "as", "who": "Bob" },
    { "op": "set", "path": "links/menu/days/20270117", "data": { "d": 20270117, "clicks": 1 }, "shouldFail": true },
    { "op": "setMany", "writes": [
      { "path": "linkclaims/menu/c/bob_user", "data": { "key": "aaaaaaaaaaaaaaaaaaaaaaaa" } },
      { "path": "links/menu/owners/bob_user", "data": { "at": 1800000000 } }
    ] },
    { "op": "set", "path": "links/menu", "data": { "disabled": true } },
    { "op": "expect", "expr": "get(/links/menu).disabled == true" },
    { "op": "delete", "path": "links/menu", "shouldFail": true }
  ]
}

Change history

Quality pass: clicks per day, CSV export, links on other devices
9e2af813ed · 5 hours ago
Bounded source sync
29eee7dafa · 1 day ago
Bounded source sync
c5e634046a · 1 day ago
Bounded source sync
12abf93e7e · 1 day ago
Bounded source sync
d0d6a654b1 · 1 day ago
Bounded source sync
e03049f905 · 1 day ago
Bounded source sync
eb5c793bfa · 1 day ago
Bounded source sync
5dd8ec26e1 · 1 day ago