DocVault — User Manual
EDURE Flight Department
v3.0.0
User Manual

DocVault

Item Expiry Control System for EDURE Flight Department
Version 3.0.0
Platform Web & Mobile
Language English

Overview

DocVault is an item expiry tracking system designed for the EDURE Flight Department. It monitors validity dates across all operational items — pilot licenses, medical certificates, aircraft certifications, and more — and sends automated email reports before deadlines are reached.

Real-Time Dashboard

Visual overview of all item statuses, organized by category with color-coded alerts.

Automated Reports

Scheduled and conditional email reports in English, organized by category, sent to your team.

Configurable Alerts

Set custom alert windows per item — get notified 30, 60, or 90 days before expiry.

Full Audit Log

Every change to an item is tracked — who changed what and when.

DocVault is accessible from any device with a browser — desktop, tablet, or smartphone. No installation required.

Logging In

Access DocVault at edure-docvault.up.railway.app from any browser. You will be presented with the sign-in screen.

  1. Enter your email address in the Email field.
  2. Enter your password. Use the eye icon to reveal the password while typing — it will auto-hide after 5 seconds of inactivity.
  3. Click Sign In.
If you forget your password, click the Forgot password? link below the Sign In button. Enter your registered email address and a reset link will be sent to your inbox.

User Roles

RolePermissions
Admin+ Full access to all features including Activity Log Settings and exclusive admin+ features. Assigned only to designated accounts — not selectable via the UI.
Admin Full access: create/edit/delete items, manage users, categories, holders, and report settings.
User View dashboard, browse items, view report settings. Cannot manage system configuration.

Dashboard

The Dashboard is your home screen. It gives you an at-a-glance summary of all item statuses across the department.

Summary Cards

At the top you will see four summary cards showing the total count of items in each status:

Expired Expiring Soon Valid Pending Date

Click any card to filter the item list below to that status.

Category Tabs

Below the summary cards, tabs display each active category (e.g. Pilots, Aircraft, Medical). Click a tab to view only items belonging to that category. The All tab shows all items together.

Item Table

Each row in the table shows the item name, holder/responsible, expiry date, days remaining, and status badge. You can sort any column by clicking its header. Actions available per row:

ActionDescription
EditOpen the item form to update any field.
DuplicateOpen the form pre-filled with this item's data to create a copy. Save is disabled until at least one field is changed.
HistoryView the full audit log of changes for this item.
DeleteSoft-delete the item (recoverable from Admin → Deleted Items).
Click New Item in the top-right corner of the Dashboard to add an item directly, pre-filtered to the currently selected category.

All Items

The All Items view shows the complete item list across all categories with advanced filtering options.

Filters

FilterOptions
CategoryShow only items belonging to a specific category.
StatusExpired / Expiring Soon / Valid / Pending Date.
Show DeletedAdmins only. Reveals soft-deleted items alongside active ones.

Sorting

Click any column header to sort by that field. Click again to reverse the sort order.

Use the Search page in the sidebar to quickly find items by name, observations, category, or holder across all records. Results include a direct Open link that navigates to the item in All Items and highlights the row.

My Items

The My Items view filters the item list to show items where the logged-in user is either the assigned Holder or the assigned Responsible. It provides the same columns and actions as All Items.

A Show filter lets you narrow the view to All, Holder only, or Responsible only.

If your user account is not linked to a holder/responsible, a message will indicate that no items are associated with your profile. Admins can link a user by matching the user's name to an entry in Admin → Holders / Responsible.

The + New Item button in this view opens the creation form pre-filled with the current user as responsible and the Tripulação category (if it exists).

Adding & Editing Items

To add a new item, click the + New Item button on the Dashboard or Items page. To edit an existing one, click the icon on any row. To duplicate an item, click the purple icon — the form opens pre-filled with all fields from the original. Save is disabled until at least one field is changed, ensuring the duplicate is meaningfully different. The duplication is recorded in the item's history log.

Item Form Fields

FieldRequiredDescription
Category Yes The operational category this item belongs to (e.g. Pilots, Aircraft). Categories are managed in Admin.
Holder / Responsible Yes The person or entity responsible for this item. Managed in Admin → Holders.
Item Name Yes Descriptive name, e.g. ANAC Pilot Certificate.
Observations / Reference No Free text for notes, file numbers, or references (e.g. Ref. FX422312).
Issue Date No Date the item was issued. Combined with Validity Period to auto-calculate Expiry Date.
Validity Period No Select a preset period (e.g. 12 months). The expiry date is auto-calculated when both Issue Date and Validity Period are set.
Expiry Date No Can be set manually or auto-calculated. Leave blank for items with no set expiry (status will be Pending Date).
Alert Before Expiry No How many days before expiry the item enters Due Soon (yellow) status. Default is 60 days.
Critical Alert No How many days before expiry the item escalates to Critical — Expiring Soon (orange) status. Default is 10 days. Must be less than the Alert Before Expiry value.
Auto-calculation: Fill in both Issue Date and Validity Period and the Expiry Date is calculated automatically. You can still override it manually afterward.
If a validity period or alert option you need isn't in the dropdown, click the + button next to the select field to add a new option on the fly. Admins can also manage these options in Admin → Validity & Alerts. These settings apply per item.

Status Reference

StatusColorMeaning
Expired Red The item's expiry date has passed. Immediate action required.
Critical — Expiring Soon Orange Within the Critical Alert window (default: 10 days). Urgent — renewal must begin immediately.
Due Soon Yellow Within the standard alert window (e.g. 60 days) but outside the critical window. Renewal should be planned.
Valid Green The item is valid and outside all alert windows. No action needed.
Pending Date Gray No expiry date has been set. The item is tracked but not monitored for expiry.

Administration

The Admin section is visible to all users but editing actions are restricted to Admins only. It contains six tabs: Users, Categories, Holders/Responsible, Validity & Alerts, Deleted Items, and Items Audit.

Only Admin-role users can create, edit, deactivate, or delete items in the Administration section.

Admin — Users

Manage all system users. Each user has an email address, name, role, and active status.

Creating a User

  1. Click + New User to expand the creation form.
  2. Enter Name, Email, Password, and Role (User or Admin).
  3. Optionally check Also add as Holder/Responsible to simultaneously create a matching holder entry.
  4. Optionally check Add as report recipient to add this user's email to the automated report mailing list.
  5. Click Create.

Editing a User

Click the edit icon on any user row. You can update Name, Email, and Role. The Report recipient checkbox reflects and controls whether this user receives automated reports:

  • Check it → user is added to the report recipient list automatically on save.
  • Uncheck it → a confirmation dialog will appear before removing the user from the report list.

User Actions

ActionDescription
EditModify name, email, role, and recipient status.
DeactivateDisables login without deleting the account. The user's items are preserved.
DeletePermanently removes the user. You will be asked how to handle any linked items (keep as Unassigned or move to Deleted). If the user is a report recipient, you will also be asked whether to remove their email from the recipients list.
ReactivateRe-enables a deactivated account.

Password Management

Admins can reset another user's password using the Reset Password button on the user row. A temporary password will be generated and sent to the user's email address. Each user can also change their own password via My Account → Change Password.

Admin — Categories

Categories organize items into operational groups (e.g. Pilots, Aircraft, Medical). Every item must belong to exactly one category.

Managing Categories

ActionNotes
CreateEnter a name and click Add. Category appears immediately in the item form and dashboard.
EditClick the pencil icon to rename inline.
DeactivateHides the category from new item creation. Existing items remain.
DeleteShows a confirmation modal with two options: keep linked items (moved to Unassigned) or delete them along with the category.
The order categories appear in the Admin panel matches the order they appear in email reports. Plan category names accordingly.

Admin — Holders / Responsible

Holders represent the people or entities responsible for items (e.g. individual pilots, the company, an aircraft). An item must be assigned to a holder.

Holders are global — they are not tied to a specific category. The same holder can appear in multiple categories.

Managing Holders

ActionNotes
CreateEnter name and click Add. Holders can also be created automatically when creating a new user with the "Also add as Holder" option checked.
EditRename inline. The new name propagates to all linked items.
DeactivateHides from new item creation. Existing items are not affected.
DeleteChoose to keep linked items (set to Unassigned) or delete them along with the holder.

Admin — Validity & Alerts

This tab manages the preset options available in the item form dropdowns for Validity Period and Alert Before Expiry.

Validity Periods

Define standard periods used across your organization (e.g. 6 months — 183 days, 1 year — 365 days). When selected in the item form alongside an Issue Date, the expiry date is auto-calculated.

Alert Options (Due Soon)

Define how many days before expiry an item enters Due Soon (yellow) status. For example, 60 days means the item turns yellow 2 months before expiry.

Critical Alert Options

A separate pool of short-range values (default: 5, 7, 10, 14, 21 days) that controls when an item escalates from yellow to orange (Critical — Expiring Soon). These are managed independently from standard alert options.

New options can also be added on-the-fly from the item creation form by clicking the + button next to the relevant dropdown, without having to navigate to Admin first.

Admin — Deleted Items

When an item is deleted from the Dashboard or Items view, it is soft-deleted — it is hidden from normal views but not permanently removed. Admins can review, restore, or permanently delete these records.

ActionDescription
RestoreReturns the item to active status. It reappears in the Dashboard and Items view.
Permanent DeleteIrreversibly removes the item and all its history from the database.
Permanent deletion cannot be undone. The item's full audit history will also be erased.

Notifications Settings

DocVault sends automated email reports summarizing item status. The Notifications Settings page is organized into two tabs: Report Settings (visible to all admins) and Activity Log Settings (visible to admin+ only).

Report Settings Tab

The Report Settings tab contains four cards: Master Status, Scheduled Report, Conditional Report, and Recipients.

Master Status

The top card controls all email sending globally. When the master toggle is off, no emails are sent at all — neither Scheduled nor Conditional — regardless of individual card settings. The last sent timestamp is shown here.

Scheduled Report

Sends a full item status report on a fixed schedule to recipients who have the Scheduled flag enabled.

FieldOptions
TogglePause or resume the Scheduled Report independently of the master switch
FrequencyDaily, Weekly, Biweekly, Monthly
DayDay of week (Weekly/Biweekly) or day of month (Monthly)
TimeHour:Minute in 30-minute intervals — displayed in UTC-3 (São Paulo, Brazil)

Click Save Schedule to apply. The scheduler updates immediately. The Current Schedule display below the button shows the active configuration and its status (Active / Paused).

Click Send Now at the bottom of the card to dispatch the scheduled report immediately to all scheduled recipients.

Conditional Report

Sends a report only when items require attention (at least one Expired, Critical, or Due Soon), using the same schedule as the Scheduled Report but delivered to recipients with the Conditional flag enabled. The conditional behavior is always active — it cannot be disabled.

SettingBehavior
TogglePause or resume the Conditional Report independently

Click Send Now at the bottom of the card to trigger the conditional report immediately. If no items require attention, a notification confirms that no email was sent.

Recipients

Add email addresses to the recipient list. Type an address and click + Add. Each recipient row has two toggles — Scheduled and Conditional — controlling which report types they receive. Remove a recipient by clicking the icon.

Recipients can also be managed when creating or editing users in the Admin panel.

Email Format

Each report includes:

  • Summary cards showing total expired, critical, and due-soon counts
  • 🔴 Expired Items — organized by category, sorted most critical first
  • 🟠 Critical — Expiring Soon — items within the critical threshold, by category
  • 🟡 Due Soon — items within the alert window, by category
  • Categories with no issues — listed at the bottom
  • A link button to open DocVault directly

The subject line adapts automatically and identifies the report type:

Scheduled — with issues:
Scheduled Report — DocVault · 3 expired · 5 critical · 2 due soon
Scheduled — all clear:
Scheduled Report — DocVault · ✅ All items current
Conditional — with issues:
Conditional Report — DocVault · 3 expired · 5 critical · 2 due soon

Activity Log Settings Tab

Visible to admin+ only. Configures the daily Activity Log email — a summary of all system activity from the previous day (00:00–23:59 UTC-3), including logins, logouts, and all item actions.

FieldDescription
ToggleEnable or disable the daily Activity Log email
TimeHour and minute the email is sent daily (UTC-3, São Paulo)
Recipient EmailSingle email address that receives the log
Send NowDispatch the Activity Log for the previous day immediately
The Activity Log email always reports the previous full day (midnight to midnight, UTC-3). Events from today will appear in tomorrow's email.

My Account

Each user can manage their own password and preferences from the My Account page, accessible from the left sidebar.

Changing Your Password

  1. Enter your Current Password.
  2. Enter your New Password (minimum 8 characters, including letters and numbers).
  3. Repeat the new password in Confirm New Password.
  4. Click Update Password.

All three password fields support the eye icon to reveal the value while typing. The password is automatically hidden again 5 seconds after the last keystroke.

Choose a strong password. DocVault requires at least 8 characters containing both letters and numbers. A longer, unique password is strongly recommended.

Preferences

The Preferences card lets you choose the default page shown immediately after login:

OptionLands on
DashboardThe main Dashboard with status summary and category tabs (default)
All ItemsThe full item list with category and status filters
My ItemsYour personal item list filtered by your holder

Click Save Preferences to apply. The change takes effect on the next login.

Version History

This manual is updated with each version that introduces user-facing changes. Refer to this section to understand what changed between releases.

v3.0.0
June 2026
  • Unified login: DocVault now uses the central EDURE authentication (same account and password as the other apps), managed in EDURE Admin, with per-app access permission.
  • Passkeys (Face ID / Touch ID): sign in without a password; your EDURE passkey works across all apps.
  • New domain docvault.edure.app and refreshed EDURE branding (new icon and login/sidebar logo).
v2.3.1
May 2026
  • Activity Log tab (admin+ only): new tab in Admin panel after Items Audit — shows all activity with date/time, action, item and user, most recent first; filterable by action, item and user
v2.3.0
May 2026
  • Item history in quick-view: opening any item (desktop and mobile) now shows a History section with date, action and user — most recent first
  • Mobile: Duplicate button added to the item quick-view alongside Close and Edit
  • Fix (mobile): deleting an item in My Items now correctly refreshes the list
  • Items Audit: page now loads sorted by Last Modified (most recent first)
  • Items Audit — Version History: clicking an active item opens a Version History panel; each version shows its changes and has a Revert button to restore the document to that state
v2.2.2
Apr 2026
  • New Item carry-over: from the second entry onwards, Category, Holder, Responsible, Alert Before Expiry and Critical Alert are pre-filled with the values used in the previous new item
v2.2.1
Apr 2026
  • Fix: Crew Docs selector shows full names on desktop (abbreviated names kept on mobile)
v2.2.0
Apr 2026
  • Crew Docs: crew member selector now visible on desktop — click the selector button next to New Item to switch between crew members
  • Mobile — Edit Item modal: Archive and Delete buttons now available directly in the edit modal on mobile
  • Fix (mobile): scrolling inside modals no longer leaks to the background page
v2.1.1
Mar 2026
  • Fix: archived documents no longer appear in Dashboard or My Items
  • Fix: confirm modal now closes automatically after confirming an action
  • Fix: clicking outside an action modal now shakes it instead of closing — consistent across the app
v2.1.0
Mar 2026
  • Private Documents: Archive tab — archive items from the actions column and restore them from Archived tab
  • Private Documents: Deleted Items tab — soft delete moves items to trash; restore or permanently delete from there
  • Private Documents: four-tab layout (My Items / Archived / Deleted Items / Notifications)
  • Private Documents: modal revamped to match normal New Item — Issue Date, Validity Period with auto-calculate expiry, Storage Location, inline Alert and Critical Days dropdowns with + button to add custom values
  • Fix: delete category and delete item now show the correct confirmation dialog
  • Fix: Alert Before Expiry and Critical Alert dropdowns now populate correctly
v2.0.0
Mar 2026
  • Versioning migrated to SemVer (MAJOR.MINOR.PATCH) starting from this release
  • Private Documents: fully encrypted personal documents per user (Fernet), invisible to all other users including admin+
  • Private Documents: personal categories, desktop table, mobile cards with sort/swipe/FAB
  • Private Documents: two-tab layout (My Items / Notifications); draggable category modal; empty-state guard on New Item button
  • Personal Notifications: per-user email alerts for expiring private docs with configurable schedule and Send Now
  • Favicon: app icon now displayed in browser tab
v1.111
Mar 2026
  • All Items (mobile): items now load sorted most-critical-first by default
  • All Items (mobile): grouping by Responsible, Holder, or Category now renders correctly as collapsible accordion sections
v1.110
Mar 2026
  • Dashboard: Expired items are now selected by default on first login; last selection is remembered during the session and resets to Expired on logout
  • Dashboard: Selected summary card is now visually highlighted with a filled color background, making the active selection immediately obvious on web and mobile
v1.109
Mar 2026
  • Email doc link: if DocVault is already open in a browser tab, clicking a document link in the email navigates that same tab instead of opening a new one
v1.108
Mar 2026
  • Fix: clicking a highlighted document (arrived via email link) now opens its detail view in one click instead of two
v1.107
Mar 2026
  • Fix: email document link now clears any previously active filters before opening All Items, ensuring the target document is always visible
v1.106
Mar 2026
  • Email reports: document names are now clickable — tapping or clicking opens DocVault directly in All Items with that document highlighted (desktop) or its detail view open (mobile)
v1.105
Mar 2026
  • Fix: when sorting by expiry date, PERMANENT items (no expiry) now always appear at the end of the list in all views, regardless of sort direction
v1.104
Mar 2026
  • Fix: expiry dates were displaying one day earlier than the actual date for users in the UTC-3 time zone (São Paulo); the date shown in all views now matches the date entered and stored
v1.103
Mar 2026
  • Dashboard (mobile): category names longer than 18 characters are abbreviated in the filter button label to prevent header distortion
v1.102
Mar 2026
  • Dashboard (mobile): category filter now appears as a popout button in the toolbar — tap to select a category; label updates to show the active selection
  • Dashboard (mobile): item cards redesigned to match Crew Docs style — document name, category, expiry date, status badge, and edit button; left colored strip indicates criticality; tap to open full detail view
v1.101
Mar 2026
  • My Items & All Items (mobile): now display as compact cards identical to Crew Docs — name, observations, expiry date, status badge, and edit button; tap a card to open the full detail view; desktop table layout unchanged
v1.100
Mar 2026
  • Fix: mobile sort icon was disappearing when active — inline style was setting the icon color to the same dark blue as the background, making it invisible; active state now shows a subtle white background highlight instead
v1.99
Mar 2026
  • Mobile toolbar: sort icon repositioned to the far right in all views (My Items, All Items, Crew Docs) to match the Dashboard layout
v1.98
Mar 2026
  • Mobile toolbar icons (Sort, Filters, Crew selector) now display in white to match the page title color across all views
v1.97
Mar 2026
  • Crew Docs (mobile): crew member selector moved to toolbar as a popout button — tap the name to switch between crew members; subtitle updates to show selected crew name
  • Mobile sort: sort icon in toolbar (Dashboard, My Items, All Items, Crew Docs) — toggle between most critical first and least critical first
  • My Account: all users can now edit their own profile (name, email, Crew Member status) — changes are logged in the activity log
v1.96
Mar 2026
  • Fix: mobile-only elements (Filters button, crew selector) were always hidden due to a CSS rule ordering bug — the desktop default was declared after the mobile media query, overriding it on all screen sizes
v1.95
Mar 2026
  • Filters (mobile): completely redesigned as a centered modal window — Filters button now opens a proper popup that works reliably on iOS; New Item button removed from mobile toolbar (use the + FAB instead)
  • Crew Docs (mobile): added crew member selector — tap a name to switch between crew members; names shown as Kirk L., Andre D., Lucas J.
  • Users: added Crew Member flag to user management — admins can now mark users as crew members
v1.94
Mar 2026
  • Filters (mobile): redesigned as a bottom sheet — tapping Filters on My Items or All Items now slides up a panel from the bottom of the screen, completely outside any sticky/overflow stacking context; backdrop tap closes it
v1.93
Mar 2026
  • Filters (mobile): fixed root cause of filter panel not appearing on iPhone — panel moved outside the sticky toolbar so iOS Safari's sticky/overflow clipping no longer applies; filters now expand freely on tap
v1.92
Mar 2026
  • Filters (mobile): filter panel now expands correctly on iPhone for My Items and All Items — fixed iOS Safari clipping by adding overflow: visible when the panel is open, and separated the CSS class changes with requestAnimationFrame so the transition fires reliably
v1.91
Mar 2026
  • My Items / All Items (mobile): header height corrected to 48px, matching Dashboard and Crew Docs; removed stray bottom margin that was inflating the bar height
  • Swipe navigation (mobile): fixed header bar displacement on adjacent page — sticky headers inside the fixed overlay are temporarily set to relative positioning during the animation, preventing iOS Safari's sticky/fixed conflict
v1.90
Mar 2026
  • Swipe navigation (mobile): adjacent page now renders at the correct size during animation — padding copied from the main content container so content matches its normal layout
  • Filters (mobile): filter panel now opens correctly on iPhone — expansion uses a CSS class instead of JS measurement, ensuring the toolbar height animates reliably
v1.89
Mar 2026
  • Swipe navigation (mobile): next/previous page now slides in alongside the current page during drag — both pages move together, edge-to-edge, like native iOS
  • Filters (mobile): filter panel now expands correctly on iPhone for My Items and All Items; scroll-hide is suppressed while filters are open
v1.88
Mar 2026
  • Swipe navigation (mobile): complete rewrite — page now sticks to finger during swipe, commits with inertia on fast flick, snaps back if cancelled; correct sequence: Dashboard → Crew Docs → My Items → All Items
v1.87
Mar 2026
  • All Items (mobile): header width fixed — now consistent with all other views
  • Crew Docs: header now shows abbreviated username (e.g. "Crew Docs — Kirk L.")
  • Swipe navigation (mobile): swipe left/right to move between Dashboard, Crew Docs, My Items, and All Items
v1.86
Mar 2026
  • Dashboard: items sorted correctly when pressing a summary card — most expired at top, furthest from expiry at the bottom
  • My Items / All Items (mobile): header measurements now match Crew Docs exactly
v1.85
Mar 2026
  • Dashboard: "Pending Date" card removed — 6 cards remain (Expired, Critical, Due Soon, Valid, Permanent, Items)
  • Dashboard: "Items" card is now clickable — shows all documents sorted by criticality
  • App always opens on Dashboard after login
  • Bottom nav (mobile): "All Items" replaces "Search"; Search moved to the More sheet
  • All Items (mobile): dark navy header matching Crew Docs and My Items
  • My Items (mobile): fixed header positioning bug
  • Crew Docs (web): sortable table with same columns and row colors as My Items; card view stays on mobile
v1.84
Mar 2026
  • Dashboard mobile: iPhone-style document list with colored status strip, category info, and edit button per card
  • Summary cards: fixed layout — 3-column grid contained within viewport (was overflowing)
  • Quick View: added Edit button to open item directly for editing
  • My Items: fixed white bar when header hides on scroll
v1.83
Mar 2026
  • Added Crew Docs view (mobile and web) showing the user's Tripulação documents sorted by urgency
  • Redesigned mobile bottom nav: Dashboard, Crew Docs, My Items, Search, More
  • All Items moved to More sheet; label renamed from "Items" to "All Items"
  • Standardized sticky headers on Dashboard, Crew Docs, and My Items with hide-on-scroll behavior
  • Compact summary cards on mobile Dashboard with horizontal scroll row
  • Help view now renders inline inside the app frame with bottom nav visible
  • Fixed All Items button in More sheet
v1.82
Mar 2026
  • Help overlay now stops above the bottom nav — nav remains visible and tappable
  • Help renders in mobile mode (viewport meta injected into srcdoc)
  • All view headers standardized to exact 44px height matching My Items
v1.81
Mar 2026
  • Headers standardized across all views: Dashboard and Search now use same structure as All Items / My Items
  • Dashboard mobile header gains Search shortcut button
  • Search mobile header gains +New Item button
  • Help/Manual rebuilt: uses fetch + srcdoc (bypasses service worker and iOS iframe bugs)
  • Help back button returns to the previous view
v1.80
Mar 2026
  • Search: no auto-focus on mobile (keyboard no longer pops up automatically)
  • Help iframe fixed for iOS Safari: switched from flexbox to absolute positioning inside fixed overlay
  • Page header height reduced to match +New Item button height (44px)
v1.79
Mar 2026
  • Sticky page header fixed: overflow-x changed to clip so position:sticky works correctly
  • Page header more compact on mobile
  • Help view opens as full-screen in-app overlay with back button and iframe
  • Bottom nav Dashboard label: guaranteed minimum padding to avoid iPhone corner clipping
v1.78
Mar 2026
  • Bottom nav horizontal safe area fixed — "Dashboard" label no longer clipped by iPhone rounded corners
  • Page header restored and made sticky — view title and action button always visible while scrolling
  • Help opens in Safari browser while keeping the app running in the background
v1.77
Mar 2026
  • Service worker updated to network-first strategy — app always loads latest version automatically
  • CSS and JS served with version query string for browser cache busting
  • Version bump rules updated to include sw.js cache name
v1.76
Mar 2026
  • Sticky mobile page header with view title and action button
  • Dashboard summary cards simplified on mobile — status and count only
  • Filters panel collapsible on mobile for Items and My Items
  • Pre-fill new item modal from active filters
  • Search view layout fixed on mobile
  • Help opens in-app maintaining bottom navigation
  • Removed duplicate My Items from More sheet
  • Notifications Settings layout fixed for mobile
  • Web sidebar: My Documents and All Documents renamed to My Items and All Items
  • Modal titles corrected: New Item, Edit Item, Item History
v1.75
March 2026
  • Terminology rename: "Document" has been renamed to "Item" throughout the entire interface, automated emails, and this manual.
  • Bottom navigation redesign: the bottom nav now shows five direct destinations — Dashboard, Items, My Items, Search, and More. Admin has been moved from the nav bar into the More bottom sheet.
  • FAB new item button: a floating action button appears on Dashboard, Items, and My Items views on mobile, providing quick access to add a new item.
  • Compact dashboard on mobile: the dashboard now shows a flat list of compact item cards on mobile instead of grouped tables — no holder grouping, just name, status badge, and days remaining, tappable to open the item details.
v1.74
March 2026
  • PWA icon on iPhone: added the 180×180 icon entry to manifest.json and the sizes="180x180" attribute to the apple-touch-icon link, ensuring the correct high-resolution icon appears when adding DocVault to the iPhone home screen.
  • Mobile layout overflow: applied strict box-sizing and max-width constraints inside the 480px breakpoint so no element can exceed the screen width on iPhone.
  • Removed stale "Switch to Web View" button: the floating view-mode toggle button introduced in v1.71 has been removed from the HTML, CSS, and JavaScript. The force-desktop class is still respected by the card-expand logic.
v1.73
March 2026
  • PWA support: DocVault can now be installed on iPhone home screen via Safari "Add to Home Screen"; includes manifest.json, service worker with cache-first strategy for offline app shell, and apple-touch-icon.
  • Mobile bottom tab bar: replaces the sidebar on screens up to 480px wide with a five-item bottom navigation bar (Dashboard, Search, Documents, Admin, More).
  • Bottom sheet More menu: the More tab opens a slide-up sheet with My Documents, Notifications, My Account, Help, About, the logged-in username, and Sign Out.
  • Expandable document cards on mobile: each document row is now a tappable card; collapsed state shows the document name, status badge, category, responsible, and expiry date; tapping expands the card to reveal all remaining fields and action buttons.
  • Mobile layout overflow fix: applied overflow-x hidden and safe box-sizing rules so no element overflows the screen width on iPhone.
v1.72
March 2026
  • Document history: no more phantom entries — the log no longer records a change when the before and after values are identical; None and empty string are now treated as equivalent to prevent false positives.
  • Document history: names instead of IDs — changes to Responsible, Holder, and Category now show the person or category name in the history log instead of the numeric database ID.
  • Document history: readable field names — field names in the history modal are now human-readable labels (e.g., "Responsible" instead of "titular_id", "Storage Location" instead of "location").
  • Document history: readable status values — boolean and status values in the history log are now shown in plain language (e.g., "Yes"/"No" for archived, "active"/"deleted" for the deletion event).
v1.71
March 2026
  • iPhone-style mobile interface: the app now has a dedicated mobile layout with a bottom tab bar (Dashboard, Search, Documents, Admin, More), a bottom sheet More menu that contains My Documents, Notifications, My Account, Help, About, the logged-in username, and Sign Out; document tables on mobile display as stacked card rows; modals slide up as bottom sheets; safe-area insets ensure compatibility with notched iPhones.
  • PWA meta tags: added apple-mobile-web-app-capable, apple-mobile-web-app-status-bar-style, and theme-color for a better Add-to-Home-Screen experience on iOS.
  • View mode toggle: a floating button (mobile only) lets users switch between Mobile View and Web View; the preference is saved in localStorage and restored automatically on next visit.
v1.70
March 2026
  • Full-window drag for modals: the quick-view card and New Document modal can now be dragged by clicking and holding anywhere on the window — not just the header; on the New Document modal, dragging is blocked when the click starts on an editable field (input, select, textarea) so that text selection and dropdowns continue to work normally.
v1.69
March 2026
  • Document quick-view redesign: the quick-view modal now uses the same visual style as the New Document form — identical layout with labeled field groups, two-column rows for paired fields (Holder/Responsible, Issue Date/Validity Period, Alert/Critical Alert), and read-only field values displayed in closed input-style boxes; modal is draggable by the header.
v1.68
March 2026
  • Document quick-view card: clicking any part of a document row (except action buttons) in All Documents, My Documents, Dashboard, Archived, and Deleted views opens a read-only modal showing all document fields — name, status badge, category, holder, responsible, issue date, expiry date, validity period, alert days, critical days, days remaining, storage location, and observations; modal closes on Close button, ESC key, or click outside.
v1.67
March 2026
  • Conditional Report priority: when both Scheduled and Conditional reports are active, Conditional now takes priority; if documents require attention (Expired, Critical, or Due Soon), only the Conditional is sent and Scheduled is suppressed for that cycle; if Conditional is active but no documents require attention, neither report sends; Scheduled only sends when Conditional is paused.
  • Priority explanation in UI: the Conditional Report card now displays a note explaining the priority behavior between Scheduled and Conditional reports.
v1.66
March 2026
  • Email reports translated to English: all document report emails (scheduled and conditional) are now in English; subject lines, column headers, status labels, and section titles have been updated.
  • Report type identification: each email now includes a banner identifying whether it is a Scheduled Report or a Conditional Report.
  • Archived documents excluded from reports: archived documents are no longer included in email reports or in the conditional report trigger logic.
v1.65
March 2026
  • Logout now invalidates the session token: logging out revokes the current JWT server-side; a revoked token cannot be used again even if it has not yet expired.
  • Password reset tokens hashed in the database: reset link tokens are now stored as SHA-256 hashes; the plaintext token is only sent in the email link and never persisted.
  • Admin password reset sends a link, not a temporary password: when an admin triggers a password reset for a user, a secure one-hour reset link is sent by email instead of a plaintext temporary password.
  • JWT algorithm fixed to HS256: the signing algorithm is now hardcoded and cannot be overridden by configuration, preventing algorithm-confusion attacks.
  • HTTP security headers: all responses now include X-Content-Type-Options, X-Frame-Options, X-XSS-Protection, Referrer-Policy, Permissions-Policy, and Content-Security-Policy headers.
v1.64
March 2026
  • Performance — Documents Audit: the Documents Audit tab now loads in a single database query instead of one query per document; no visible change in behaviour.
  • Health check endpoint: a new GET /health endpoint verifies the database connection and scheduler state, returning 503 if either is unavailable. Railway is now configured to use this endpoint.
  • Email links fixed: all email links (reports, password reset, admin reset) now read the app URL from the APP_URL environment variable; the old hardcoded fallback URL has been removed.
  • Report settings validation: the API now rejects invalid schedule values (e.g. unknown frequency or day names) with a 422 error before they reach the database.
  • Automated tests + CI: a pytest test suite covering document status calculation, authentication, access control, audit log preservation, and input validation now runs automatically on every push via GitHub Actions.
v1.63
March 2026
  • Fix Group by Holder: The "Group by Holder" option was incorrectly grouping documents by the Responsible field. It now correctly groups by the Holder field. Documents with no Holder appear under a "No Holder" tab.
  • New Group by Responsible: "Responsible" is now available as a Group by option in All Documents. Documents with no Responsible appear under a "No Responsible" tab.
v1.62
March 2026
  • Holder / Responsible split: Documents now have two separate person fields — Holder and Responsible. Category field visibility is configurable per category (admin+ only via the settings icon in the Categories tab). All document tables, the document modal, My Documents, and email reports show both fields separately.
  • My Documents role filter: My Documents now loads documents where you are either the Holder or the Responsible. A new filter lets you show All, Holder only, or Responsible only.
  • "Administration +" label: Users with the admin+ role see "Administration +" in the sidebar link and admin page title instead of "Administration".
  • Inline search in All Documents: A search box in the All Documents toolbar filters documents in real time by name, observations, holder name, or responsible name. Works alongside existing filters and group-by; persists across sessions.
  • Delete from Archived Documents: Each row in the Archived Documents tab now has a delete button. Confirming moves the document to Deleted Documents (same as the regular soft-delete flow).
v1.61
March 2026
  • 5-year retention block removed: the RBAC 91 5-year hold on permanent deletion is confirmed removed; deleted_at timestamp is still recorded on soft delete for audit purposes; the explicit confirmation modal introduced in v1.60 is the sole protection gate
v1.60
March 2026
  • Permanent delete — confirmation modal: the browser confirm() prompt has been replaced with a styled modal that clearly states the action is permanent and irreversible, requiring an explicit button click to proceed
  • Admin tabs reordered: tab order is now Users → Categories → Holders/Responsible → Validity & Alerts → Archived → Deleted Documents → Documents Audit
  • 5-year retention block removed: the RBAC 91 5-year hold on permanent deletion has been removed; the deleted_at timestamp is still recorded for audit purposes
v1.59
March 2026
  • Data integrity hardening (Sprint 2): audit logs for permanently deleted documents are now preserved forever — the document name is snapshotted into each log entry before deletion, and orphaned logs appear in the Documents Audit tab (admin view) as italic entries with a "Deleted" badge; permanent deletion is now blocked until 5 years after the document was soft-deleted (RBAC 91 retention); holder names now enforced as unique at the database level; login rate limiting moved from server memory to PostgreSQL so lockouts survive container restarts
v1.58
March 2026
  • Fix Deleted Documents tab showing active documents: admin_plus users now correctly see only soft-deleted documents in the Deleted tab (role check was excluding admin_plus)
  • Fix permanent delete failing silently: activity log references to the document are now removed before deletion, preventing a database constraint error; an error message is shown if the operation fails
v1.57
March 2026
  • Security hardening (Sprint 1): admin seed user now gets a randomly generated password printed once on first run; all document and user data rendered into HTML is now sanitized via escapeHtml() to prevent XSS; report settings write endpoints restricted to admin role; scope bug fixed in scheduler startup
v1.56
March 2026
  • Documents total card on Dashboard: a new informational card shows total active and archived document counts; updated in real time when switching status filters
  • Close document modal with ESC: pressing Escape closes the document modal; in Duplicate mode, if changes have been made, a confirmation prompt appears with "Discard Changes" / "Continue Editing" options
v1.55
March 2026
  • Preserve active group tab: after saving, editing, or deleting a document, the previously active group tab in All Documents is automatically re-selected instead of resetting to the first tab
  • Archive document: new Archive button (purple, box-archive icon) on every document row in All Documents, My Documents, and Dashboard; archived documents are hidden from all normal views and appear in a new "Archived" tab under Administration; archived documents can be unarchived at any time; all archive/unarchive actions are logged in the activity log
v1.54
March 2026
  • Toolbar label alignment: "FILTERS" and "VIEW" section labels in the All Documents toolbar are now vertically centered relative to the filter controls
  • Category filter refresh after save: saving a document now refreshes the Category filter dropdown in All Documents and My Documents views, preserving the current selection
  • New Document pre-fill from active tab: when Group By is set to Category or Holder and a tab is active, clicking New Document pre-fills the corresponding field with the active group's value
v1.53
March 2026
  • Toolbar — Filters / View split: the All Documents toolbar now shows two labeled sections separated by a vertical divider: Filters (Status and Category) and View (Group By), making the purpose of each control immediately clear
  • Revert sticky header: removed position:sticky from table headers and restored overflow:hidden on .titular-group and .group-card — the sticky approach broke the card layout and border-radius clipping
v1.52
March 2026
  • Fix sticky table header: removed overflow:hidden from .titular-group, .admin-panel, and .group-card — these containers were preventing position:sticky from working on table headers in All Documents, My Documents, and Dashboard views
v1.51
March 2026
  • No expiry date — disable + buttons: the Add (+) buttons next to Alert Before Expiry and Critical Alert are now also disabled (not just dimmed) when "No expiry date" is checked
  • Date mask DD/MM/YYYY: Issue Date and Expiry Date fields now accept input in DD/MM/YYYY format with automatic slash insertion; dates are validated on blur and converted to/from YYYY-MM-DD when communicating with the backend
  • Group By — horizontal tabs: in All Documents view, grouping now displays a horizontal tab bar instead of collapsible cards; clicking a tab switches the visible group without reloading data
  • Sticky table header: column headers remain visible when scrolling long document lists in All Documents, My Documents, and Dashboard views
v1.50
March 2026
  • No expiry date — disable alert fields: when the "No expiry date" checkbox is checked, the Alert Before Expiry and Critical Alert fields (and their + buttons) are also disabled and dimmed, consistent with Validity Period and Expiry Date
  • Sliding session: the login session now auto-renews — a background token refresh call is made at most once every 30 minutes while you work, so the 12-hour expiry resets with activity; no interruption or re-login required during an active session
v1.49
March 2026
  • Permanent documents: new "No expiry date" checkbox in the document form; when checked, Validity Period and Expiry Date are disabled; the document gets a green Permanent badge and shows ∞ in the Days column; Permanent documents appear in the Dashboard summary card (∞ icon) and in the Status filter dropdown; group-by ordering places Permanent between Valid and Pending Date
v1.48
March 2026
  • History modal — empty fields: Before and After columns now show — when the value is an empty string, not only when null
  • Filter toolbar — View Options label: a "View Options" label now appears at the left of the filter panel in both All Documents and My Documents
  • Filter toolbar — filter order: filters are now ordered Status → Category → Group by in All Documents, and Status → Category in My Documents
v1.47
March 2026
  • Filter toolbar — All Documents and My Documents: filter controls are now displayed in a dedicated toolbar panel with visible labels above each dropdown (Category, Status, Group by); title and New Document button are separated into a top bar; a Clear Filters button resets all filters at once; selected filters are persisted per user in localStorage and restored automatically when returning to the view
v1.46
March 2026
  • Fix — clear Observations / Location on Edit: clearing the Observations or Storage Location fields and saving now correctly empties the value; previously the field was kept due to a backend bug that ignored null values and forced empty strings to "None"
v1.45
March 2026
  • Storage Location: new optional field on documents to record where the file is stored (physical folder, cloud path, etc.); appears as a sub-line under the document name in All Documents and My Documents tables
v1.44
March 2026
  • All Documents — Group By: new Group By dropdown in the All Documents header lets you group documents by Status, Category, or Holder/Responsible; each group appears as a collapsible card showing the group name and count; cards start expanded and collapse or expand with a smooth animation; column sorting continues to work with grouping active
v1.43
March 2026
  • Search — highlight row: clicking Open in search results navigates to All Documents and highlights the matching row in blue; the highlight clears when you click the row or change page
  • Search — Clear button: new Clear button resets the search field and results list
  • My Documents — Holder column: the My Documents table now includes the Holder/Responsible column, matching the All Documents layout exactly
  • Delete user — recipient option: when permanently deleting a user who is also a report recipient, a checkbox lets admins simultaneously remove their email from the recipients list
  • My Account — Preferences spacing: the Preferences card is now visually separated from Change Password for consistency with other pages
  • Manual: added My Documents and Search sections; updated Login, Dashboard, Documents, Adding Documents, Users, and My Account sections to reflect current functionality
v1.42
March 2026
  • Duplicate Document: any document can now be duplicated via the Duplicate button (purple copy icon); the form opens pre-filled with all fields from the original — Save is disabled until at least one field is changed; duplication is recorded in the document's history log
  • My Documents — full actions: the My Documents view now shows Edit, Duplicate, History, and Delete action buttons for each document, matching the All Documents view
  • Search page: new Search item in the sidebar; type any term and press Search to find documents by name, observations, category, or holder; results show status, days remaining, and an Open button that navigates directly to the document in All Documents
v1.41
March 2026
  • Startup fix: fixed a crash on cold start caused by a database migration running too late; the app now starts correctly after Railway deployments
v1.40
March 2026
  • Draggable document modal: the New/Edit Document window can now be dragged by its title bar to reposition it and see the documents list behind; the window no longer closes when clicking outside — only Save or Cancel close it
  • My Documents — New Document: added "+ New Document" button in the My Documents view; opens the form pre-filled with the current user as holder and "Tripulação" as category
v1.39
March 2026
  • Landing page preference: each user can now choose the default page shown after login (Dashboard, All Documents or My Documents) in My Account → Preferences; the setting is saved per user and applied immediately on the next login
v1.38
March 2026
  • My Documents: new sidebar view showing only documents where the logged-in user is the holder/responsible; supports category and status filters and sortable columns; users without an associated holder see a friendly message
v1.37
March 2026
  • Delete user — fix: permanent user deletion now correctly removes associated document logs, password reset tokens, and nullifies activity log references before deleting the user record
v1.36
March 2026
  • Modal z-index fix: all modals (document, delete confirmation, etc.) were unresponsive due to the overlay intercepting clicks; corrected z-index so the modal box renders above the overlay
v1.35
March 2026
  • Password reset link — fix: the reset link sent by email now correctly opens the "Set New Password" modal instead of redirecting to the login screen
v1.32
March 2026
  • Self-service password reset: a "Forgot password?" link on the login screen lets users request a reset link by email; the link is valid for 1 hour and allows setting a new password without admin involvement
  • Admin password reset: admins can now reset any user's password directly from the Users table (key icon); a temporary password is generated and sent to the user's email; the user should change it immediately via My Account
v1.31
March 2026
  • Conditional Report — "Only send when attention required" toggle removed: this toggle has been removed from the UI; the Conditional Report now always behaves as conditional (only sends when documents require attention), which is its only meaningful mode
v1.30
March 2026
  • Conditional Report — unified info block: the "Only send when attention required" toggle is now integrated inside the schedule info block — the card is fully self-contained with schedule, status, firing condition, and toggle in one place
  • Conditional Report — condition description: the info block now explicitly describes when emails fire — thresholds are configured per document in the Documents view
v1.29
March 2026
  • Conditional Report — status indicator: the Conditional Report card now shows an Active/Paused status (green dot + label), matching the Scheduled Report card
  • Conditional Report — schedule summary: the card now displays the active schedule (frequency, day, time UTC-3) and the firing condition, making both report cards self-contained
v1.28
March 2026
  • Fixed — Activity Log email date window: the daily Activity Log email was reporting activity from the current day instead of the previous full day; all events (including late-night logins) are now correctly captured in the 00:00–23:59 UTC-3 window of the previous day
  • Notifications Settings — redesigned layout: the Report Settings tab has been restructured for clarity — Master Status card controls global on/off only; each report type (Scheduled and Conditional) now has its own dedicated Send Now button; the Conditional Report description is displayed directly in its card
  • Cancel Schedule removed: the red Cancel Schedule button has been removed; schedule state is now managed exclusively via the Scheduled Report toggle, consistent with the rest of the interface
  • Security — login rate limiting: after 10 failed login attempts from the same IP within 5 minutes, further attempts are blocked for 5 minutes; a successful login resets the counter
v1.25
February 2026
  • Notifications Settings: page renamed from "Report Settings"; now uses tab navigation with Report Settings and Activity Log Settings (Activity Log visible to admin+ only)
  • Documents Audit: column headers are now clickable for ascending/descending sort
  • Fixed: Documents Audit route conflict resolved — audit data now loads correctly
v1.24
February 2026
  • New role admin+: elevated role above admin with access to exclusive features; not selectable in the UI
  • Documents Audit: new tab in Administration (visible to all users) showing all documents with Created by, Creation date, Last modified by, and Last modified date; filterable by all columns; deleted documents shown in a distinct style; click to navigate directly to the document
  • Daily Activity Log email (admin+ only): configurable daily email with all login, logout and document activity in chronological order; timestamps displayed in UTC-3 (São Paulo, Brazil); configurable via Report Settings → Activity Log Settings
  • Fixed: email timestamps now display in UTC-3 (São Paulo, Brazil) with explicit timezone label
v1.23
February 2026
  • Fixed: Delete modals for Users, Categories and Holders now show a single Cancel button in the footer — action choices (Keep / Delete) are inline; no more duplicate or inline Cancel buttons
v1.22
February 2026
  • Fixed: Delete button missing for active categories — now correctly shows Edit + Deactivate + Delete, consistent with Holders/Responsible
v1.21
February 2026
  • Admin tables: Actions column and header now hidden for non-admin users in Users, Categories, and Holders/Responsible tabs
  • Delete Category: confirmation modal now shows two options — keep documents (move to Unassigned) or move them to Deleted — matching the Delete Holder flow
  • Fixed: Delete button was missing for active categories — now shows correctly alongside Edit and Deactivate, consistent with Holders/Responsible
v1.20
February 2026
  • Admin page: non-admin users no longer see the "Validity & Alerts" and "Deleted Documents" tabs; Users, Categories and Holders/Responsible remain visible in read-only mode
  • Fixed: clicking Cancel on any "Add option" prompt no longer shows an "Invalid number" error — the dialog simply closes with no action
v1.19
February 2026
  • Document rows are now color-coded by status: soft yellow (Due Soon), soft orange (Critical), soft red (Expired) — applies to Dashboard and Documents views
  • Clicking a status card on the Dashboard resets the category filter to "All", showing all matching documents across categories
  • Password requirements: passwords must be at least 8 characters and contain both letters and numbers; an inline warning appears as you type if the requirement is not met, and disappears once it is; applies to user creation (Admin) and password change (My Account)
  • Report Settings: time selector rebuilt as a single HH:MM field from 00:00 to 23:30 in 30-minute steps
  • Report Settings: Cancel Schedule button updated to match the standard button style
v1.18
February 2026
  • Dashboard: "All" tab added — shows all documents from all categories when no filter is selected
  • Dashboard summary cards are now clickable — click any card to filter documents by that status; click again to clear
  • Alert Before Expiry now defaults to 60 days on all new documents
  • Observations field now defaults to "None" if left blank; all existing documents with no observations have been updated
  • Status badge colors improved — more distinct yellow (Due Soon), orange (Critical), and red (Expired)
  • Dashboard table no longer shows Alert / Critical Alert columns (cleaner view)
  • Documents table now shows Critical Alert column alongside Alert
  • Report Schedule: time selector simplified to a single HH:MM dropdown in 30-minute increments
  • Saved schedule now displayed below the form showing frequency, time, and active status with option to cancel
  • Session is now persistent — users remain logged in until they close and reopen the browser
  • Fixed: Expiry date calculation now uses proper calendar arithmetic — e.g. 01/02/2026 + 3 Years correctly produces 01/02/2029 regardless of leap years
v1.17
February 2026
  • 4-level status system: Valid → Due Soon (yellow) → Critical — Expiring Soon (orange) → Expired (red)
  • New Critical Alert field on every document (default: 10 days, configurable)
  • Critical Alert Options section added to Admin → Validity & Alerts
  • Email report updated with Critical section and 3-card summary
  • All existing documents automatically inherit 10-day critical threshold
  • Recipient removal confirmation dialog translated to English
  • Changelog translated to English
v1.16
February 2026
  • User Manual added — accessible from the sidebar under Help
  • Sidebar now includes a Help / Manual link
v1.15
February 2026
  • Email reports redesigned: organized by category within each section
  • Report language changed to Portuguese (BR)
  • Subject line is now dynamic — shows counts or "Tudo em dia"
  • Password visibility toggle (eye icon) added to all password fields
  • Users can be added as report recipients directly from the user creation/edit form
  • Expired documents show "Vencido há X dias" (days overdue as positive number)
v1.14
February 2026
  • Sidebar version label format updated to "Version X.XX © YEAR"
  • About page: Changelog now loads inline, no new tab
v1.13
February 2026
  • Fixed: delete confirmation modal not working in any Admin section
v1.12
February 2026
  • Full Safari compatibility rewrite
  • Users admin: Edit, Deactivate, and Delete actions with cascade options
  • Holders admin: same three actions with cascade options