Open Source event scheduling software for conventions
Find a file
Hornwitser 3f492edea2 Separate rotation and expiry of sessions
If a session is rotate in the middle of a server side rendering then
some random portions of requests made on the server side will fail with
a session taken error as the server is not going to update the cookies
of the client during these requests.

To avoid this pitfall extend the expiry time of sessions to be 10
seconds after the session has been rotated.  This is accomplished by
introducing a new timestamp on sessions called the rotateAt at time
alongside the expiresAt time.  Sessions used after rotateAt that haven't
been rotated get rotated into a new session and the existing session
gets the expiresAt time set to 10 seconds in the future.  Sessions that
are past the expiredAt time have no access.

This makes the logic around session expiry simpler, and also makes it
possible to audit when a session got rotated, and to mark sessions as
expired without a chance to rotate to a new session without having to
resort to a finished flag.
2025-07-09 14:54:54 +02:00
.forgejo/workflows Move container image to public/owltide 2025-07-02 00:25:43 +02:00
.vscode Group .license files in VsCode explorer 2025-06-30 19:29:36 +02:00
assets Add short-eared owl as the Owltide mascot and icon 2025-07-01 19:41:59 +02:00
components License under AGPL version 3 or later 2025-06-30 18:58:24 +02:00
composables Close event streams for expired sessions 2025-07-08 16:13:46 +02:00
docs Separate rotation and expiry of sessions 2025-07-09 14:54:54 +02:00
LICENSES Add short-eared owl as the Owltide mascot and icon 2025-07-01 19:41:59 +02:00
middleware License under AGPL version 3 or later 2025-06-30 18:58:24 +02:00
pages Name the application Owltide 2025-07-01 18:41:24 +02:00
plugins License under AGPL version 3 or later 2025-06-30 18:58:24 +02:00
public Add short-eared owl as the Owltide mascot and icon 2025-07-01 19:41:59 +02:00
server Separate rotation and expiry of sessions 2025-07-09 14:54:54 +02:00
shared Close event streams for expired sessions 2025-07-08 16:13:46 +02:00
stores Close event streams for expired sessions 2025-07-08 16:13:46 +02:00
utils License under AGPL version 3 or later 2025-06-30 18:58:24 +02:00
.dockerignore License under AGPL version 3 or later 2025-06-30 18:58:24 +02:00
.editorconfig Fix syntax error in .editorconfig 2025-07-07 22:51:15 +02:00
.gitattributes License under AGPL version 3 or later 2025-06-30 18:58:24 +02:00
.gitignore License under AGPL version 3 or later 2025-06-30 18:58:24 +02:00
app.vue License under AGPL version 3 or later 2025-06-30 18:58:24 +02:00
Dockerfile License under AGPL version 3 or later 2025-06-30 18:58:24 +02:00
error.vue Add error page for when a session has been taken 2025-07-08 16:13:46 +02:00
generate-keys.mjs License under AGPL version 3 or later 2025-06-30 18:58:24 +02:00
index.d.ts License under AGPL version 3 or later 2025-06-30 18:58:24 +02:00
nuxt.config.ts Separate rotation and expiry of sessions 2025-07-09 14:54:54 +02:00
package.json Update dependencies 2025-07-07 23:40:27 +02:00
package.json.license License under AGPL version 3 or later 2025-06-30 18:58:24 +02:00
pnpm-lock.yaml Update dependencies 2025-07-07 23:40:27 +02:00
pnpm-lock.yaml.license License under AGPL version 3 or later 2025-06-30 18:58:24 +02:00
README.md Move the mascot above the title in README.md 2025-07-01 19:51:28 +02:00
tsconfig.json License under AGPL version 3 or later 2025-06-30 18:58:24 +02:00
vitest.config.ts License under AGPL version 3 or later 2025-06-30 18:58:24 +02:00

The face of a white short-eared owl staring at you and serving as the mascot for owltide.

Owltide

Owltide is a free open source event scheduling software for keeping the attendees at events informed about all the things going on. It's currently in early stages of development and not generallly useful.

Development setup

Use pnpm to install dependencies:

pnpm install

Run the development server on http://localhost:3000 with:

pnpm dev

Build and preview the production build with (rarely needed):

pnpm build
pnpm preview