still-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 0fa0e84d537b
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 a8c677472ab5691741798a3d
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.json
{
  "auth": {
    "anonymous": true
  },
  "constants": {
    "AGENT_ADDRESS": "GRLh59L1SvRtLAHmAUcUwcpz8bcJnwNYivEJV6sH8YK5",
    "AGENT_ADDRESS_BOUND": true
  },
  "practice/$userId/days/$day": {
    "description": "One person's practice on one day (day is YYYY-MM-DD in their time zone): seconds practiced and sessions finished. Only that person can read or write it. Moods and everything else stay on the device.",
    "fields": {
      "seconds": "UInt",
      "sessions": "UInt"
    },
    "rules": {
      "read": "@user.id != null && @user.id == $userId",
      "create": "@user.id != null && @user.id == $userId && @StringUtils.length($day) == 10 && @newData.seconds <= 86400 && @newData.sessions <= 1000",
      "update": "@user.id != null && @user.id == $userId && @newData.seconds <= 86400 && @newData.sessions <= 1000",
      "delete": "@user.id != null && @user.id == $userId"
    }
  }
}

Change history

Link to OpenApps pages and add a contribution strip
0fa0e84d53 · 19 hours ago
Bind the agent address in the policy
6f3baa1c72 · 1 day ago
Add favicon.ico so browsers that ask for it stop getting a 404
1a004fe0e3 · 1 day ago
Bounded source sync
afe642fe50 · 2 days ago
Bounded source sync
2c581f55ea · 2 days ago
Bounded source sync
375934c28b · 2 days ago
Bounded source sync
74ff37d51a · 2 days ago