From 61b67fb3a8d91af181e6d3be914fa7f70913d78b Mon Sep 17 00:00:00 2001 From: Robert Gingras Date: Tue, 20 Jan 2026 14:02:27 -0500 Subject: [PATCH 01/13] Add push notification-based 2FA support - Add Setting model for key-value configuration storage - Create migration and seeder for push notification settings - Add admin-only /settings route for configuring push notifications - Integrate push notification 2FA into login flow - Check if push notifications are enabled - Send notification to external service - Wait for user approval (case-insensitive) - Handle no-device-found errors with registration link - Update ldap.conf generation to include AUTH_BACKENDS and NOTIFICATION_URL - Add Settings link to admin sidebar navigation - Update database schema documentation --- .../20260120165508-create-settings.js | 31 ++++++++ create-a-container/models/setting.js | 75 +++++++++++++++++++ create-a-container/routers/login.js | 52 ++++++++++++- create-a-container/routers/settings.js | 36 +++++++++ create-a-container/routers/sites.js | 15 +++- ...260120165612-push-notification-settings.js | 27 +++++++ create-a-container/server.js | 2 + create-a-container/views/layouts/header.ejs | 5 ++ create-a-container/views/login.ejs | 2 +- create-a-container/views/settings/index.ejs | 67 +++++++++++++++++ .../docs/developers/database-schema.md | 65 ++++++++++++++++ 11 files changed, 374 insertions(+), 3 deletions(-) create mode 100644 create-a-container/migrations/20260120165508-create-settings.js create mode 100644 create-a-container/models/setting.js create mode 100644 create-a-container/routers/settings.js create mode 100644 create-a-container/seeders/20260120165612-push-notification-settings.js create mode 100644 create-a-container/views/settings/index.ejs diff --git a/create-a-container/migrations/20260120165508-create-settings.js b/create-a-container/migrations/20260120165508-create-settings.js new file mode 100644 index 00000000..6fc2d8e5 --- /dev/null +++ b/create-a-container/migrations/20260120165508-create-settings.js @@ -0,0 +1,31 @@ +'use strict'; + +/** @type {import('sequelize-cli').Migration} */ +module.exports = { + async up(queryInterface, Sequelize) { + await queryInterface.createTable('Settings', { + key: { + type: Sequelize.STRING, + primaryKey: true, + allowNull: false, + unique: true + }, + value: { + type: Sequelize.STRING, + allowNull: false + }, + createdAt: { + allowNull: false, + type: Sequelize.DATE + }, + updatedAt: { + allowNull: false, + type: Sequelize.DATE + } + }); + }, + + async down(queryInterface, Sequelize) { + await queryInterface.dropTable('Settings'); + } +}; diff --git a/create-a-container/models/setting.js b/create-a-container/models/setting.js new file mode 100644 index 00000000..96fa986b --- /dev/null +++ b/create-a-container/models/setting.js @@ -0,0 +1,75 @@ +'use strict'; +const { + Model +} = require('sequelize'); + +module.exports = (sequelize, DataTypes) => { + class Setting extends Model { + /** + * Helper method for defining associations. + * This method is not a part of Sequelize lifecycle. + * The `models/index` file will call this method automatically. + */ + static associate(models) { + // No associations for now + } + + /** + * Gets a setting value by key + * @param {string} key - The setting key + * @returns {Promise} - The setting value or null if not found + */ + static async get(key) { + const setting = await Setting.findByPk(key); + return setting ? setting.value : null; + } + + /** + * Sets a setting value + * @param {string} key - The setting key + * @param {string} value - The setting value + * @returns {Promise} - The created or updated setting + */ + static async set(key, value) { + const [setting] = await Setting.upsert({ key, value }); + return setting; + } + + /** + * Gets multiple settings by keys + * @param {string[]} keys - Array of setting keys + * @returns {Promise} - Object with keys and their values + */ + static async getMultiple(keys) { + const settings = await Setting.findAll({ + where: { + key: keys + } + }); + return settings.reduce((acc, setting) => { + acc[setting.key] = setting.value; + return acc; + }, {}); + } + } + + Setting.init({ + key: { + type: DataTypes.STRING, + primaryKey: true, + allowNull: false, + unique: true + }, + value: { + type: DataTypes.STRING, + allowNull: false + } + }, { + sequelize, + modelName: 'Setting', + tableName: 'Settings', + timestamps: true + }); + + return Setting; +}; diff --git a/create-a-container/routers/login.js b/create-a-container/routers/login.js index e3ba1fec..955964e9 100644 --- a/create-a-container/routers/login.js +++ b/create-a-container/routers/login.js @@ -1,6 +1,6 @@ const express = require('express'); const router = express.Router(); -const { User } = require('../models'); +const { User, Setting } = require('../models'); const { isSafeRelativeUrl } = require('../utils'); // GET / - Display login form @@ -35,6 +35,56 @@ router.post('/', async (req, res) => { return res.redirect('/login'); } + // Check if push notification 2FA is enabled + const settings = await Setting.getMultiple(['push_notification_url', 'push_notification_enabled']); + const pushNotificationUrl = settings.push_notification_url || ''; + const pushNotificationEnabled = settings.push_notification_enabled === 'true'; + + if (pushNotificationEnabled && pushNotificationUrl.trim() !== '') { + const notificationPayload = { + username: user.uid, + title: 'Authentication Request', + body: 'Please review and respond to your pending authentication request.', + actions: [ + { icon: 'approve', title: 'Approve', callback: 'approve' }, + { icon: 'reject', title: 'Reject', callback: 'reject' } + ] + }; + + try { + const response = await fetch(`${pushNotificationUrl}/send-notification`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(notificationPayload) + }); + + const result = await response.json(); + + // Check for no device found error + if (result.success === false && result.error?.includes('No device found with this Username')) { + const registrationUrl = pushNotificationUrl; + req.flash('error', `No device found with this username. Please register your device at: ${registrationUrl}`); + return res.redirect('/login'); + } + + if (!response.ok) { + req.flash('error', 'Failed to send push notification. Please contact support.'); + return res.redirect('/login'); + } + + if (result.action?.toUpperCase() !== 'APPROVE') { + req.flash('error', 'Authentication request was denied'); + return res.redirect('/login'); + } + } catch (error) { + console.error('Push notification error:', error); + req.flash('error', 'Failed to send push notification. Please contact support.'); + return res.redirect('/login'); + } + } + // Set session variables req.session.user = user.uid; req.session.isAdmin = user.groups?.some(group => group.isAdmin) || false; diff --git a/create-a-container/routers/settings.js b/create-a-container/routers/settings.js new file mode 100644 index 00000000..0279bcc5 --- /dev/null +++ b/create-a-container/routers/settings.js @@ -0,0 +1,36 @@ +const express = require('express'); +const router = express.Router(); +const { Setting } = require('../models'); +const { requireAuth, requireAdmin } = require('../middlewares'); + +router.use(requireAuth); +router.use(requireAdmin); + +router.get('/', async (req, res) => { + const settings = await Setting.getMultiple(['push_notification_url', 'push_notification_enabled']); + + res.render('settings/index', { + pushNotificationUrl: settings.push_notification_url || '', + pushNotificationEnabled: settings.push_notification_enabled === 'true', + req + }); +}); + +router.post('/', async (req, res) => { + const { push_notification_url, push_notification_enabled } = req.body; + + const enabled = push_notification_enabled === 'on'; + + if (enabled && (!push_notification_url || push_notification_url.trim() === '')) { + req.flash('error', 'Push notification URL is required when push notifications are enabled'); + return res.redirect('/settings'); + } + + await Setting.set('push_notification_url', push_notification_url || ''); + await Setting.set('push_notification_enabled', enabled ? 'true' : 'false'); + + req.flash('success', 'Settings saved successfully'); + return res.redirect('/settings'); +}); + +module.exports = router; diff --git a/create-a-container/routers/sites.js b/create-a-container/routers/sites.js index e0137267..803b5da4 100644 --- a/create-a-container/routers/sites.js +++ b/create-a-container/routers/sites.js @@ -106,12 +106,25 @@ router.get('/:siteId/ldap.conf', requireLocalhost, async (req, res) => { return res.status(404).send('Site not found'); } + // Get push notification settings + const { Setting } = require('../models'); + const settings = await Setting.getMultiple(['push_notification_url', 'push_notification_enabled']); + const pushNotificationUrl = settings.push_notification_url || ''; + const pushNotificationEnabled = settings.push_notification_enabled === 'true'; + // define the environment object const env = { - AUTH_BACKENDS: 'sql', DIRECTORY_BACKEND: 'sql', }; + // Configure AUTH_BACKENDS and NOTIFICATION_URL based on push notification settings + if (pushNotificationEnabled && pushNotificationUrl.trim() !== '') { + env.AUTH_BACKENDS = 'sql,notification'; + env.NOTIFICATION_URL = `${pushNotificationUrl}/send-notification`; + } else { + env.AUTH_BACKENDS = 'sql'; + } + // Get the real IP from the request or the x-forwarded-for header // and do a reverse DNS lookup to get the hostname. If the clientIP is any // localhost address, use the FQDN of the server instead. diff --git a/create-a-container/seeders/20260120165612-push-notification-settings.js b/create-a-container/seeders/20260120165612-push-notification-settings.js new file mode 100644 index 00000000..071be2c5 --- /dev/null +++ b/create-a-container/seeders/20260120165612-push-notification-settings.js @@ -0,0 +1,27 @@ +'use strict'; + +/** @type {import('sequelize-cli').Migration} */ +module.exports = { + async up(queryInterface, Sequelize) { + await queryInterface.bulkInsert('Settings', [ + { + key: 'push_notification_url', + value: '', + createdAt: new Date(), + updatedAt: new Date() + }, + { + key: 'push_notification_enabled', + value: 'false', + createdAt: new Date(), + updatedAt: new Date() + } + ], {}); + }, + + async down(queryInterface, Sequelize) { + await queryInterface.bulkDelete('Settings', { + key: ['push_notification_url', 'push_notification_enabled'] + }, {}); + } +}; diff --git a/create-a-container/server.js b/create-a-container/server.js index 31a40adb..0450649b 100644 --- a/create-a-container/server.js +++ b/create-a-container/server.js @@ -103,12 +103,14 @@ async function main() { const groupsRouter = require('./routers/groups'); const sitesRouter = require('./routers/sites'); // Includes nested nodes and containers routers const jobsRouter = require('./routers/jobs'); + const settingsRouter = require('./routers/settings'); app.use('/jobs', jobsRouter); app.use('/login', loginRouter); app.use('/register', registerRouter); app.use('/users', usersRouter); app.use('/groups', groupsRouter); app.use('/sites', sitesRouter); // /sites/:siteId/nodes and /sites/:siteId/containers routes nested here + app.use('/settings', settingsRouter); // --- Routes --- const PORT = 3000; diff --git a/create-a-container/views/layouts/header.ejs b/create-a-container/views/layouts/header.ejs index 756cfc5d..0b7a53ac 100644 --- a/create-a-container/views/layouts/header.ejs +++ b/create-a-container/views/layouts/header.ejs @@ -67,6 +67,11 @@ Groups + <% } %> diff --git a/create-a-container/views/login.ejs b/create-a-container/views/login.ejs index 69619353..773babb0 100644 --- a/create-a-container/views/login.ejs +++ b/create-a-container/views/login.ejs @@ -22,7 +22,7 @@ <% if (errorMessages && errorMessages.length > 0) { %> <% errorMessages.forEach(function(message) { %>
- <%= message %> + <%- message %>
<% }) %> <% } %> diff --git a/create-a-container/views/settings/index.ejs b/create-a-container/views/settings/index.ejs new file mode 100644 index 00000000..dc352f61 --- /dev/null +++ b/create-a-container/views/settings/index.ejs @@ -0,0 +1,67 @@ +<%- include('../layouts/header', { + title: 'System Settings - MIE', + breadcrumbs: [ + { label: 'Settings', url: '/settings' } + ], + req +}) %> + +
+
+

System Settings

+ +
+
+
Push Notification 2FA
+ +
+ + +
+ URL of the push notification service endpoint +
+
+ +
+
+ + aria-describedby="push_notification_enabled_help" + > + +
+
+ When enabled, users must approve login attempts via push notification. URL must be configured. +
+
+
+ +
+ + + Cancel + +
+
+
+
+ +<%- include('../layouts/footer') %> diff --git a/mie-opensource-landing/docs/developers/database-schema.md b/mie-opensource-landing/docs/developers/database-schema.md index 4e0d931b..d8a39451 100644 --- a/mie-opensource-landing/docs/developers/database-schema.md +++ b/mie-opensource-landing/docs/developers/database-schema.md @@ -135,6 +135,49 @@ erDiagram int id PK string secret UK } + + Settings { + string key PK,UK + string value + } +``` + string associatedResource + enum status "pending,running,success,failure,cancelled" + } + + JobStatuses { + int id PK + int jobId FK + text message + } + + Users { + int uidNumber PK + string username UK + string cn "Common Name" + string sn "Surname" + string givenName + string mail UK + text sshPublicKey + string userPassword + string status "pending,active,suspended" + } + + Groups { + int gidNumber PK + string cn UK "Group Name" + boolean isAdministrator + } + + UserGroups { + int uidNumber PK,FK + int gidNumber PK,FK + } + + SessionSecrets { + int id PK + string secret UK + } ``` ## Core Models @@ -361,6 +404,28 @@ The **SessionSecret** model stores express-session secrets. **Constraints:** - `secret` is unique +## System Settings + +### Setting + +The **Setting** model stores system-wide configuration key-value pairs. + +**Key Fields:** +- `key`: Setting identifier (primary key) +- `value`: Setting value (string) + +**Constraints:** +- `key` is unique and serves as primary key + +**Current Settings:** +- `push_notification_url`: URL for push notification service (empty by default) +- `push_notification_enabled`: Whether push notification 2FA is enabled ('true' or 'false') + +**Static Methods:** +- `get(key)`: Retrieve a setting value by key +- `set(key, value)`: Create or update a setting +- `getMultiple(keys)`: Retrieve multiple settings as an object + ## Database Abstraction The schema is implemented using **Sequelize ORM**, providing: From 7cc34cdd187de32417f5a14ca5f76f3a73a54736 Mon Sep 17 00:00:00 2001 From: Robert Gingras Date: Tue, 20 Jan 2026 14:11:10 -0500 Subject: [PATCH 02/13] docs: Add Settings and Push Notification 2FA documentation - Create new Settings admin documentation page with screenshot - Document push notification 2FA configuration and workflow - Update system architecture diagram to include Push Notification Service - Add detailed authentication flow with 2FA sequence diagram - Include link to MieWeb Auth App repository - Update admin index to reference System Settings --- mie-opensource-landing/docs/admins/index.md | 1 + .../docs/admins/settings.md | 90 ++++++++++++++++++ .../docs/developers/system-architecture.md | 61 +++++++++++- .../static/img/screenshots/settings-page.png | Bin 0 -> 302640 bytes 4 files changed, 149 insertions(+), 3 deletions(-) create mode 100644 mie-opensource-landing/docs/admins/settings.md create mode 100644 mie-opensource-landing/static/img/screenshots/settings-page.png diff --git a/mie-opensource-landing/docs/admins/index.md b/mie-opensource-landing/docs/admins/index.md index f1490644..ceebf7e1 100644 --- a/mie-opensource-landing/docs/admins/index.md +++ b/mie-opensource-landing/docs/admins/index.md @@ -33,6 +33,7 @@ This section provides comprehensive guides for: - **Installation & Setup**: Deploy and configure the cluster management system - **Node Management**: Add, configure, and maintain Proxmox nodes - **User Administration**: Manage accounts, permissions, and access control +- **System Settings**: Configure system-wide features like two-factor authentication - **Network Configuration**: Set up networking, ports, and service exposure - **Monitoring & Maintenance**: Keep your cluster healthy and performant - **Security**: Best practices for securing your infrastructure diff --git a/mie-opensource-landing/docs/admins/settings.md b/mie-opensource-landing/docs/admins/settings.md new file mode 100644 index 00000000..294ad7e5 --- /dev/null +++ b/mie-opensource-landing/docs/admins/settings.md @@ -0,0 +1,90 @@ +--- +sidebar_position: 7 +--- + +# System Settings + +The Settings page provides system-wide configuration options for the cluster management system. This page is only accessible to administrators. + +![Settings Page](/img/screenshots/settings-page.png) + +## Push Notification 2FA + +The cluster supports two-factor authentication (2FA) using push notifications via the [MieWeb Auth App](https://github.com/mieweb/mieweb_auth_app). + +### Configuration + +To enable push notification 2FA: + +1. Navigate to **Settings** in the admin sidebar +2. Enter the **Push Notification URL** - the endpoint of your notification service +3. Check **Enable Push Notification 2FA** to activate the feature +4. Click **Save Settings** + +:::warning URL Required +When push notification 2FA is enabled, you must provide a valid notification service URL. The system will validate this requirement before saving. +::: + +### How It Works + +When push notification 2FA is enabled: + +1. Users enter their username and password on the login page +2. After successful password validation, the system sends a push notification to the user's registered device +3. Users must approve the login attempt on their mobile device +4. Once approved, access is granted and the user is redirected to their dashboard + +### User Registration + +Users must register their devices with the notification service before they can authenticate: + +- If a user attempts to log in without a registered device, they will see an error message +- The error message includes a link to register their device with the [MieWeb Auth App](https://github.com/mieweb/mieweb_auth_app) +- After registration, users can log in using push notification 2FA + +### Notification Service + +The push notification feature requires a separate notification service. MIE provides: + +- **[MieWeb Auth App](https://github.com/mieweb/mieweb_auth_app)**: Mobile application for receiving and approving login notifications +- **Notification Service API**: Backend service that handles push notification delivery + +The notification service must implement the following endpoint: + +``` +POST {notification_url}/send-notification +{ + "username": "user123" +} +``` + +Expected responses: +- `{"success": true, "action": "approve"}` - User approved the login +- `{"success": true, "action": "reject"}` - User rejected the login +- `{"success": true, "action": "timeout"}` - Notification timed out +- `{"success": false, "message": "..."}` - Error occurred (e.g., no device registered) + +### LDAP Integration + +When push notification 2FA is enabled, the system automatically updates the `ldap.conf` configuration for all sites: + +- `AUTH_BACKENDS` is set to `sql,notification` (adds notification authentication) +- `NOTIFICATION_URL` is set to the configured notification service URL + +These settings are applied when: +- Creating a new site +- Updating an existing site's configuration +- Deploying containers that use LDAP authentication + +## Access Control + +:::info Administrator Only +The Settings page requires administrator privileges. Non-admin users will receive a "Forbidden" error if they attempt to access this page. +::: + +To grant administrator access to a user: +1. Navigate to **Users** in the admin sidebar +2. Find the user account +3. Add them to a group with admin privileges (typically the `admins` group) + +See [User Administration](users-and-groups) for more details on managing users and groups. diff --git a/mie-opensource-landing/docs/developers/system-architecture.md b/mie-opensource-landing/docs/developers/system-architecture.md index 09c7a5d5..1ae27373 100644 --- a/mie-opensource-landing/docs/developers/system-architecture.md +++ b/mie-opensource-landing/docs/developers/system-architecture.md @@ -22,6 +22,10 @@ graph TB NGINX[NGINX
Reverse Proxy] end + subgraph "External Services" + PushNotif[Push Notification Service
2FA Authentication] + end + subgraph PVE[Proxmox Cluster] LXC[LXC Container] end @@ -31,7 +35,9 @@ graph TB API --> PVE API --> DNS API --> NGINX + API --> PushNotif LDAP --> DB + LDAP --> PushNotif LXC -.-> LDAP DNS --> LXC NGINX --> LXC @@ -39,10 +45,12 @@ graph TB classDef management fill:#e1f5ff,stroke:#01579b classDef network fill:#f3e5f5,stroke:#4a148c classDef compute fill:#e8f5e9,stroke:#1b5e20 + classDef external fill:#fff3e0,stroke:#e65100 class WebUI,API,DB,LDAP management class DNS,NGINX network class LXC compute + class PushNotif external ``` ## Core Components @@ -123,6 +131,37 @@ The **LDAP Gateway** is a Node.js-based LDAP server that provides centralized au - All users in the `ldapusers` group can SSH into containers - User data synchronized from the backend database +### Push Notification Service + +The **Push Notification Service** provides two-factor authentication (2FA) via push notifications to users' mobile devices. + +**Repository:** [github.com/mieweb/mieweb_auth_app](https://github.com/mieweb/mieweb_auth_app) + +**Functionality:** +- Sends push notifications to users' registered devices during login +- Allows users to approve or reject login attempts +- Handles device registration and management +- Provides timeout mechanism for unanswered notifications + +**Authentication Flow:** +- API server sends notification request with username +- Service delivers push notification to user's device +- User approves/rejects the login attempt on their device +- Service returns the user's decision to the API server +- API server grants or denies access based on the response + +**Integration:** +- Configurable via the [Settings page](/docs/admins/settings) (admin only) +- LDAP gateway uses the notification service when `AUTH_BACKENDS` includes `notification` +- API server validates credentials before sending push notifications +- Notification URL configured in database settings and propagated to `ldap.conf` + +**Configuration:** +- Push notification URL stored in `Settings` table +- Feature enabled/disabled via admin interface +- LDAP containers automatically updated with notification URL +- No additional container configuration required + ### Backend Database The **backend database** stores all cluster state and configuration. @@ -180,13 +219,29 @@ sequenceDiagram participant Container participant LDAP participant DB + participant PushNotif as Push Notification
Service User->>Container: SSH login attempt Container->>LDAP: LDAP bind request LDAP->>DB: Verify credentials - DB-->>LDAP: User authenticated - LDAP-->>Container: Authentication success - Container-->>User: Login granted + DB-->>LDAP: Password validated + + alt 2FA Enabled + LDAP->>PushNotif: Send notification (username) + PushNotif->>User: Push notification to device + User->>PushNotif: Approve/Reject + PushNotif-->>LDAP: User decision + alt Approved + LDAP-->>Container: Authentication success + Container-->>User: Login granted + else Rejected or Timeout + LDAP-->>Container: Authentication failed + Container-->>User: Access denied + end + else 2FA Disabled + LDAP-->>Container: Authentication success + Container-->>User: Login granted + end ``` ### HTTP Service Exposure diff --git a/mie-opensource-landing/static/img/screenshots/settings-page.png b/mie-opensource-landing/static/img/screenshots/settings-page.png new file mode 100644 index 0000000000000000000000000000000000000000..84d93d2cb826be1354307bdd24bae264c3063284 GIT binary patch literal 302640 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 z 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%0A@XS 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

-+EnxZl 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 literal 0 HcmV?d00001 From 7933691a7d92694c070e29a18eff59432ff71bc0 Mon Sep 17 00:00:00 2001 From: Robert Gingras Date: Wed, 21 Jan 2026 15:41:26 -0500 Subject: [PATCH 03/13] fix: Remove duplicate content in database schema documentation --- .../docs/developers/database-schema.md | 38 ------------------- 1 file changed, 38 deletions(-) diff --git a/mie-opensource-landing/docs/developers/database-schema.md b/mie-opensource-landing/docs/developers/database-schema.md index d8a39451..cf2a5e75 100644 --- a/mie-opensource-landing/docs/developers/database-schema.md +++ b/mie-opensource-landing/docs/developers/database-schema.md @@ -141,44 +141,6 @@ erDiagram string value } ``` - string associatedResource - enum status "pending,running,success,failure,cancelled" - } - - JobStatuses { - int id PK - int jobId FK - text message - } - - Users { - int uidNumber PK - string username UK - string cn "Common Name" - string sn "Surname" - string givenName - string mail UK - text sshPublicKey - string userPassword - string status "pending,active,suspended" - } - - Groups { - int gidNumber PK - string cn UK "Group Name" - boolean isAdministrator - } - - UserGroups { - int uidNumber PK,FK - int gidNumber PK,FK - } - - SessionSecrets { - int id PK - string secret UK - } -``` ## Core Models From fa74b5a3c09cd4cc3b11771af5bd7cc74e5db90d Mon Sep 17 00:00:00 2001 From: Robert Gingras Date: Thu, 22 Jan 2026 09:45:19 -0500 Subject: [PATCH 04/13] feat: implement API key management system with responsive UI - Add ApiKey database model with argon2 hashing and prefix storage - Create database migration with indexes for performance - Implement cryptographic key generation (256-bit entropy) - Add requireApiKey middleware for Bearer token authentication - Build complete CRUD routes at /apikeys endpoint - Create responsive UI with mobile card view and desktop table view - Add one-time key display with copy-to-clipboard functionality - Refactor layout with fixed top navbar and collapsible sidebar - Optimize sidebar width (200-250px auto) and eliminate extra scrolling - Add Bootstrap Icons for improved visual design - Include usage examples with curl commands Security features: - Keys hashed with argon2 (never stored in plain text) - First 8 characters stored as prefix for efficient lookup - Keys shown only once at creation - Last usage timestamp tracking - Per-user key management (non-admin access) UI improvements: - Fixed navbar at top with hamburger menu for mobile - Sidebar collapses properly on mobile viewports - Breadcrumbs left-aligned in navbar - Responsive card/table dual layout pattern - Proper text wrapping for long strings (keys, UUIDs) - Clean spacing and no layout overflow issues --- create-a-container/middlewares/index.js | 60 +++++- .../20260122000000-create-api-keys.js | 66 +++++++ create-a-container/models/apikey.js | 102 ++++++++++ create-a-container/public/style.css | 149 +++++++-------- create-a-container/routers/apikeys.js | 177 ++++++++++++++++++ create-a-container/server.js | 3 + create-a-container/utils/apikey.js | 69 +++++++ create-a-container/views/apikeys/created.ejs | 113 +++++++++++ create-a-container/views/apikeys/form.ejs | 67 +++++++ create-a-container/views/apikeys/index.ejs | 137 ++++++++++++++ create-a-container/views/apikeys/show.ejs | 97 ++++++++++ create-a-container/views/layouts/footer.ejs | 5 +- create-a-container/views/layouts/header.ejs | 67 ++++--- 13 files changed, 1000 insertions(+), 112 deletions(-) create mode 100644 create-a-container/migrations/20260122000000-create-api-keys.js create mode 100644 create-a-container/models/apikey.js create mode 100644 create-a-container/routers/apikeys.js create mode 100644 create-a-container/utils/apikey.js create mode 100644 create-a-container/views/apikeys/created.ejs create mode 100644 create-a-container/views/apikeys/form.ejs create mode 100644 create-a-container/views/apikeys/index.ejs create mode 100644 create-a-container/views/apikeys/show.ejs diff --git a/create-a-container/middlewares/index.js b/create-a-container/middlewares/index.js index cd9f5bac..3554de02 100644 --- a/create-a-container/middlewares/index.js +++ b/create-a-container/middlewares/index.js @@ -55,6 +55,64 @@ function requireLocalhost(req, res, next) { return next(); } +// API Key authentication middleware +// Checks for Bearer token in Authorization header and validates it +async function requireApiKey(req, res, next) { + const authHeader = req.get('Authorization'); + + if (!authHeader || !authHeader.startsWith('Bearer ')) { + return res.status(401).json({ error: 'Unauthorized: API key required' }); + } + + const apiKey = authHeader.substring(7); // Remove 'Bearer ' prefix + + if (!apiKey) { + return res.status(401).json({ error: 'Unauthorized: API key required' }); + } + + const { ApiKey, User } = require('../models'); + const { extractKeyPrefix } = require('../utils/apikey'); + + const keyPrefix = extractKeyPrefix(apiKey); + + // Find API keys with matching prefix + const apiKeys = await ApiKey.findAll({ + where: { keyPrefix }, + include: [{ + model: User, + as: 'user', + include: [{ association: 'groups' }] + }] + }); + + // Check each matching key + for (const storedKey of apiKeys) { + const isValid = await storedKey.validateKey(apiKey); + if (isValid) { + // Attach user to request + req.user = storedKey.user; + req.apiKey = storedKey; + req.isAdmin = storedKey.user.groups?.some(g => g.isAdmin) || false; + + // Update last used timestamp (async, don't wait) + storedKey.recordUsage().catch(err => { + console.error('Failed to update API key last used timestamp:', err); + }); + + return next(); + } + } + + return res.status(401).json({ error: 'Unauthorized: Invalid API key' }); +} + const { setCurrentSite, loadSites } = require('./currentSite'); -module.exports = { requireAuth, requireAdmin, requireLocalhost, setCurrentSite, loadSites }; +module.exports = { + requireAuth, + requireAdmin, + requireLocalhost, + requireApiKey, + setCurrentSite, + loadSites +}; diff --git a/create-a-container/migrations/20260122000000-create-api-keys.js b/create-a-container/migrations/20260122000000-create-api-keys.js new file mode 100644 index 00000000..a66c9ed8 --- /dev/null +++ b/create-a-container/migrations/20260122000000-create-api-keys.js @@ -0,0 +1,66 @@ +'use strict'; + +/** @type {import('sequelize-cli').Migration} */ +module.exports = { + async up(queryInterface, Sequelize) { + await queryInterface.createTable('ApiKeys', { + id: { + type: Sequelize.UUID, + defaultValue: Sequelize.UUIDV4, + primaryKey: true, + allowNull: false + }, + uidNumber: { + type: Sequelize.INTEGER, + allowNull: false, + references: { + model: 'Users', + key: 'uidNumber' + }, + onUpdate: 'CASCADE', + onDelete: 'CASCADE' + }, + keyPrefix: { + type: Sequelize.STRING(8), + allowNull: false, + comment: 'First 8 characters of the API key for identification' + }, + keyHash: { + type: Sequelize.STRING(255), + allowNull: false, + comment: 'Argon2 hash of the full API key' + }, + description: { + type: Sequelize.STRING(255), + allowNull: true, + comment: 'User-provided description of the API key purpose' + }, + lastUsedAt: { + type: Sequelize.DATE, + allowNull: true, + comment: 'Timestamp of when this key was last used' + }, + createdAt: { + allowNull: false, + type: Sequelize.DATE + }, + updatedAt: { + allowNull: false, + type: Sequelize.DATE + } + }); + + // Add indexes for performance + await queryInterface.addIndex('ApiKeys', ['uidNumber'], { + name: 'apikeys_uidnumber_idx' + }); + + await queryInterface.addIndex('ApiKeys', ['keyPrefix'], { + name: 'apikeys_keyprefix_idx' + }); + }, + + async down(queryInterface, Sequelize) { + await queryInterface.dropTable('ApiKeys'); + } +}; diff --git a/create-a-container/models/apikey.js b/create-a-container/models/apikey.js new file mode 100644 index 00000000..e095e343 --- /dev/null +++ b/create-a-container/models/apikey.js @@ -0,0 +1,102 @@ +'use strict'; +const { + Model +} = require('sequelize'); +const argon2 = require('argon2'); + +module.exports = (sequelize, DataTypes) => { + class ApiKey extends Model { + /** + * Helper method for defining associations. + * This method is not a part of Sequelize lifecycle. + * The `models/index` file will call this method automatically. + */ + static associate(models) { + ApiKey.belongsTo(models.User, { + foreignKey: 'uidNumber', + as: 'user' + }); + } + + /** + * Validates a plaintext API key against the stored encrypted key + * @param {string} plainKey - The plaintext API key to validate + * @returns {boolean} - True if the key matches, false otherwise + */ + async validateKey(plainKey) { + return await argon2.verify(this.keyHash, plainKey); + } + + /** + * Updates the lastUsedAt timestamp + */ + async recordUsage() { + this.lastUsedAt = new Date(); + await this.save({ fields: ['lastUsedAt'] }); + } + } + + ApiKey.init({ + id: { + type: DataTypes.UUID, + defaultValue: DataTypes.UUIDV4, + primaryKey: true, + allowNull: false + }, + uidNumber: { + type: DataTypes.INTEGER, + allowNull: false, + references: { + model: 'Users', + key: 'uidNumber' + }, + onUpdate: 'CASCADE', + onDelete: 'CASCADE' + }, + keyPrefix: { + type: DataTypes.STRING(8), + allowNull: false, + comment: 'First 8 characters of the API key for identification' + }, + keyHash: { + type: DataTypes.STRING(255), + allowNull: false, + comment: 'Argon2 hash of the full API key' + }, + description: { + type: DataTypes.STRING(255), + allowNull: true, + comment: 'User-provided description of the API key purpose' + }, + lastUsedAt: { + type: DataTypes.DATE, + allowNull: true, + comment: 'Timestamp of when this key was last used' + } + }, { + sequelize, + modelName: 'ApiKey', + tableName: 'ApiKeys', + timestamps: true, + indexes: [ + { + fields: ['uidNumber'] + }, + { + fields: ['keyPrefix'] + } + ], + hooks: { + beforeCreate: async (apiKey, options) => { + if (!apiKey.keyHash) { + throw new Error('keyHash must be provided before creating an API key'); + } + if (!apiKey.keyPrefix) { + throw new Error('keyPrefix must be provided before creating an API key'); + } + } + } + }); + + return ApiKey; +}; diff --git a/create-a-container/public/style.css b/create-a-container/public/style.css index abed62a9..52201bd5 100644 --- a/create-a-container/public/style.css +++ b/create-a-container/public/style.css @@ -172,36 +172,17 @@ select:focus { } /* Navbar container for logout button */ -.navbar { - position: relative; - top: 0; - left: 0; - right: 0; - width: 100%; - background-color: #2c3e50; - color: white; - padding: 0.5rem 1rem; - display: flex; - align-items: center; - justify-content: flex-end; - z-index: 1000; +.navbar-dark .breadcrumb-item a { + color: #fff; + text-decoration: none; } -/* Logout button style */ -.navbar .logout-button { - background-color: #e74c3c; - color: white; - border: none; - padding: 0.5rem 1rem; - margin-right: 2rem; - border-radius: 4px; - cursor: pointer; - font-size: 1rem; - transition: background-color 0.3s; +.navbar-dark .breadcrumb-item.active { + color: #adb5bd; } -.navbar .logout-button:hover { - background-color: #c0392b; +.navbar-dark .breadcrumb-item + .breadcrumb-item::before { + color: #6c757d; } #signUpBtn { @@ -245,77 +226,80 @@ select:focus { /* Sidebar styling */ .sidebar { position: sticky; - top: 0; - height: 100vh; + top: 56px; + height: calc(100vh - 56px); padding: 0; - border-right: 2px solid #1a252f; - background-color: #2c3e50; + border-right: 1px solid rgba(0, 0, 0, 0.1); + background-color: #212529; + overflow-y: auto; + min-width: 200px; + max-width: 250px; } -.sidebar-logo { +.sidebar .nav { padding: 0; - text-align: center; - border-bottom: 1px solid #34495e; - height: 56px; - display: flex; - align-items: center; - justify-content: center; } -.sidebar-logo a { - display: flex; - align-items: center; - justify-content: center; - height: 100%; - width: 100%; +.sidebar .nav-link { + color: #adb5bd; + padding: 0.75rem 1rem; + border-radius: 0; + transition: background-color 0.2s, color 0.2s; + white-space: nowrap; } -.sidebar-logo .logo { - max-height: 100%; - max-width: 100%; - width: auto; - height: auto; - object-fit: contain; - margin: 0; +.sidebar .nav-link:hover, +.sidebar .nav-link.active { + background-color: #343a40; + color: #fff; } -.sidebar .nav { - padding: 1rem 0; +.sidebar .nav-link i { + margin-right: 0.5rem; } -.sidebar .nav-link { - color: #ecf0f1; - padding: 0.75rem 1rem; - border-radius: 0.25rem; - transition: background-color 0.2s, color 0.2s; +/* Mobile: Make sidebar full-width when expanded */ +@media (max-width: 767.98px) { + .sidebar { + position: fixed; + top: 56px; + left: 0; + right: 0; + width: 100%; + height: calc(100vh - 56px); + z-index: 1040; + max-width: 100%; + min-width: 100%; + } } -.sidebar .nav-link:hover { - background-color: #34495e; - color: #3498db; +/* Main content spacing */ +main { + padding-top: 1rem; + min-height: calc(100vh - 56px); } /* Site selector dropdown in sidebar */ .sidebar #site-selector { - background-color: #34495e; - color: #ecf0f1; - border: 1px solid #4a5f7f; + background-color: #343a40; + color: #fff; + border: 1px solid #495057; } .sidebar #site-selector:focus { - background-color: #2c3e50; - border-color: #3498db; - color: #ecf0f1; - box-shadow: 0 0 0 0.2rem rgba(52, 152, 219, 0.25); + background-color: #343a40; + border-color: #0d6efd; + color: #fff; + box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25); } .sidebar #site-selector option { - background-color: #34495e; - color: #ecf0f1; + background-color: #343a40; + color: #fff; } .sidebar .nav-link.active { - background-color: #3498db; + background-color: #0d6efd; color: white; } @@ -340,8 +324,18 @@ select:focus { .sidebar .site-group:hover > .nav-link.site-selector-wrapper, .sidebar .site-group:focus-within > .nav-link.site-selector-wrapper { - background-color: #34495e; - color: #3498db; + background-color: #343a40; + color: #fff; +} + +.sidebar .sites-root-link { + color: #adb5bd; + text-decoration: none; + padding-right: 0.5rem; +} + +.sidebar .sites-root-link:hover { + color: #fff; } /* Nested children indentation */ @@ -349,19 +343,20 @@ select:focus { list-style: none; margin: 0 0 0.5rem 0; padding: 0 0 0.5rem 0.25rem; - border-left: 2px solid #34495e; + border-left: 2px solid #495057; } .sidebar .site-children .child-link { display: block; padding: 0.4rem 0.75rem 0.4rem 1.25rem; /* extra left padding for indentation */ font-size: 0.9rem; - color: #bdc3c7; + color: #adb5bd; } -.sidebar .site-children .child-link:hover { - background-color: #34495e; - color: #ecf0f1; +.sidebar .site-children .child-link:hover, +.sidebar .site-children .child-link.active { + background-color: #343a40; + color: #fff; } .sidebar .site-children .child-link.active { diff --git a/create-a-container/routers/apikeys.js b/create-a-container/routers/apikeys.js new file mode 100644 index 00000000..b14d4808 --- /dev/null +++ b/create-a-container/routers/apikeys.js @@ -0,0 +1,177 @@ +const express = require('express'); +const router = express.Router(); +const { ApiKey, User } = require('../models'); +const { requireAuth } = require('../middlewares'); +const { createApiKeyData } = require('../utils/apikey'); + +// Apply auth to all routes - users can only manage their own API keys +router.use(requireAuth); + +// GET /apikeys - List all API keys for the current user +router.get('/', async (req, res) => { + const user = await User.findOne({ where: { uid: req.session.user } }); + if (!user) { + req.flash('error', 'User not found'); + return res.redirect('/login'); + } + + const apiKeys = await ApiKey.findAll({ + where: { uidNumber: user.uidNumber }, + order: [['createdAt', 'DESC']], + attributes: ['id', 'keyPrefix', 'description', 'lastUsedAt', 'createdAt', 'updatedAt'] + }); + + // Check if this is an API request + const acceptsJSON = req.get('Accept') && req.get('Accept').includes('application/json'); + const isAjax = req.get('X-Requested-With') === 'XMLHttpRequest'; + + if (acceptsJSON || isAjax) { + return res.json({ apiKeys }); + } + + return res.render('apikeys/index', { + apiKeys, + req + }); +}); + +// GET /apikeys/new - Display form for creating a new API key +router.get('/new', (req, res) => { + return res.render('apikeys/form', { + req + }); +}); + +// POST /apikeys - Create a new API key +router.post('/', async (req, res) => { + const user = await User.findOne({ where: { uid: req.session.user } }); + if (!user) { + req.flash('error', 'User not found'); + return res.redirect('/login'); + } + + const { description } = req.body; + + const apiKeyData = await createApiKeyData(user.uidNumber, description); + + // Store the hashed key in the database + const apiKey = await ApiKey.create({ + uidNumber: apiKeyData.uidNumber, + keyPrefix: apiKeyData.keyPrefix, + keyHash: apiKeyData.keyHash, + description: apiKeyData.description + }); + + // Check if this is an API request + const acceptsJSON = req.get('Accept') && req.get('Accept').includes('application/json'); + const isAjax = req.get('X-Requested-With') === 'XMLHttpRequest'; + + if (acceptsJSON || isAjax) { + return res.status(201).json({ + apiKey: { + id: apiKey.id, + key: apiKeyData.plainKey, // Only shown once! + keyPrefix: apiKey.keyPrefix, + description: apiKey.description, + createdAt: apiKey.createdAt + }, + warning: 'This is the only time the full API key will be displayed. Please store it securely.' + }); + } + + req.flash('success', 'API key created successfully. This is the only time it will be shown!'); + return res.render('apikeys/created', { + plainKey: apiKeyData.plainKey, + apiKey, + req + }); +}); + +// GET /apikeys/:id - Show details of a specific API key +router.get('/:id', async (req, res) => { + const user = await User.findOne({ where: { uid: req.session.user } }); + if (!user) { + req.flash('error', 'User not found'); + return res.redirect('/login'); + } + + const id = req.params.id; + + const apiKey = await ApiKey.findOne({ + where: { + id, + uidNumber: user.uidNumber // Ensure user can only view their own keys + }, + attributes: ['id', 'keyPrefix', 'description', 'lastUsedAt', 'createdAt', 'updatedAt'] + }); + + if (!apiKey) { + const acceptsJSON = req.get('Accept') && req.get('Accept').includes('application/json'); + const isAjax = req.get('X-Requested-With') === 'XMLHttpRequest'; + + if (acceptsJSON || isAjax) { + return res.status(404).json({ error: 'API key not found' }); + } + + req.flash('error', 'API key not found'); + return res.redirect('/apikeys'); + } + + // Check if this is an API request + const acceptsJSON = req.get('Accept') && req.get('Accept').includes('application/json'); + const isAjax = req.get('X-Requested-With') === 'XMLHttpRequest'; + + if (acceptsJSON || isAjax) { + return res.json({ apiKey }); + } + + return res.render('apikeys/show', { + apiKey, + req + }); +}); + +// DELETE /apikeys/:id - Delete an API key +router.delete('/:id', async (req, res) => { + const user = await User.findOne({ where: { uid: req.session.user } }); + if (!user) { + req.flash('error', 'User not found'); + return res.redirect('/login'); + } + + const id = req.params.id; + + const apiKey = await ApiKey.findOne({ + where: { + id, + uidNumber: user.uidNumber // Ensure user can only delete their own keys + } + }); + + if (!apiKey) { + const acceptsJSON = req.get('Accept') && req.get('Accept').includes('application/json'); + const isAjax = req.get('X-Requested-With') === 'XMLHttpRequest'; + + if (acceptsJSON || isAjax) { + return res.status(404).json({ error: 'API key not found' }); + } + + req.flash('error', 'API key not found'); + return res.redirect('/apikeys'); + } + + await apiKey.destroy(); + + // Check if this is an API request + const acceptsJSON = req.get('Accept') && req.get('Accept').includes('application/json'); + const isAjax = req.get('X-Requested-With') === 'XMLHttpRequest'; + + if (acceptsJSON || isAjax) { + return res.status(204).send(); + } + + req.flash('success', 'API key deleted successfully'); + return res.redirect('/apikeys'); +}); + +module.exports = router; diff --git a/create-a-container/server.js b/create-a-container/server.js index 0450649b..3cc34733 100644 --- a/create-a-container/server.js +++ b/create-a-container/server.js @@ -104,6 +104,8 @@ async function main() { const sitesRouter = require('./routers/sites'); // Includes nested nodes and containers routers const jobsRouter = require('./routers/jobs'); const settingsRouter = require('./routers/settings'); + const apikeysRouter = require('./routers/apikeys'); + app.use('/jobs', jobsRouter); app.use('/login', loginRouter); app.use('/register', registerRouter); @@ -111,6 +113,7 @@ async function main() { app.use('/groups', groupsRouter); app.use('/sites', sitesRouter); // /sites/:siteId/nodes and /sites/:siteId/containers routes nested here app.use('/settings', settingsRouter); + app.use('/apikeys', apikeysRouter); // --- Routes --- const PORT = 3000; diff --git a/create-a-container/utils/apikey.js b/create-a-container/utils/apikey.js new file mode 100644 index 00000000..78919993 --- /dev/null +++ b/create-a-container/utils/apikey.js @@ -0,0 +1,69 @@ +const crypto = require('crypto'); +const argon2 = require('argon2'); + +/** + * Generates a secure API key with high entropy + * @returns {string} A 44-character base64url-encoded random string + */ +function generateApiKey() { + // Generate 32 random bytes (256 bits of entropy) + const buffer = crypto.randomBytes(32); + // Convert to base64url encoding (URL-safe, no padding) + return buffer.toString('base64url'); +} + +/** + * Extracts the prefix from an API key (first 8 characters) + * @param {string} apiKey - The full API key + * @returns {string} The first 8 characters of the API key + */ +function extractKeyPrefix(apiKey) { + return apiKey.substring(0, 8); +} + +/** + * Hashes an API key using argon2 + * @param {string} apiKey - The plaintext API key + * @returns {Promise} The argon2 hash of the API key + */ +async function hashApiKey(apiKey) { + return await argon2.hash(apiKey); +} + +/** + * Verifies an API key against a hash + * @param {string} hash - The stored argon2 hash + * @param {string} apiKey - The plaintext API key to verify + * @returns {Promise} True if the key matches the hash + */ +async function verifyApiKey(hash, apiKey) { + return await argon2.verify(hash, apiKey); +} + +/** + * Generates a complete API key object ready for database insertion + * @param {number} uidNumber - The user's UID number + * @param {string} description - Optional description for the API key + * @returns {Promise<{plainKey: string, keyPrefix: string, keyHash: string, uidNumber: number, description: string}>} + */ +async function createApiKeyData(uidNumber, description = null) { + const plainKey = generateApiKey(); + const keyPrefix = extractKeyPrefix(plainKey); + const keyHash = await hashApiKey(plainKey); + + return { + plainKey, // This should only be shown once to the user + keyPrefix, + keyHash, + uidNumber, + description + }; +} + +module.exports = { + generateApiKey, + extractKeyPrefix, + hashApiKey, + verifyApiKey, + createApiKeyData +}; diff --git a/create-a-container/views/apikeys/created.ejs b/create-a-container/views/apikeys/created.ejs new file mode 100644 index 00000000..fa05fe3a --- /dev/null +++ b/create-a-container/views/apikeys/created.ejs @@ -0,0 +1,113 @@ +<%- include('../layouts/header', { + title: 'API Key Created - MIE', + breadcrumbs: [ + { label: 'API Keys', url: '/apikeys' }, + { label: 'Created', url: '#' } + ], + req +}) %> + +

+
+
+
+

+ API Key Successfully Created +

+
+
+ + +
+ +
+ + +
+
+ <% if (apiKey.description) { %> + Description: <%= apiKey.description %> + <% } %> +
+
+ +
+
+
Key Details
+
+
Key Prefix:
+
<%= apiKey.keyPrefix %>********
+ +
Created:
+
<%= new Date(apiKey.createdAt).toLocaleString() %>
+ +
Key ID:
+
<%= apiKey.id %>
+
+
+
+ +
+
Usage Example
+

Use this key in the Authorization header of your API requests:

+
curl -H "Authorization: Bearer <%= plainKey %>" \
+  https://opensource.mieweb.org/api/containers
+
+ + +
+
+
+
+ + + +<%- include('../layouts/footer') %> diff --git a/create-a-container/views/apikeys/form.ejs b/create-a-container/views/apikeys/form.ejs new file mode 100644 index 00000000..9e796108 --- /dev/null +++ b/create-a-container/views/apikeys/form.ejs @@ -0,0 +1,67 @@ +<%- include('../layouts/header', { + title: 'Create API Key - MIE', + breadcrumbs: [ + { label: 'API Keys', url: '/apikeys' }, + { label: 'Create', url: '/apikeys/new' } + ], + req +}) %> + +
+
+
+
+

Create New API Key

+ + + +
+
+ + +
+ Optional: Add a description to help identify this key's purpose. +
+
+ +
+ + Cancel + + +
+
+
+
+ +
+
+
+ Using Your API Key +
+

Once created, use your API key in the Authorization header:

+
Authorization: Bearer YOUR_API_KEY
+

+ Example with curl: +

+
curl -H "Authorization: Bearer YOUR_API_KEY" \
+  https://opensource.mieweb.org/api/containers
+
+
+
+
+ +<%- include('../layouts/footer') %> diff --git a/create-a-container/views/apikeys/index.ejs b/create-a-container/views/apikeys/index.ejs new file mode 100644 index 00000000..2f8af5f7 --- /dev/null +++ b/create-a-container/views/apikeys/index.ejs @@ -0,0 +1,137 @@ +<%- include('../layouts/header', { + title: 'API Keys - MIE', + breadcrumbs: [ + { label: 'API Keys', url: '/apikeys' } + ], + req +}) %> +
+
+
+

API Keys

+ + New API Key + +
+ + + + +
+ <% if (apiKeys.length === 0) { %> +
+ +

No API keys found. Create one to get started.

+
+ <% } else { %> + <% apiKeys.forEach(key => { %> +
+
+
+
Key Prefix
+ <% if (key.lastUsedAt) { %> + Active + <% } else { %> + Unused + <% } %> +
+ <%= key.keyPrefix %>******** + + <% if (key.description) { %> +

Description: <%= key.description %>

+ <% } %> + +

+ + Created: <%= new Date(key.createdAt).toLocaleDateString() %>
+ Last Used: <%= key.lastUsedAt ? new Date(key.lastUsedAt).toLocaleDateString() : 'Never' %> +
+

+ +
+ + View Details + +
+ + +
+
+
+
+ <% }) %> + <% } %> +
+ + +
+ + + + + + + + + + + + <% if (apiKeys.length === 0) { %> + + + + <% } else { %> + <% apiKeys.forEach(key => { %> + + + + + + + + <% }) %> + <% } %> + +
Key PrefixDescriptionLast UsedCreatedActions
+ +

No API keys found. Create one to get started.

+
+ <%= key.keyPrefix %>******** + + <% if (key.description) { %> + <%= key.description %> + <% } else { %> + No description + <% } %> + + <% if (key.lastUsedAt) { %> + <%= new Date(key.lastUsedAt).toLocaleString() %> + <% } else { %> + Never used + <% } %> + + <%= new Date(key.createdAt).toLocaleString() %> + +
+ + View + +
+ + +
+
+
+
+
+
+ +<%- include('../layouts/footer') %> diff --git a/create-a-container/views/apikeys/show.ejs b/create-a-container/views/apikeys/show.ejs new file mode 100644 index 00000000..4f1a21ef --- /dev/null +++ b/create-a-container/views/apikeys/show.ejs @@ -0,0 +1,97 @@ +<%- include('../layouts/header', { + title: 'API Key Details - MIE', + breadcrumbs: [ + { label: 'API Keys', url: '/apikeys' }, + { label: 'Details', url: '#' } + ], + req +}) %> + +
+
+
+
+
+

+ API Key Details +

+
+ + +
+
+ + + +
+
Key Prefix:
+
+ <%= apiKey.keyPrefix %>******** +
+ +
Description:
+
+ <% if (apiKey.description) { %> + <%= apiKey.description %> + <% } else { %> + No description provided + <% } %> +
+ +
Key ID:
+
+ <%= apiKey.id %> +
+ +
Created:
+
+ <%= new Date(apiKey.createdAt).toLocaleString() %> +
+ +
Last Updated:
+
+ <%= new Date(apiKey.updatedAt).toLocaleString() %> +
+ +
Last Used:
+
+ <% if (apiKey.lastUsedAt) { %> + <%= new Date(apiKey.lastUsedAt).toLocaleString() %> + Active + <% } else { %> + Never used + Inactive + <% } %> +
+
+ +
+ +
+
+
+ Usage Example +
+

Use this key in the Authorization header:

+
curl -H "Authorization: Bearer YOUR_API_KEY" \
+  https://opensource.mieweb.org/api/containers
+
+
+ + +
+
+
+
+ +<%- include('../layouts/footer') %> diff --git a/create-a-container/views/layouts/footer.ejs b/create-a-container/views/layouts/footer.ejs index 6711f12b..1935e964 100644 --- a/create-a-container/views/layouts/footer.ejs +++ b/create-a-container/views/layouts/footer.ejs @@ -1,7 +1,4 @@ - - - - + diff --git a/create-a-container/views/layouts/header.ejs b/create-a-container/views/layouts/header.ejs index 0b7a53ac..497b2e14 100644 --- a/create-a-container/views/layouts/header.ejs +++ b/create-a-container/views/layouts/header.ejs @@ -9,16 +9,37 @@ -
+ + + +
- -
diff --git a/create-a-container/views/apikeys/index.ejs b/create-a-container/views/apikeys/index.ejs index 2f8af5f7..071266c4 100644 --- a/create-a-container/views/apikeys/index.ejs +++ b/create-a-container/views/apikeys/index.ejs @@ -14,12 +14,6 @@
- -
<% if (apiKeys.length === 0) { %> diff --git a/create-a-container/views/apikeys/show.ejs b/create-a-container/views/apikeys/show.ejs index 4f1a21ef..30c6d817 100644 --- a/create-a-container/views/apikeys/show.ejs +++ b/create-a-container/views/apikeys/show.ejs @@ -71,19 +71,6 @@ -
- -
-
-
- Usage Example -
-

Use this key in the Authorization header:

-
curl -H "Authorization: Bearer YOUR_API_KEY" \
-  https://opensource.mieweb.org/api/containers
-
-
-
Back to List From a9d43bd7edde5bdc0743b00d449cc973055a9142 Mon Sep 17 00:00:00 2001 From: Robert Gingras Date: Thu, 22 Jan 2026 10:43:13 -0500 Subject: [PATCH 11/13] docs: Update API keys screenshots to match simplified views - Remove screenshots showing usage examples and instructions - Capture updated views with only essential information - Screenshots now match the cleaned-up UI without embedded documentation --- create-a-container/views/apikeys/index.ejs | 20 ++++++++---------- create-a-container/views/apikeys/show.ejs | 4 +--- .../static/img/apikeys-create-form.png | Bin 164800 -> 173892 bytes .../static/img/apikeys-created-success.png | Bin 153280 -> 156577 bytes .../static/img/apikeys-details.png | Bin 164612 -> 175671 bytes .../static/img/apikeys-list-empty.png | Bin 146075 -> 155074 bytes .../static/img/apikeys-list-with-key.png | Bin 159694 -> 156293 bytes 7 files changed, 10 insertions(+), 14 deletions(-) diff --git a/create-a-container/views/apikeys/index.ejs b/create-a-container/views/apikeys/index.ejs index 071266c4..c30a88ea 100644 --- a/create-a-container/views/apikeys/index.ejs +++ b/create-a-container/views/apikeys/index.ejs @@ -18,8 +18,7 @@
<% if (apiKeys.length === 0) { %>
- -

No API keys found. Create one to get started.

+

No API keys found. Create one to get started.

<% } else { %> <% apiKeys.forEach(key => { %> @@ -79,31 +78,30 @@ <% if (apiKeys.length === 0) { %> - -

No API keys found. Create one to get started.

+

No API keys found. Create one to get started.

<% } else { %> <% apiKeys.forEach(key => { %> - - <%= key.keyPrefix %>******** + + <%= key.keyPrefix %>******** - + <% if (key.description) { %> <%= key.description %> <% } else { %> No description <% } %> - + <% if (key.lastUsedAt) { %> - <%= new Date(key.lastUsedAt).toLocaleString() %> + <%= new Date(key.lastUsedAt).toLocaleString() %> <% } else { %> - Never used + Never <% } %> - + <%= new Date(key.createdAt).toLocaleString() %> diff --git a/create-a-container/views/apikeys/show.ejs b/create-a-container/views/apikeys/show.ejs index 30c6d817..7890183a 100644 --- a/create-a-container/views/apikeys/show.ejs +++ b/create-a-container/views/apikeys/show.ejs @@ -12,9 +12,7 @@
-

- API Key Details -

+

API Key Details