- Real email/password login backed by SQLite (better-sqlite3) - HttpOnly cookie sessions with 8h sliding TTL - Admin role: invite users via Mailgun magic-link, manage roles/status - Per-user One2Edit username mapping for job filtering - Self-service forgot-password / reset-password via email - Admin console (admin.html) with user table, invite modal, row actions - New pages: change-password, forgot-password, reset-password, accept-invite - Gated /api proxy: requires valid session, anti-hijack sessionId check - Bootstrap initial admins from INITIAL_ADMINS env var on first boot - Remove Oliver login button, SSO buttons, and legacy api.js/login.js - deploy.sh: add build-essential (for native module), npm install, data dir Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
22 lines
373 B
JSON
22 lines
373 B
JSON
{
|
|
"name": "3m-portal",
|
|
"version": "1.0.0",
|
|
"description": "3M Portal with One2Edit API Integration",
|
|
"main": "server.js",
|
|
"scripts": {
|
|
"start": "node server.js"
|
|
},
|
|
"engines": {
|
|
"node": ">=18"
|
|
},
|
|
"keywords": [
|
|
"portal",
|
|
"3m",
|
|
"one2edit"
|
|
],
|
|
"author": "",
|
|
"license": "ISC",
|
|
"dependencies": {
|
|
"better-sqlite3": "^12.9.0"
|
|
}
|
|
}
|