← Back to IT Board
DTTASA
IT Knowledge Base
Select a guide to open Β· All guides cover the full IT Board and related workflows
Operations
πŸ—“οΈ
IT Role & Daily Operations
What the IT job is, the daily/weekly routine, the "Today" worklist on the dashboard, and the standing daily duty: review Diagnostics & the error log for full org health.
All IT Staff Β· IT Head Β· SA
πŸ›‘οΈ
Accountability, Escalation & Shift Access
The tagged daily task list + activation, mandatory resolution notes, Escalate to SA on the error log, end-of-shift submit + auto PDF report, and shift-based access (sensitive sections lock outside your shift).
All IT Staff Β· IT Head Β· SA
πŸ–₯️
Dashboard & Overview
How the IT Board is structured, the three widget rows, sidebar navigation, and role-based access.
All IT Staff
πŸ§‘β€πŸ’Ό
Staff Registration & Accounts
Processing ITR queue requests, completing the full registration form, setting org email and credentials. Volunteer registrations: dept stays inactive until VMEM activates (Phase 5).
All IT Staff
πŸ›‘οΈ
Two-Step Sign-In (MFA)
The emailed 6-digit sign-in code: when it appears, how device trust works, idle locking, lockouts, and how IT supports users who can't receive their code.
All Staff Β· IT Support
πŸ”‘
Password & PIN Resets
Approving password reset requests, handling PIN reset links, lockout resolution, and doc-block management.
All IT Staff
Lifecycle
βœ…
Onboarding IT Steps
Completing IT-owned onboarding steps for new staff, marking steps, adding notes, and bulk completion.
All IT Staff
πŸšͺ
Offboarding IT Confirmation
Reviewing departing staff, confirming all IT steps are completed before signing off the offboarding.
All IT Staff
πŸ“€
Document Handover to HR
After you register a new staff member or volunteer, push their applicant documents β€” submitted forms, signed letters, photos and ID β€” into their HR Personal File. The Government ID stays locked (VMEM approval needed to view).
All IT Staff
πŸ‘€
Profile Health & Changes
Reviewing profile health flags, approving or declining profile change requests, querying to HOD.
All IT Staff
Security & Infrastructure
πŸ›‘οΈ
SOC Monitor & Security Score
Reading the security score, filtering live events, nudging profiles, and acting on security signals.
All IT Staff Β· IT Head Β· SA
⚑
Incident Management
Logging and tracking IT incidents from P1 critical to P4 informational, adding updates, and resolving.
All IT Staff Β· SA Directives
πŸ”
Access Control & Permissions
Understanding the L1–L5 access level matrix, updating levels, and the role hierarchy rules.
SA Only
⭐
IT Feedback & Feedback Centre
The IT ticket-satisfaction view (now open to all IT users), and the SA-only Feedback Centre that combines IT ticket feedback + org feedback & surveys in one tabbed page.
All IT Staff Β· SA
Assets & Communications
πŸ–¨οΈ
Asset Register
Adding and managing IT hardware, software licences, and infrastructure. Serial numbers, warranty, tags.
All IT Staff
πŸ“’
IT Announcements
Composing and broadcasting IT notices portal-wide, setting priority, audience, and understanding delivery channels.
All IT Staff
πŸ”§
Maintenance Windows
Scheduling, monitoring, and completing planned maintenance. Notifying staff and managing window status.
IT Head Β· SA
System & Administration
βœ‰οΈ
Mail Queue & Mail Engine
The provider router (Resend β†’ SMTP fallback, mail never silently fails), live per-provider counters, monitoring outbound delivery, retrying failures, and escalating persistent errors.
All IT Staff Β· SA
πŸ“Š
IT Metrics & SLA Dashboard
Reading KPI cards, understanding SLA periods, and using feedback data to improve IT service quality.
IT Head Β· SA
βš™οΈ
System Config, Audit & Test Mode
Using Test Mode safely, toggling Maintenance Mode, reading the audit log, and exporting records.
IT Head Β· SA
🩺
Diagnostics Console & Data Source
Reading the live error feed, and the Data-Source strip that confirms Diagnostics shows PRODUCTION (never demo/test) with live test-mode + WAT timestamp.
IT Dept Β· IT Head Β· SA
Support Desk
🎧
Help Desk & Live Chat
Answering support tickets end-to-end (priority, assign, reply, resolve, escalate) and running real-time Live Chat sessions β€” picking up, replying, ending, and converting a chat to a ticket.
All IT Staff Β· IT Head Β· SA
πŸ“–
Handbook Library
Reviewing the staff handbook categories and documents from the IT Board: publishing / unpublishing, spotting drafts vs live, and deleting stale documents.
All IT Staff
πŸͺͺ
Contract Access
Confirming portal access after a contract renewal, and the non-renewal revocation ladder: limit access (only My Hub reachable) then full suspension if still unsigned.
All IT Staff Β· IT Head Β· SA
Applicant Tools
πŸͺͺ
Applicant IT Tools
Verified Applicant Photos (HR-verified passport/website photos for ID), Applicant Portals (sign-in & temp-password tracking), and how Doc Access Blocks fit the applicant-to-staff flow.
All IT Staff
Monitoring & Oversight
⏳
Probation Monitor
Track the probation status of every staff member (Governance excluded). Used for follow-up, and to decide whether a staff member's website profile may be cleared to Communications. A profile must not be approved to the public site until probation is passed.
IT Dept Β· IT Head Β· SA
πŸ“‘
Monitoring & Oversight
Security Alerts triage, Suspensions, Stale Shifts, User Activity, Portal Presence, Applicant Activity, Consent & Location, and the Idealist Postings feed. Most lock off-shift.
All IT Staff Β· IT Head Β· SA
🧭
Team Accountability
Lodging conduct incidents and logging team-member absences for your department; every report forwards to the Head of HR for review.
IT Head Β· Dept Heads Β· SA
DTTASA
IT Knowledge Base
IT Role & Daily Operations
What the IT job is, the daily routine, and the standing duty to keep org health green.
All IT StaffIT HeadSA
01The IT role in one line

Keep the portal trustworthy and people unblocked. IT provisions and maintains staff/volunteer accounts, runs the Help Desk, and owns the error/incident loop so failures are caught and fixed before they spread. You are the first line for anything that stops a colleague from working and the last line that confirms the portal itself is healthy.

02What you do in the IT Board
AreaYour job
Registration & accountsWork the ITR queue β€” process new staff/volunteer requests, complete the registration form, set org email + credentials. (Volunteer dept activation waits on the VMEM.)
CredentialsApprove password resets, issue PIN-reset links, clear lockouts, manage doc-blocks.
Onboarding / offboardingTick the IT-owned onboarding steps for new joiners; confirm all IT steps are done before a leaver is signed off.
Help Desk & incidentsAnswer tickets and live chats; log and track incidents P1–P4 to resolution.
Assets, announcements, maintenanceMaintain the asset register, broadcast IT notices, schedule maintenance windows.
Mail & system (IT Head / SA)Monitor the outbound mail queue and retry failures; Test Mode, Maintenance Mode, audit log, access levels.
03The "Today" worklist (dashboard home)

The IT Board home opens with a Today Β· IT Daily Operations panel β€” your single "what needs doing right now" view. It shows live counts (each clickable to jump straight to that section):

RowWhat it counts
Diagnostics β€” unresolved errors & org healthOpen rows in the live error log. This is the headline. Click it to open the Diagnostics Console.
Registration queue (ITR)Requests waiting to be processed.
Password resets Β· PIN resetsPending credential requests.
Incidents β€” P1 / P2 openHigh-severity incidents not yet resolved.
Mail β€” delivery failuresOutbound emails in an ERROR state.

A green dot means clear, amber/red means it needs attention. Beneath the counts is the Daily org-health checklist β€” tick each item as you do it. Completions are saved to a dated record (itDailyOps), so there is an audit trail of who reviewed org health each day and when (in WAT).

04Daily routine (every working day)
Checking the Diagnostics page for full org health β€” especially the error log β€” is a standing, every-day duty, not an occasional task. A silent error sitting unresolved in errorLog is how a small fault becomes an outage or a blocked applicant. Start every shift here.

Run these at the start of the day (and glance again before you log off):

#Daily checkWhere
1Open Diagnostics and review the error log β€” triage every unresolved row. Fix the class of error (so it can't recur for anyone), not just the one row. Re-verify the row clears. Escalate anything near the 6h gate.Diagnostics Console (β™₯ in headers)
2Confirm the Data-Source strip reads PRODUCTION and Test Mode is OFF (unless an SA is deliberately testing).Diagnostics β†’ Data-Source strip
3Clear the mail queue β€” retry any delivery failures.IT Board β†’ Mail Queue
4Check for unattended P1/P2 incidents and the ITR / reset queues.Today panel
5Tick each item on the Today panel's Daily org-health checklist.Today panel
05How errors must be resolved

Every Diagnostics fix is universal and protective: resolve it for every future user (never a one-person patch), add a fallback where one exists, and search for the same pattern elsewhere so the whole class is fixed at once. Never hide a permission error on the client β€” fix the rule. Re-check Diagnostics after deploying to confirm the row is gone for the whole role.

Weekly, beyond the daily loop: review the asset register for accuracy, check expiring licences/warranties, review the audit log for anything unusual, and confirm scheduled maintenance windows are still correct.
DTTASA
IT Knowledge Base
Accountability, Escalation & Shift Access
How your shift work is tracked end-to-end, how to escalate, and how access is scoped to your shift.
All IT StaffIT HeadSA
01Your tagged daily task list + activation

The Today Β· IT Daily Operations panel on the dashboard is tagged to you β€” it tracks what you were assigned vs. what you did, stored per day at itShiftTasks/{uid}_{date} (a fresh list rolls over automatically each day, West Africa Time).

Activation is required. Until Head of IT / SA opens your profile (IT board β†’ Registered Users / directory β†’ your profile) and clicks Assign & Activate IT Daily Operations, your list shows a "stale / awaiting activation" card and cannot be ticked. Once activated, your tagged list appears and a daily record is kept of who completed the checks and when.

The task list itself is editable by SA / Head of IT via system/itDailyTaskTemplate (defaults are coded in). The headline task is always "Reviewed Diagnostics β€” error log & full org health."

02Resolution acknowledgment β€” mandatory note

When an error is resolved (by SA, by IT, or remotely on command), the loop is not closed until you acknowledge it with a note. On the Diagnostics page, a resolved error shows Acknowledge resolution (note required).

The note is mandatory β€” you cannot acknowledge with an empty note. It is saved on the error record (with your name + WAT time) and stamped onto your shift tasks as evidence, and it prints in your end-of-shift PDF report.
03Escalate to SA (error log)

Every unresolved error row on the Diagnostics page has a direct Escalate to SA button (alongside the existing Head-of-IT β†’ Exec two-stage). Use it when an issue needs the Vice President's attention directly.

On submit itDetail
Records the escalationWrites escalation.sa* on the error (your name + note + time). It does NOT disturb the existing Head-of-IT/Exec flow or its 6-hour gate.
Notifies the VPIn-app notification + an email to vicepresident@dttasa.org with the full report and a "Open in Diagnostics" deep-link button straight to that error.
Counts as evidenceStamps your shift tasks so the "review error log" task is verified, not just self-ticked.
A note is required to escalate. Copy Full Report on any error now copies every tab (trace, network, console, auth, device, backend, escalation, acknowledgment) plus the complete raw JSON β€” paste it anywhere for support.
04End of shift β€” submit + verification + PDF report

The Today panel shows a live shift countdown (from your scheduled end time, WAT). When you finish, click Submit shift report. The system runs completion verification:

  • The Diagnostics task counts as verified only if backed by real evidence (an escalation or a resolution acknowledgment during the shift) β€” or if there were no unresolved errors. Otherwise it's flagged "claimed but unverified."
  • Other tasks are counted as done (self-attested).

On submit, the list locks for the day and a summary shows done/verified/missed. A PDF report (DTTASA letterhead) is generated and emailed to Head of IT + SA, and a copy is filed to the all-doc board.

If you don't submit by your shift end, the system auto-closes your shift ~15 minutes after, builds the same report (flagging what was missed/unverified), and emails Head of IT + SA automatically. So an incomplete shift is still recorded β€” submit on time to control the narrative.
05Shift-based access β€” sensitive sections lock off-shift

To protect staff and applicant data, sensitive sections are available only during your shift. Access opens automatically 1 hour before your shift and stays open until you end it β€” you don't request anything.

StateWhat you see
On shift (or 1h before)Full access β€” everything visible.
Off shiftYou can still use the board, but every sensitive section is hidden with an "off-shift" banner. The full locked set is: SOC Monitor, Security Alerts, User Activity, Portal Presence, Applicant Activity, Registration Queue, Registered Users, Password Requests, PIN Resets, Lockout Alerts, Doc Access Blocks, Mail Queue, Incidents, Asset Register, Access Matrix, Consent & Location, Profile Changes, and Profile Health. The Diagnostics link in the header is hidden off-shift too. Your Today panel, profile, and this guide stay available.
VMEM-granted windowIf you need access outside your shift, the VMEM grants a timed window. You'll get a notification and a live countdown; when it hits zero, access locks again.
SuperAdmins and the Head of IT always have full access. If your profile has no shift times configured, you are never locked β€” the lock only applies once a shift window is set for you.
DTTASA
IT Knowledge Base
Dashboard & Overview
How the IT Board is structured, how to navigate it, and what each widget row means.
All IT StaffIT Board v3.0
01What is the IT Board?

The IT Board is the central command interface for DTTASA's IT & Digital Infrastructure department. It is accessible only to IT staff and Super Admins via portal.dttasa.org/it-board.html, and requires a re-authentication step each session for security.

Everything on the board updates in real time β€” no manual refresh is needed. Data is pulled live from Firestore and reflected instantly as other team members take actions.

02Dashboard Widget Rows

The main dashboard displays three rows of live stat cards:

βš™οΈ Operations Row

Registration Queue Β· Password Requests Β· PIN Resets Β· Onboarding Steps Β· Live Shifts. These reflect daily IT workload.

πŸ›‘οΈ Security Row

Security Score Β· Active Lockouts Β· Stale Shifts Β· Profile Health. Click any card to navigate directly to that section.

πŸ“£ Communications Row

IT Announcements Β· Asset Register Β· System Uptime. Click any card to jump to its section.

Live data: Every counter on the dashboard refreshes automatically via Firestore listeners. You never need to reload the page during a session.
03Navigation & Sidebar

The left sidebar is divided into labelled groups: Operations, Monitor, Lifecycle, People, System, Security. Click any item to jump to that section. The board remembers your last-visited section and scroll position across sessions.

Red and amber badges on sidebar items show pending counts β€” prioritise items with a red badge.

04Role-Based Access
RoleWhat they see / can do
IT StaffAll core sections: registration, password/PIN, onboarding, assets, announcements, mail, profile
IT Head (isHeadOfIT)All above + System Config, Audit Log, Access Matrix, Bulk Ops, Incident severity, Maintenance scheduling
Super Admin (SA)Everything, including delete actions, SA directives on incidents/tickets, and all SA-only sections
Important: Never share your IT Board session. The board is re-auth protected β€” if you step away, the session will require your password again when you return.
DTTASA
IT Knowledge Base
Staff Registration & Accounts
Processing ITR queue requests, completing the full registration form, and setting credentials.
All IT StaffIT Head
01The Registration Queue

When HR approves a new hire, they raise an IT Registration Request (ITR). It first goes to the Founding Executives for review and organisation-email provisioning β€” IT can only act once the card shows EMAIL ASSIGNED (status registration_ready). Requests still showing PENDING are waiting on the Exec, not on IT.

Who can register? Any IT staff member can process a queue request. IT Head and SA can also register users directly without a queue request using + Register User.
Notification chain (every hand-off emails the next actor): HR submits β†’ the Founding Executives are emailed that a request awaits review Β· Exec approves β†’ HR gets an in-app alert Β· Exec provisions the org email β†’ support@ and hr@ are emailed that the record is registration-ready Β· Exec declines/discontinues β†’ HR is alerted + emailed with the reason Β· IT completes the registration β†’ HR is alerted + emailed that the account is live. If a stage seems stalled, check the Mail Engine panel (Mail Queue section) for the dispatch β€” and a daily watchdog automatically re-reminds the responsible actor (Exec / IT / VMEM) for any registration stuck longer than 48 hours.
02How to Complete a Registration
  1. 1Find the pending ITR in the queue. Click Start Registration β€” this pre-fills the registration form with the applicant's details.
  2. 2Verify the full name, personal email, and org email (e.g. john.doe@dttasa.org). The org email must follow the correct naming convention.
  3. 3Set the department, functional role, access level (default L2 for new staff), and joining date.
  4. 4A 4-digit PIN is auto-generated. You can regenerate it with the refresh button. The PIN is included in the welcome email.
  5. 5Click REGISTER & SEND WELCOME EMAIL. This creates the Firebase Auth account (via an isolated secondary session β€” your own login is untouched), writes the user profile + private personal data + hashed security PIN, seeds the leave balance and the 90-day probation record, alerts rota managers, queues the welcome emails, and pushes a Digital ID job to Communications.
  6. 6Final step β€” Complete. Open the person's queue card and click Complete. This verifies the account exists AND matches the exec-approved email, ticks the onboarding steps, advances the recruitment pipeline, and notifies HR. Registration alone does NOT close the request.
ITR Lookup: anyone arriving with an ITR reference (e.g. ITR-2026-007) β€” or just a name or email β€” can be looked up from the Registration Queue header. The record modal shows full identity & contacts, the complete lifecycle timeline (who actioned each stage and when, WAT), decline reasons, credential-hold state, and linked applicant records β€” everything IT needs to address a request on the spot.
Prefill & auto-match: Start Registration prefills everything HR entered β€” name, emails, phone, country, gender, nationality, photo (counts as the profile photo unless you upload a replacement), department/role (locked on pipeline requests), contract, working days and shifts. If HR's value isn't in a dropdown's list it is added automatically, and the timezone snaps to the selected country (you can still override it). The floating HR CANDIDATE DATA panel shows HR's original entries so you can match against the paperwork.
Two welcome emails (staff): the org inbox receives the portal login details (temp password, Employee ID, EOM PIN); the personal email receives only the org-email/webmail credentials. Volunteers receive NOTHING yet β€” their credentials are held until the VMEM approves the department activation (the VMEM is notified automatically at Complete).
Email confirmation: After registration, verify in the Mail Queue that the welcome email was sent successfully. If it shows ERROR, use Retry. Note: only a System Administrator account can perform the final Register action.
03After Registration
ActionWhoWhere
Mark ITR steps complete (system login, monday.com, equipment)Any IT staffOnboarding IT Steps section
Verify welcome email deliveredAny IT staffMail Queue section
Confirm onboarding steps with HRAny IT staffVia HR Board or direct communication
04Registration Statuses
StatusMeaningIT Action
PENDINGHR submitted β€” awaiting Executive reviewNone (Exec has been emailed)
EXEC APPROVEDExec approved β€” org email not yet provisionedNone (Exec finishing email setup)
EMAIL ASSIGNEDregistration_ready β€” org mailbox provisioned; support@ emailedStart Registration β†’ Register β†’ Complete
CORRECTION REQUIREDExec declined for incorrect details β€” HR alerted + emailed; HR corrects and resubmits from the pipeline drawer (same reference)Wait for the corrected resubmission
AWAITING VMEMpending_vmem_approval β€” volunteer registered; credentials HELD until VMEM activates the department (VMEM notified)None β€” VMEM acts
REGISTEREDComplete step done β€” account verified, HR notified, pipeline advancedNo further action
DISCONTINUED / CANCELLEDExec discontinued the process, or IT Head/SA cancelledNo action β€” archive
Cancelling a request: Only IT Head or SA can cancel an ITR. Use this only if the hire did not proceed. Always add a reason.
05Department & Role are Locked (Pipeline-Sourced ITRs)

When the ITR record came from the HR recruitment pipeline (i.e. sourcePipelineId is set on the record), the Department and Functional Role selects are locked on the registration form β€” shown as disabled with a gold border and a "πŸ”’ Locked β€” set by Head of HR on the recruitment request" tooltip.

This is intentional. The Head of HR set those values once, on the originating recruitment request. They flow through every downstream form so an IT staffer cannot accidentally reclassify the new starter into the wrong dept or role.

ScenarioWhat IT does
ITR came from HR pipeline (normal path)Dept + Role visible but locked. Proceed with the rest of the form.
Dept or Role is genuinely wrongAsk the Head of HR to edit the underlying recruitmentRequest. Do not work around the lock by editing the ITR or the user doc post-registration.
Manual / SA-direct registration (no sourcePipelineId)Dept + Role show as editable selects β€” IT picks them.
06Applicant Linkage Stamped at Registration

When you complete an ITR that came from the recruitment pipeline, the system stamps three new fields onto the new users/{uid} record so the offboarding sweep can later find the staff member's original applicant trail:

FieldWhat it holds
personalEmailThe email the applicant originally applied with (different from their @dttasa.org work email).
applicantId / linkedFromApplicantIdThe original recruitmentApplicants doc ID. Stable across email changes.
linkedAtServer timestamp at conversion β€” "joined from application X on date Y".

Symmetrically, the original recruitmentApplicants/{id} doc gets stamped back with linkedUid, convertedToStaffAt, and convertedToStaffByUid. This bidirectional link is what powers the SA "Delete User Completely" applicant-sweep and the recruitment Re-Hire warning later.

You don't need to do anything different here β€” the stamping happens automatically inside Complete Registration. This entry is documented so you understand why the linkage exists if you ever need to support an SA offboarding or applicant-deletion query.
07Access Levels & the Deputy Lead Tier (L3)

The portal's role-tier ladder is set at registration via the accessLevel field on users/{uid}:

LevelTierSource field
5SuperAdmin (Founding Executive)Email allow-list
4Head of DepartmentaccessLevel: 4 + dept-specific flag (hrLeadFlag, isHeadOfOperations, isHeadOfIT, isHeadOfCommunications, isDeptHead)
3Deputy Lead (NEW β€” added 2026-05-25)isDeputyLead: true + deputyOfDept: '<canonical dept name>'
2Observer (read-only)accessLevel: 2
1Staff (default)accessLevel: 1

Default at IT registration: always accessLevel: 1. Do NOT manually set isDeputyLead or any L4 flag during registration β€” those are managed separately by SA Control (or by the Head of the new staff member's department after registration). The Deputy promotion flow is via the makeDeputy Cloud Function, never a direct Firestore write.

If you ever see an ITR form pre-filling an accessLevel higher than 2, double-check with the Head of HR before completing β€” accidental over-privileging is the kind of error system_audit_log tracks but cannot prevent at the form layer.
08Deputy Lead Cloud Functions (Reference)

Three Cloud Functions in functions/index.js manage Deputy Lead state β€” IT does not call these directly, but should understand them for support purposes:

FunctionCallerEffect
makeDeputy({ uid, reason })SA (any dept) OR Head of target's deptFlips isDeputyLead:true, deputyOfDept, bumps accessLevel to 3, writes audit + notifications.
revokeDeputy({ uid, reason })SA OR Head of Deputy's home deptFlips flags off, demotes to L1, writes audit + notification.

Where the buttons live:

  • HR Head: profile drawer of any HR-dept staff member in HR Ops Monitor β†’ Make Deputy / Revoke Deputy.
  • Other Heads: same pattern on their dept dashboards (Ops Dashboard, IT Board, Comms Board, etc.).
  • SA: sa-control.html β†’ Deputy Leads section. Lists every active Deputy across all depts + a search-and-promote form for any user.
For IT support queries: if a user reports "I can't do X that I used to be able to do", check users/{uid}.isDeputyLead and deputyOfDept. A revoked Deputy is back at L1 β€” check the audit log under action: 'deputy_lead_revoked' for the reason. SA or the Head can re-promote with one click if it was a mistake.
DTTASA
IT Knowledge Base
Two-Step Sign-In (MFA)
Every sign-in is protected by a one-time code emailed to your inbox β€” what to expect and how IT supports it.
All StaffIT Support
01What it is

When you sign in, the portal emails a 6-digit code to your account inbox. Enter it on the verification screen to open your portal. Even if someone learns your password, they cannot get in without access to your email β€” this is what keeps your account (and the organisation's data) safe.

02When you'll be asked
SituationCode needed?
Signing in after logging outYes β€” always
Signing in on a new device / browserYes
Returning on a trusted device within the trust window (default 30 days)No
After long inactivity (default 30 minutes) β€” the portal locks itselfYes β€” click Resend code on the lock screen
Trust this device: ticking the box on the verification screen remembers your device for the trust window so daily work stays smooth. Never tick it on a shared or public computer.
03Rules & safety

Codes are valid for 10 minutes and work once. Five wrong attempts locks the code β€” use Resend code (60-second cooldown, max 3 sends per 15 minutes). Never share a code with anyone β€” DTTASA staff will never ask for it. If you receive a code you didn't request, your password may be compromised: change it and contact support@dttasa.org immediately.

04IT support playbook
User reportIT action
"No code arrived"Check the Mail Engine panel (Mail Queue) for the dispatch β€” codes ride the priority lane; ask them to check spam, then Resend.
"Locked out after wrong attempts"A fresh Resend issues a new code β€” the lock applies per-code, not per-account.
"Lost access to their inbox"Restore mailbox access first (org email = Exec; personal = provider). MFA correctly blocks sign-in until the inbox is reachable.
Org-wide emergencySA only: the kill-switch lives at system/config.mfa.enabled β€” flipping it off drops the gate portal-wide in seconds. Every sign-in event is audited in All-Org-Docs.
DTTASA
IT Knowledge Base
Password & PIN Resets
Handling password change requests, PIN reset links, lockout alerts, and document access blocks.
All IT Staff
01Password Change Requests

Staff raise a password reset request when they cannot use the standard self-service reset flow (e.g. no access to their personal email). IT reviews and either approves or declines.

  1. 1Go to Password Requests in the sidebar. Find the pending request.
  2. 2Verify the staff member's identity if in doubt β€” cross-reference their profile in the Staff Directory.
  3. 3Click Approve & Send Link. A Firebase password reset email is sent immediately to their registered org email.
  4. 4To decline, add a note in the note field explaining the reason, then click Decline.
Duplicate requests: Staff sometimes raise multiple requests. Check if a reset link was already sent before approving again β€” it may still be valid.
02PIN Reset Requests

Staff use a 4-digit security PIN for PIN-gated pages (HR Ops Monitor, EOM, Announcement Hub). When forgotten, they raise a PIN reset request.

  1. 1Go to PIN Resets in the sidebar.
  2. 2Click Approve & Send Link. A secure one-time link (valid 24 hours) is emailed to the staff member's personal email.
  3. 3The link opens a page where they set a new PIN. It expires after 24 hours or one use.
Reset limit: A maximum of 3 PIN resets are allowed per staff member per 6-month rolling window. The system blocks a fourth attempt. Escalate to an SA to override β€” do not attempt workarounds.
03Lockout Alerts

An account is locked after repeated failed login or PIN attempts. A lockout alert appears in the Lockout Alerts section and deducts 8 points from the Security Score per active lockout.

  1. 1Contact the staff member to confirm it was them attempting to log in (not a third party).
  2. 2If confirmed safe, click Resolve on the alert. The lockout is cleared and the Security Score recovers.
  3. 3If suspicious, escalate to IT Head or SA before resolving.
04Document Access Blocks

HR can initiate a portal access block when a staff member's compliance document has expired. IT sees the pending block in Doc Access Blocks and must confirm it to activate the restriction.

Do not reactivate a doc block without HR sign-off confirming the document is resolved. IT's role here is confirmation only β€” HR owns the decision.
DTTASA
IT Knowledge Base
Onboarding IT Steps
Completing IT-owned onboarding steps for new staff, managing notes, and bulk completion.
All IT StaffIT Head
01What are IT Onboarding Steps?

Each new staff member has an onboarding checklist configured by the Super Admin. IT owns specific steps within that checklist β€” by default: System login created, monday.com access granted, and Uniform/equipment issued. The exact steps may vary depending on the role.

Ticking each step in the IT Board updates the staff member's onboarding progress visible to HR in real time.

02How to Complete Steps
  1. 1Go to Onboarding IT Steps in the sidebar. Cards for all staff with pending IT steps appear here, sorted by longest wait first.
  2. 2Tick each checkbox as you physically complete the step. The card shows IT-specific progress (e.g. 2/3) prominently.
  3. 3If all steps are complete, click Mark All IT Complete (IT Head only) to finish all at once.
Days-in-org badges show urgency: grey = under 14 days, amber = 14+ days, red = 30+ days. Prioritise red cards.
03Unchecking a Step (Override)

Only the IT Head can uncheck a completed step (e.g. if it was ticked in error). Click the ↩ undo button next to any completed step. An override reason is recorded in the audit log.

04Adding Notes

IT Head can add notes to a candidate's onboarding card (e.g. "Laptop not arrived yet β€” step deferred"). Click Add Note. Notes are saved with your name and date and displayed on the card for the team to see.

Notes are permanent β€” they cannot be deleted. Keep them professional and factual.
DTTASA
IT Knowledge Base
Offboarding IT Confirmation
Reviewing departing staff cases and confirming IT-side completion before final sign-off.
All IT Staff
01What is IT Offboarding Confirmation?

When a staff member departs, HR initiates an offboarding process through the Exec Board. Once exec-level steps are completed, IT receives a confirmation request to sign off the IT side of the departure before the case is closed.

02What IT Must Confirm
  • Firebase Auth account has been disabled or deleted
  • Org email account has been closed or forwarded appropriately
  • Monday.com access has been removed
  • All physical equipment has been returned and logged in the Asset Register
  • Any ongoing IT tickets linked to the user are closed or reassigned
Do not confirm until all steps above are physically complete. A premature confirmation creates a security gap.
03How to Confirm
  1. 1Go to Offboarding in the sidebar. Find the pending case.
  2. 2Review the staff member's details and departure reason.
  3. 3Tick all required IT confirmation checkboxes.
  4. 4Click Confirm IT Steps Complete. This updates the offboarding record and notifies HR that IT has signed off.
After IT confirmation, HR will perform the final offboarding close. You do not need to take any further action unless HR contacts you.
04What Happens After HR Marks "Offboarding Completed"

Once HR flips an offboardingRequests doc to status: completed, an automatic Cloud Function chain takes over server-side. IT does not need to do anything here β€” this section is documented so you understand the chain and can support SA / HR queries.

StepWhat runs
1. Identity resolutionReads users/{uid}.personalEmail + applicantId. Falls back to reverse-lookup via recruitmentApplicants.linkedUid.
2. Staff sweep_deepDeleteUserSweep β€” purges every Firestore document the staff member touched, all users/{uid}/* subcollections, every Cloud Storage object under profile-photos/{uid}/, signatures/{uid}/, announcements/attachments/{uid}/; redacts system_audit_log + errorLog rows; deletes the primary Firebase Auth account.
3. Applicant sweep_deepDeleteApplicantSweep β€” wipes the original applicant trail (recruitmentApplicants, applicantPortals, photo/doc/interview/offer tokens, applicant Storage, secondary Auth tenant user). The compliance archive applicantArchives is retained but URLs are redacted to redacted://deletion-cert/… tombstones.
4. Combined Deletion Certificate PDFOne certificate covering both sweeps + storage objects + auth records + retained-record summary. Uploaded to deletion-certificates/{requestId}/cert.pdf in Cloud Storage.
5. Archive to All DocsRow written to orgDocuments with category: "Deletion Certificate". Surfaces in All Docs β†’ Deletion Certificates (SA-only tab).
6. Google Workspace deprovisionAuto-fires at the end of the chain via the GAS endpoint. Suspends the @dttasa.org account, scrubs Drive footprint, expels from Chat spaces. Skipped if the sweep reported critical errors (we never deprovision a half-purged user).
Bug-fix 2026-05-24: the GAS endpoint previously sometimes sent the deprovision email to test@dttasa.org instead of the actual departing staff. Root cause was a non-deterministic keys.find() in the GAS startBackgroundPurge worker picking stale script properties. Fixed by binding each scheduled purge to its trigger UID. If you see GAS emails landing on the wrong address again, raise it to the Head of IT immediately β€” the fix is in the deployed GAS scripts at /documents/gas-codes-fixed/.
05SA Direct Delete (no offboarding workflow)

The Super Admin can bypass the offboarding workflow entirely via SA Control β†’ Delete User. This is for test accounts, GDPR removal requests, and stale records where the full HR offboarding ceremony isn't needed.

The same chain runs: staff sweep β†’ applicant sweep β†’ combined cert β†’ archive β†’ GAS. Two SA-controllable checkboxes on the panel:

  • Also wipe applicant trail (default ON) β€” sweeps the original applicant record via the personalEmail join. Untick only for a planned re-hire scenario where the original application should be preserved.
  • Fire Google Workspace deprovision (GAS) (default ON) β€” untick to keep the mailbox temporarily available for handover.

SA Control also has a separate Delete Applicant tab for purging applicants who never converted to staff (rejected, withdrew, abandoned). Same engine, no GAS step. Same Deletion Certificate ends up in All Docs.

06Deleted Users Registry & Re-Hire Warning

Every deletion β€” offboarding-driven OR SA-direct β€” writes a minimal record to the deletedPersonsRegistry Firestore collection (name, both emails, applicantId, previousUid, deletion date, reason, cert URL). HR can read this; IT can support SA queries by referencing it.

The HR recruitment-pipeline Re-Hire Warning reads from this registry. When HR adds a new applicant whose email or name matches a previously-deleted person, a red callout fires on the duplicate-check panel showing the prior deletion record with a direct cert link. HR can still proceed (warn-and-proceed policy) β€” every override is audited.

The registry is also browsable from SA Control β†’ Deleted Users (SA-only). Stats strip shows total / staff / applicant / last-30-days counts. SA can search by name, email, or applicant ID.
DTTASA
IT Knowledge Base
Document Handover to HR
Push a newly-registered person's applicant documents into their HR Personal File β€” one click, after registration.
All IT StaffSA
01What this is

When you register an applicant as staff/volunteer, everything they submitted during recruitment (forms, signed offer/agreement letters, passport & website photos, and their government ID) still lives in the applicant system β€” HR can't see it in the person's Personal File. The Document Handover section copies it all across in one action, so HR has a complete file from day one.

02How to do it
StepAction
1Open the IT Board β†’ Document Handover in the sidebar. Anyone you've just registered (who came from a recruitment applicant) appears under Awaiting handover.
2Click Push Documents to HR on their row and confirm.
3Their submitted documents, signed letters, photos and ID are copied into the HR Personal File. HR and support@ are notified by email + alert.
4The row moves to Recently pushed. If more documents are verified later, press Push Again β€” it only copies what's new (never duplicates).
03The Government ID is special

The ID is copied too, but it lands locked in the Personal File. No HR user can open it directly. To view it, HR must request approval from the VMEM, who approves or declines β€” every request and decision is audited. You don't need to do anything extra; just be aware the ID is guarded by design.

04Notes
  • Only people registered from a recruitment applicant appear here β€” a manual account with no applicant trail won't show (there's nothing to copy).
  • The handover is safe to run more than once; it's idempotent.
  • The welcome email is still sent at registration β€” the handover is a separate, later step.
DTTASA
IT Knowledge Base
Profile Health & Changes
Identifying missing profile data, approving or declining profile change requests, querying to HOD.
All IT Staff
01Profile Health

The Profile Health section lists staff members with missing critical fields (photo, nationality, phone number, emergency contact). Each staff member's missing fields are listed with a count.

IT's role here is awareness β€” contact the staff member and ask them to complete their profile via the My HR Record page. IT can also update fields directly via the Staff Directory if given the information.

Profile health issues deduct from the Security Score. Resolving them improves the score automatically.
02Profile Change Requests

Staff can request changes to protected fields (biological sex, gender, nationality, emergency contact, etc.) via their My HR Record page. These requests appear in the Profile Changes section filtered to Pending by default.

Approving a Change
  1. 1Review the requested change β€” the old value and new value are shown side by side.
  2. 2If valid, click Approve & Apply. The user's Firestore record is updated immediately.
Declining a Change
  1. 1Enter a reason in the note field (required).
  2. 2Click Decline. The reason is saved and visible to the staff member.
Querying to Head of Department

If you are uncertain whether a change is legitimate (e.g. a name change that may need documentation), enter your question in the note field and click Query HOD. The request is marked as Queried and the HOD is made aware.

The note field is required for both Decline and Query. Never decline without a reason β€” the staff member needs to know why.
DTTASA
IT Knowledge Base
SOC Monitor & Security Score
Reading the live security dashboard, filtering events, nudging profiles, and acting on signals.
All IT StaffIT Head Β· SA (Actions)
01The Security Score

The security score (0–100) reflects the live health of the DTTASA portal. It is computed in real time from multiple signals:

SignalDeduction per occurrenceCap
Active (unresolved) lockoutβˆ’8 ptsNo cap
Stale shift (10+ hours active)βˆ’5 ptsNo cap
Active suspensionβˆ’3 ptsβˆ’10 pts max
Profile with missing required fieldsβˆ’1 ptβˆ’10 pts max
80–100 β€” Healthy

No urgent action. Monitor for new signals.

50–79 β€” Attention

Review event feed. Resolve open signals promptly.

0–49 β€” Critical

Escalate immediately. Multiple lockouts or suspensions likely active.

02Live Event Feed & Filters

Below the score cards is the event feed. Use the filter tabs to view events by severity tier: All Β· Critical Β· Warning Β· Info. Each event shows the staff member, time, and available actions.

For any event, click the action buttons:

  • Resolve β€” clears a lockout or ends a stale shift
  • Nudge Profile β€” sends an automated email prompting the staff member to complete their missing fields
  • View β€” opens the staff member's detail in the directory
Resolving vs Ending: Resolving a lockout resets the fail counter. Ending a stale shift clocks them out. Both actions are logged to the Audit Log.
DTTASA
IT Knowledge Base
Incident Management
Logging, tracking, and resolving IT incidents from P1 critical to P4 informational.
All IT StaffSA Directives
01Incident Severity Levels
LevelDescriptionResponse Target
P1 β€” CriticalTotal service outage, security breach, data lossImmediate β€” escalate to IT Head & SA
P2 β€” HighMajor degradation, significant user impactWithin 1 hour
P3 β€” MediumPartial degradation, workaround availableWithin 4 hours
P4 β€” LowMinor issue, informational, future riskWithin 24 hours
02Logging an Incident
  1. 1Click Log Incident in the Incident Management section header.
  2. 2Enter a clear title (e.g. "Portal login failures β€” 3 users affected").
  3. 3Select the severity (P1–P4) based on impact.
  4. 4List the affected systems (e.g. "Firebase Auth, Portal Login").
  5. 5Write a description β€” what happened, when, and who is affected.
  6. 6Click Log Incident. The incident is created and visible to all IT staff immediately.
03Adding Updates & Resolving

As the incident progresses, click Add Update on the incident card to add timestamped progress notes. Use updates to keep the team and SA informed without creating new incidents.

Once resolved, click Resolve. Enter resolution details β€” this is mandatory. The incident closes and the timestamp is recorded.

04SA Directives

A Super Admin can add a SA Directive β€” a gold banner displayed on a P1 or P2 incident card with specific instructions (e.g. "Do not resolve until legal is notified"). Always follow SA directives as written. Do not resolve an incident with an active directive without SA sign-off.

SA directives override normal resolution flow. If you disagree with a directive, raise it with the SA directly β€” do not action against it.
DTTASA
IT Knowledge Base
IT Feedback & Feedback Centre
Where staff feedback lives β€” the IT ticket-satisfaction view, and the SA-only combined Feedback Centre.
All IT StaffSA
01IT Feedback β€” now open to all IT users

The IT Feedback page shows how staff rated the IT support tickets they raised (star ratings, averages, distribution, per-staff breakdown). It reads the itTicketFeedback collection. As of 2026-05-31 it is accessible to every IT-department user β€” not just IT admins β€” from IT Feedback in the dashboard's Departments menu.

02Feedback Centre (SA only)

Super Admins get a combined Feedback Centre (Feedback Centre in the Administration menu) that puts both feedback streams in one page, clearly separated by tab:

  • IT Ticket Feedback β€” the same ticket-satisfaction ratings (avg, total, low-score count + recent list).
  • Org Feedback & Surveys β€” organisation-wide feedback responses, surveys, and survey responses (orgFeedback / orgSurveys / orgSurveyResponses).

Each tab links out to its full page for deeper management. The Feedback Centre is a read-only overview β€” it uses one-shot reads (no live listeners) to stay zero-cost.

DTTASA
IT Knowledge Base
Access Control & Permissions
The L1–L5 access level matrix, updating levels, and the role hierarchy rules.
SA Only
01Access Level Matrix

Every DTTASA staff member has an access level (L1–L5) stored on their user profile. This level controls which portal sections they can access and what actions they can take.

LevelRolePortal Access
L1Standard StaffMy Hub, Leave, My HR Record, Announcements
L2Staff (Default)L1 + Rota, EOM, Comms Board
L3Senior / SpecialistL2 + expanded read access to some HR views
L4Head of DepartmentL3 + HR Ops Monitor, team management functions
L5IT Head / HOD+L4 + IT Board full access, system configuration
SA emails always have full access regardless of access level. The access level is used for non-SA staff escalation rules.
02Changing an Access Level

The Access Control Matrix (SA only) shows all staff with their current level. Use the dropdown on any row to change their level. You will be asked to confirm the change β€” confirm only if you have SA authorisation to do so.

Every level change is logged immediately to the Audit Log with the before/after values and your name.

Never demote L4+ staff without SA approval. HOD-level access is tied to their management responsibilities. A demotion can break their ability to manage their team.
03Role Hierarchy Rules

The Firestore rules use isAdmin() as the broadest check β€” it covers both SA emails and anyone with accessLevel β‰₯ 4. isITDept() checks the department string only and can miss SA or IT Head users with a different department value. Always ensure rules use isAdmin() as a fallback for cross-user writes.

DTTASA
IT Knowledge Base
Asset Register
Adding, editing, and tracking IT hardware, software licences, and infrastructure. Serial numbers, warranty alerts, and asset tags.
All IT StaffSA (Delete)
01Adding an Asset
  1. 1Click + Add Asset in the Asset Register section header.
  2. 2Enter the Asset Name and select a Category β€” both required.
  3. 3Set the Status: Active (in use), In Storage, Retired, or Lost/Stolen.
  4. 4Optionally enter the Serial Number, Purchase Date, and Warranty Expiry.
  5. 5Enter who it is Assigned To (staff member or "Organisation").
  6. 6Click Save Asset. A unique Asset Tag (e.g. DTTASA-XK93TZ) is auto-generated and shown in the table.
02Categories
CategoryExamples
HardwareLaptops, desktops, tablets, phones, servers
Software LicenceGoogle Workspace, Adobe CC, monday.com, Zoom seats
Network InfrastructureRouters, switches, access points, cabling
Peripheral / AccessoryMonitors, keyboards, mice, headsets, webcams
OtherAnything not covered above
03Warranty Alerts

Assets with a warranty expiring within 30 days show an amber ⚠ YYYY-MM-DD badge. Assets where the warranty has already expired show a red Expired badge. The row is also tinted to draw attention.

Action: contact the vendor or SA regarding renewal before the warranty lapses.

04Quick Status Change & Filtering

Use the status dropdown directly on each table row to change an asset's status without opening the edit modal. Use the category pills and status filter bar at the top to narrow down the list. Search by name, serial number, asset tag, or assigned person.

Delete: Only SA can delete asset records. The delete button (red trash) is only shown for SA users. Deleting is permanent β€” prefer setting status to "Retired" or "Lost" instead.
DTTASA
IT Knowledge Base
IT Announcements
Composing and broadcasting IT notices to all staff or IT only. Priority levels and delivery channels.
All IT Staff
01Composing an Announcement
  1. 1Click ✏ Compose in the IT Announcements section header.
  2. 2Enter a clear Title (e.g. "Scheduled maintenance β€” Sunday 02:00–04:00 UTC").
  3. 3Write the Message with full detail. Be specific β€” include times, affected services, and any actions staff need to take.
  4. 4Set Priority: Normal, Urgent, or Critical.
  5. 5Set Target Audience: All Staff or IT Department Only.
  6. 6Click Broadcast. Delivery happens immediately.
02Delivery Channels
ChannelAudienceWhen
IT Announcements logIT staff (this section)Immediately (live)
Portal Announcement HubAll staff (if "All Staff" target)Immediately
In-app notification bellAll departments or IT onlyImmediately
Email (via mail queue)All registered emails (if "All Staff")Within minutes
Email is suppressed in Test Mode. Switch off Test Mode before broadcasting a real announcement β€” check the orange banner at the top of the IT Board.
03Priority Guide
Normal

Routine IT updates, process changes, scheduled work notifications.

Urgent

Imminent outages, time-sensitive actions required from staff.

Critical

Active outage, security breach, total portal failure.

Use Critical sparingly. Over-use desensitises staff and reduces the impact of genuine critical alerts.
DTTASA
IT Knowledge Base
Maintenance Windows
Scheduling, monitoring, and completing planned maintenance. Notifying staff and managing window statuses.
IT HeadSA
01Scheduling a Window
  1. 1Click Schedule Window in the Maintenance Windows section header.
  2. 2Enter a Title describing the work (e.g. "Firebase rules deployment").
  3. 3Set the Start and End date/time. Use UTC or specify the timezone in the title.
  4. 4List Affected Systems (e.g. "Portal login, Firestore").
  5. 5Write a Description of what will be done and any expected impact on staff.
  6. 6Check Notify Staff to send an announcement email to all staff via the mail queue.
  7. 7Click Schedule.
02Window Statuses
StatusMeaning
ScheduledPlanned but not yet started. Start time is in the future.
ActiveCurrently within the start/end window. System may be under maintenance.
CompletedManually marked complete by IT Head or SA.
CancelledCancelled before or during β€” logged with reason.
Statuses are computed automatically based on time. A Scheduled window becomes Active at its start time without any manual action. Completing it requires manual confirmation.
03Completing or Cancelling

Click Mark Complete once the maintenance work is finished. Always mark complete even if it finished early β€” this updates the live status visible to all staff. If a window needs to be cancelled, click Cancel Window and provide a reason.

DTTASA
IT Knowledge Base
Mail Queue & Notifications
Monitoring outbound email delivery, retrying failures, and escalating persistent errors to SA.
All IT StaffSA (Delete)
01How the Mail Engine Works (provider router)

All emails sent by the portal (welcome emails, password resets, PIN links, announcements, notifications) are written to the mail Firestore collection. A mail router (Cloud Function) picks each one up and sends it via the first provider in the chain with free quota left: Resend (primary, 100/day Β· 3,000/month free) β†’ Firebase Trigger-Email (SMTP, final overflow). Emails carrying attachments always use the SMTP path. The Mail Queue section lets IT see the current state of every outbound email.

Mail never silently fails. If every provider is down or out of quota, the email is parked as queued, a red row is raised in Diagnostics (scope mail.*), and a reconciler sweeps every 15 minutes to re-route anything queued or stuck mid-send until it delivers.
01bThe Mail Engine panel (live counters)

At the top of the Mail Queue section (and in SA Control β†’ Mail Engine) live per-provider cards show Today and Month send counts against each free cap, which provider is currently ACTIVE, and the last failure. Pip colours: green = healthy Β· amber = over 80% of a cap Β· red = exhausted or failing (mail is flowing to the next provider) Β· grey = provider not yet configured. Below the cards, Recent dispatches is a live log of the last sends with provider and status.

02Email Statuses
StatusMeaningAction
SUCCESSDelivered to the recipient's serverNone needed
PENDINGQueued, not yet picked up by the extensionWait β€” normal if recent
PROCESSINGExtension is actively sending itWait
ERRORDelivery failed after attemptsRetry or Report
03Retrying Failed Emails

For any ERROR email, click Retry on the row. This clears the delivery record and asks the router to send it again through the full provider chain (Resend first, SMTP fallback) β€” the result lands back on the row within seconds. If all emails are failing, click Retry All Failed in the error banner at the top.

If retrying does not fix persistent errors, click Report to escalate the issue to the Super Admin with the full error details automatically included.
04Auto-Refresh & Monitoring

Click Auto-Refresh to enable a 30-second polling timer β€” useful during active incidents or after sending a bulk email to confirm delivery. The button turns green while active. Auto-refresh stops automatically on sign-out.

Amber attempt count (⚠): If an email has 3 or more delivery attempts and still shows ERROR, the SMTP endpoint or recipient address may be misconfigured. Escalate to SA rather than retrying indefinitely.
DTTASA
IT Knowledge Base
Probation Monitor
See the probation status of every staff member and follow up. This status also governs whether a staff member's website profile may be cleared to the public site.
IT DeptIT HeadSA
01What this section shows

The Probation Monitor lists every staff member with their probation status. Governance (Super Admins and Executives) are excluded, exactly as they are from rotas and HR grids. The data comes from the same probation fields HR maintains, so it is always current.

  • β€’On probation: still within their probation period. The "time remaining" column counts down to the probation end date, and flags when a review is overdue.
  • β€’Passed: probation completed successfully.
  • β€’Failed: probation was not passed.

The three KPI tiles at the top show how many staff are in each state. The sidebar badge shows the number still on probation, so you can follow up without opening the section.

02Why IT needs this: the website profile gate

When a staff member's official website photo and bio are approved by HR and verified by VMEM, they flow securely to the IT review queue (in the separate public-website admin). You must not approve a profile through to Communications until that staff member has passed probation. Use this Monitor to confirm the status before you clear any profile.

Rule of thumb. On probation: wait. Failed: do not approve. Passed: cleared to review for technical and security clearance as normal.

You are also emailed automatically the moment a staff member's probation is marked passed or failed, so you do not have to keep checking.

DTTASA
IT Knowledge Base
IT Metrics & SLA Dashboard
Reading KPI cards, understanding SLA periods, and using feedback data to improve service quality.
IT HeadSA
01KPI Cards

The Metrics Dashboard shows the following KPIs for the selected time period (7 days, 30 days, or 90 days):

KPISourceWhat it means
Tickets ResolveditTicketsCount of tickets moved to resolved/closed in the period
Avg Resolution TimeitTicketsMean hours from open to resolved β€” lower is better
SLA BreacheditTicketsCount of tickets that exceeded their target resolution time
Incidents LoggeditIncidentsCount of incidents created in the period
Avg SatisfactionitTicketFeedbackMean star rating from feedback submitted by staff
Total FeedbackitTicketFeedbackNumber of feedback responses received
02SLA Targets
PriorityTarget Resolution Time
P1 β€” Critical2 hours
P2 β€” High8 hours
P3 β€” Medium24 hours
P4 β€” Low72 hours
SLA breach count is calculated at render time by comparing ticket creation vs resolution timestamps. It is not stored β€” the count reflects the current data.
03Using the Data

Use the metrics to identify patterns: a high SLA breach count in 7 days suggests a staffing or prioritisation issue. Low satisfaction scores with high ticket volume suggest service quality needs attention. Use the 30-day view to compare against previous periods.

Click Refresh to reload metrics data (it is fetched once per section visit and cached for that session).

DTTASA
IT Knowledge Base
System Config, Audit & Test Mode
Using Test Mode safely, Maintenance Mode, reading the audit log, and exporting records.
IT HeadSA
01Test Mode

Test Mode routes all Firestore writes to shadow collections prefixed with test_ (e.g. test_itTickets instead of itTickets). It also suppresses all outbound emails. Use it when testing new features or bulk operations without affecting real data.

Always disable Test Mode when you are done. Leaving it on means real staff actions (registrations, ticket updates, announcements) are written to shadow collections and are invisible to the rest of the portal. Check for the orange TEST MODE ACTIVE banner at the top of the IT Board.

Enable/disable via System Config β†’ Test Mode toggle. This changes the global flag for all IT Board users simultaneously.

02Maintenance Mode

Maintenance Mode shows the Under Maintenance screen to staff on the board pages β€” excluding the IT Board, so IT staff keep full access to do the work and toggle it off. SuperAdmins also keep full access everywhere. Use it during major deployments or when the portal is genuinely unavailable.

Staff can still sign in and view their home dashboard β€” where a gold maintenance notice appears at the top β€” but the moment they open a board or section (HR, Ops, Leave, etc.) they see the maintenance screen. SuperAdmins and IT see the MAINTENANCE MODE ACTIVE banner instead, with a DISABLE button.

Toggle via System Config β†’ Maintenance Mode. Optionally set system/config.maintenanceMessage to control the exact text of the dashboard notice staff see (e.g. when service resumes).

Do not leave Maintenance Mode on after work is complete β€” staff remain locked out of the boards (other than the IT Board) until it is disabled.
03Audit Log

The Audit Log records every significant IT action: registrations, password approvals, access level changes, bulk operations, system config changes. Entries are write-only β€” nobody can edit or delete them.

Use the category filter tabs (Registration, Credentials, Onboarding, Access, Bulk, System) to narrow results. Use the search bar to find actions by a specific team member.

SA can export the current filtered view as a CSV file using the Export CSV button β€” useful for compliance reviews.

The Audit Log loads the 100 most recent entries. Click Load More to fetch additional records if investigating older events.
04System Status Page

The public-facing status page (portal.dttasa.org/system-status.html) shows the current state of each portal component. IT updates this manually during incidents so that staff and external stakeholders can see what is affected. Open it from the sidebar System Status nav item.

05Deploying Changes

When IT Head or SA need to deploy code changes: run npm run deploy from the project directory. This builds and minifies all files into dist/ and pushes to Firebase Hosting. Firestore rules must be deployed separately with firebase deploy --only firestore:rules.

Never edit files in dist/ directly. All source changes must be made to the source files and deployed via the build script.
DTTASA
IT Knowledge Base
Diagnostics Console & Data Source
The live error feed, and the Data-Source strip that proves Diagnostics is always reading production.
IT DeptIT HeadSA
01What the Diagnostics Console is

Diagnostics (portal.dttasa.org/diagnostics.html) is the live operations monitor for the portal. It streams the errorLog collection in real time, shows portal health, active sessions, and outbound mail status. Access is restricted to the IT Department, Head of IT, and Super Admins only. The heart-pulse β™₯ icon in the HR Ops Monitor header links here and lights up red when unresolved HR-related errors exist.

02The Data-Source strip

Directly below the header is the Data-Source Assurance strip. It exists to remove any doubt about which data you are looking at, because the rest of the portal can route a session to shadow collections (Test Mode β†’ test_*, demo accounts β†’ demo_*). Diagnostics deliberately reads through the raw Firestore SDK, so it is routing-immune β€” it always shows production. The strip surfaces that guarantee plus live context:

IndicatorMeaning
Data source: PRODUCTION (green)Diagnostics is reading the real errorLog / users / mail collections. This is always the case β€” it never reads test_ or demo_.
Portal Test Mode: ON / OFFLive mirror of system/config.testMode. When ON (amber), SA test sessions shadow rota / shift / timer collections to test_ elsewhere in the portal β€” but Diagnostics still shows production. When OFF, everything everywhere is production.
Session Demo: OFF / ACTIVE ⚠This browser session's demo-routing flag (window.__dttasaDemoMode). For staff this must read OFF. It is only ever ACTIVE for the App Store reviewer sandbox accounts.
Verified … WATA live timestamp (West Africa Time, UTC+1) that ticks every second, confirming the panel is current.
03How to read it

In normal operation you should see PRODUCTION (green), Portal Test Mode: OFF, and Session Demo: OFF. That confirms every figure on the page reflects real, live portal data.

Seeing Portal Test Mode: ON (amber) is not an error β€” it means an SA currently has portal-wide Test Mode enabled. Diagnostics itself is unaffected and still shows production; the amber chip is just a heads-up that other pages are shadowing rota/shift/timer writes to test_.
If you ever see β€œSession Demo: ACTIVE βš β€ as a real staff member, your browser has picked up a stale reviewer-sandbox flag. Sign out fully and sign back in β€” the staff sign-in now clears demo routing automatically. Report it to IT if it persists, because it would mean your other pages are reading the demo sandbox instead of production.
04Why it matters

A monitoring tool that silently showed test or demo data would be worse than no monitor at all β€” IT could believe production is healthy while looking at sandbox figures. The Data-Source strip makes the guarantee explicit and continuously visible, so anyone reading Diagnostics knows, at a glance, that they are seeing the real portal.

05The live error feed & loading every error

The Live Error Feed streams errorLog in real time. To stay fast and keep Firestore reads low it is deliberately bounded β€” it shows the last 24 hours, newest 200 errors. The filter tabs (All Β· Unresolved Β· Escalated Β· Resolved Β· Transient), the search box, and the ⏸ pause button all work on this live window.

If errors arrive faster than they are resolved, or an unresolved error is older than 24 hours, it sits outside that live window and will not appear on its own. Use the ↻ Load every error button (next to pause) to pull every recent error regardless of age β€” it does a one-time, time-unbounded fetch (up to 1000) and merges it into the feed, so nothing waiting beyond the live window is ever missed. From then on the live stream keeps merging new errors in rather than shrinking back to the window.

Click Load every error at the start of triage if the unresolved count looks higher than what the feed shows, or whenever you want certainty that you are resolving the complete backlog β€” not just the most recent 24 hours.
Benign noise is filtered at source and never reaches the feed β€” e.g. the browser's β€œTransition was skipped” page-transition message (normal on fast navigation / reduced-motion) is classified as benign in early-init.js, so it doesn't bury real errors.
DTTASA
IT Knowledge Base
Help Desk & Live Chat
Answering support tickets end-to-end and running real-time Live Chat sessions β€” IT's two busiest daily surfaces.
All IT StaffIT HeadSA
01Where they live & off-shift access

Both sit at the top of the sidebar: Help Desk (tickets staff have raised) and Live Chat (real-time sessions waiting or active). The red badge on Help Desk counts active tickets; the green badge on Live Chat counts waiting chats.

Help Desk and Live Chat stay available off-shift so urgent support is never blocked β€” unlike the sensitive sections that lock outside your shift window. See Accountability, Escalation & Shift Access for the full locked set.
02Working a ticket

Use the filter row at the top β€” ALL Β· OPEN Β· IN PROGRESS Β· AWAITING STAFF Β· RESOLVED Β· ESCALATED TO HOT Β· ESCALATED β€” to narrow the list. Each card shows the reference (last 6 of the ID), priority (P1–P4), status, SLA badge, subject, submitter, department, category, and assignee. Click a card to open its drawer.

  1. 1Set the Priority (P1–P4) β€” this resets the ticket's SLA respond/resolve deadlines.
  2. 2Use the Assign To dropdown to assign the ticket to yourself or another IT colleague.
  3. 3Type in the Reply box and click Send. Tick Internal note to record a comment only IT can see (not sent to the staff member). Replying to an OPEN ticket moves it to IN PROGRESS automatically.
  4. 4Use the action buttons: Mark In Progress, Awaiting Staff (waiting on the submitter), or Resolve.
  5. 5AI Help drafts a suggested answer to paste into your reply β€” always review it before sending.
Resolving requires a summary. When you click Resolve you must enter a resolution summary β€” it's appended to the thread, stored on the ticket, and emailed to the submitter automatically. The ticket is also flagged if it was resolved after its SLA deadline.
03Escalating a ticket
Who you areEscalation buttonWhat happens
IT staff (not Head/SA)Escalate to Head of ITRequires a reason of at least 20 characters. Moves the ticket to ESCALATED TO HOT, adds an internal note, and emails the Head of IT. Only the Head of IT or an SA can then action it.
Head of IT / SAEscalate to SAEscalates the ticket up to Super Admin level for executive attention.
04Live Chat sessions

The Live Chat section shows two groups: WAITING (staff who have opened a chat and need picking up) and ACTIVE (chats currently being handled).

  1. 1On a waiting chat, click Pick Up. This claims the chat, marks it ACTIVE, and posts a "support agent has joined" line.
  2. 2Click Open Chat to open the live message window. Type a message and press Enter (or the send button) β€” messages stream in real time both ways.
  3. 3If the issue needs tracking beyond the chat, click To Ticket β€” this creates a P3 Help Desk ticket pre-filled with the chat transcript, assigned to you, then jumps you to the Help Desk.
  4. 4When finished, click End Chat. A resolution note is required β€” it's posted to the chat and saved on the session before it closes.
Ratings staff leave after a resolved ticket feed the IT Metrics & SLA Dashboard and the IT Feedback view β€” see those guides for how satisfaction is reported.
DTTASA
IT Knowledge Base
Applicant IT Tools
Verified Applicant Photos, Applicant Portals, and where Doc Access Blocks fit the applicant-to-staff journey.
All IT Staff
01Verified Applicant Photos

The Verified App. Photos section is a read-only gallery of every applicant whose ID photo HR has reviewed and verified. Each card shows the passport photo (with an initials fallback if the image fails), a VERIFIED tag, the applicant's name, the position applied for, their email, who verified it and when. If a full-body / website photo was also provided, it appears alongside.

Use the search box to find an applicant by name, position, or email. View Passport Photo and View Website Photo open the full image in a new tab.

IT does not verify photos here β€” HR does that during photo review. This gallery exists so IT can confirm a face against an identity when supporting registration or an access query. Only records with an actual uploaded image appear; force-completed reviews with no upload are excluded.
02Applicant Portals

The Applicant Portals section tracks every applicant portal account created during recruitment. The amber sidebar badge counts portals still on a temporary password. A summary strip shows Total Portals Β· Signed In Β· Password Set Β· Temp Password.

Each row shows the applicant's name, email, the role + department they applied for, when their portal was created, and two status badges:

BadgeMeaning
Signed In / Never Signed InWhether the applicant has ever logged into their portal. "Signed In" rows also show the last-seen time.
Password Set / Temp PasswordWhether they have changed the temporary password issued at portal creation.

Filter by Temp Password Β· Password Set Β· Signed In Β· Never Signed In, or search by name, email, position, or department.

This section is a monitoring view β€” it surfaces who is stuck on a temp password or has never signed in. To actually reset an applicant's portal password, use the recruitment / HR applicant tools; staff-side password and PIN resets are handled in Password & PIN Resets.
03Doc Access Blocks & the applicant-to-staff link

Doc Access Blocks live in the Password & PIN Resets guide β€” IT confirms a block HR has initiated when a compliance document expires. This entry notes the connection: when an applicant converts to staff at registration, the system links the new users record back to the original applicant record. That link is what later powers offboarding's applicant sweep and the recruitment Re-Hire warning (covered in Staff Registration & Accounts and Offboarding IT Confirmation).

Both this section and the verified-photo gallery touch applicant data, so they sit behind the shift-access gate β€” they are hidden when you are off-shift.
DTTASA
IT Knowledge Base
Monitoring & Oversight
Security Alerts, Suspensions, Stale Shifts, activity & presence views, Consent & Location, and the Idealist feed.
All IT StaffIT HeadSA
01Most of these lock off-shift
Security Alerts, User Activity, Portal Presence, Applicant Activity, and Consent & Location all sit behind the shift-access gate β€” they are hidden when you are off-shift (see Accountability, Escalation & Shift Access for the full list and how access opens 1h before your shift). SA and the Head of IT always have full access. Stale Shifts and the Idealist feed stay available.
02Security Alerts (triage)

The Security Alerts section is the live triage feed of flagged sign-in events. Filter tabs are Open Β· Acknowledged Β· All, and the header counts Threats Β· Reviews Β· Open Β· Acknowledged. Each row shows the staff member, threat level (Threat / Review / Safe), reason, IP + location, device label + fingerprint, and date.

  1. 1Review each open alert β€” check the IP, location, and device against what you'd expect for that person.
  2. 2If it's legitimate, click Ack to acknowledge it. The alert is stamped with your identity and time.
  3. 3If it's suspicious, escalate to the Head of IT or SA before acting. Device trust/block is handled from the Consent & Location drawer (below).

Use the Show N of total selector to page through larger volumes (10–5000).

03Consent & Location (compliance)

The Consent & Location table is the per-user compliance view. The stat strip counts OK / Review / Threat plus consent-pending, consent-declined, and location-denied users. Each row shows threat level, consent status (Accepted with version + date, Declined, or Not yet shown), location-permission status, IP + location, device, and last fix time.

  • Map opens the user's last known location in Google Maps (when a fix exists).
  • Details opens a drawer listing that user's known devices, where you can Trust or Block a device. Blocking signs the user out of that device shortly after.

Rows sort issues-first (threats, then reviews, then missing consent, then denied location). Filter by bucket or search by name, department, country, city, device, or IP.

04Suspensions

The Suspensions section is a read-only register of suspended staff: name, reason, suspended-on date, until date (or Indefinite), who issued it, and whether it is Active or Expired. Active suspensions also deduct from the Security Score (see SOC Monitor & Security Score). Suspensions are issued elsewhere (HR / SA) β€” IT views them here for awareness.

05Stale Shifts

The Stale Shifts section flags active shifts that look stuck β€” either running 10+ hours or started on a previous day (an overnight crossing). The day boundary is anchored to West Africa Time, matching the timer. Each row shows the staff member, department, clock-in time, elapsed hours, and a Long shift or Overnight tag.

  1. 1Contact the staff member to confirm they simply forgot to clock out.
  2. 2Click End Shift. A reason is required β€” it's recorded with your IT officer details in the final PDF timesheet. No user signature is needed for an IT-terminated shift.
A stale shift also deducts from the Security Score until it is ended.
06User Activity & Portal Presence
SectionWhat it shows
User ActivityEvery staff member sorted by last-active time, with an INACTIVE flag at 7+ days and header counts for inactive 7–29 days, inactive 30+ days, and never-logged-in. A tabbed Applicants view reuses the Applicant Portals data to show applicant sign-in activity the same way.
Portal PresenceA live grid of who is online right now, the page they are on, and how long ago they were last seen. Filter by department or search by name / page. The green badge counts users currently online.
07Applicant Activity

The Applicant Activity section is a live visitor feed for the public recruitment pages. The stat strip counts active-now, today's visitors, forms started, forms submitted, and distinct countries. Each row is an anonymous visitor: an online pip, the page they're viewing, IP + location, device, form status (Browsing / Started / Submitted), session start, and last-seen time. The table paginates (10/page on mobile, 50/page on desktop) and is searchable by IP, country, city, page, or device.

08Idealist Postings feed

The Idealist Postings section mirrors the volunteer/role adverts posted to Idealist. Each entry shows the position title, department, when it was posted (WAT) and by whom, with an Open button to the live listing. The amber badge counts postings from the last 7 days. This is a visibility feed only β€” IT doesn't edit Idealist from here.

DTTASA
IT Knowledge Base
Team Accountability
Lodging conduct incidents and logging absences for your team β€” all routed to the Head of HR.
IT HeadDept HeadsSA
01What this section is for

The Team Accountability section lets a head of department raise people-management items about their own team without leaving the IT Board. There are two actions in the header: Log Absence and Lodge Incident. Every report you submit forwards to the Head of HR for review β€” you are filing it, HR acts on it.

The staff dropdowns only list your own department's team members (an SA sees everyone). Governance staff are never listed.
02Log Absence
  1. 1Click Log Absence. Pick the staff member and the date (defaults to today).
  2. 2Add notes describing the absence (e.g. reported sick, no-show, late notice).
  3. 3Submit. The absence record is forwarded to HR.
03Lodge Incident
  1. 1Click Lodge Incident. Pick the staff member, the incident date, and the type: Conduct, Latency/Tardiness, Unsubmitted Shift, Training Non-Compliance, Dual Employment, or Other.
  2. 2Write a clear factual description of what happened.
  3. 3Submit. The incident is created with status Pending HR Review and lands in the Head of HR's queue.
04Tracking what you've filed

Below the buttons, "Pending reports you have submitted" lists the items you raised that are still awaiting HR, each with the subject, type, incident date, and lodged date, marked PENDING HR. The red sidebar badge counts these. Once HR actions a report it drops off this list.

Keep entries factual and professional β€” these feed HR's case-management process and form part of the staff member's record.
DTTASA
IT Knowledge Base
Handbook Library
Reviewing and managing the staff handbook's categories and documents from the IT Board.
All IT Staff
01What the Handbook Library shows

The Handbook Library section lists every handbook category and the documents filed under it. The header shows the category and document totals and an Open Full Handbook Page link. Each category is colour-coded and shows its document count and display order; each document shows its title, the departments it's visible to, file type, and version.

02Publish state & featured documents
TagMeaning
LIVEPublished β€” staff can see this document in the handbook.
DRAFTNot yet published β€” hidden from staff.
β˜… FEATUREDPinned to the top of the handbook for prominence.
03Actions
  1. 1Use Publish / Unpublish on any document to flip its LIVE / DRAFT state instantly.
  2. 2Use the red trash button to delete a document β€” you'll be asked to confirm. Deletion cannot be undone.
  3. 3To add categories or documents, or change ordering, open the full handbook page via the header link.
Unpublishing a document removes it from staff view immediately. Prefer Unpublish over Delete when a document only needs to be temporarily withdrawn.
All IT StaffIT Head Β· SAVersion 1.0 β€” June 2026

Contract Access

Your part in the engagement-contract lifecycle: confirming access after a renewal, and revoking access when a renewal goes unsigned.

01Where it lives

The Contract Access section on the IT Board lists every contract-access task. An amber badge shows how many are pending. Tasks appear automatically β€” you don't create them.

Access validity always follows the contract expiry automatically (it's set the moment a renewal is sealed). Your job here is the human confirmation and the revocation actions β€” not setting dates.
02Confirm access (after a renewal)

When a contract renewal is fully signed, a Confirm Access task appears for that person: "confirm portal access & credentials are valid through {new expiry}." Check the account is in order, then click Confirm Access. This records that IT has verified access for the renewed term.

03Revocation ladder (renewal unsigned)

If a person doesn't sign their renewal before the engagement expires, the system surfaces revocation tasks for you to action:

WhenTaskEffect
24h past expiry, unsignedRevoke Access β€” Contract Not SignedAccess limited β€” the person can only reach My Hub to sign; every other page is blocked.
7 days after limiting, still unsignedRevoke Full Access β€” Still UnsignedAccount fully suspended β€” the person is logged out and cannot sign in.
Both actions are deliberate IT decisions β€” confirm the on-screen prompt before proceeding. The affected person, HR, and the VMEM are notified at each step. The person always receives an email explaining what's happened and what to do (open My Hub to sign).
04Limited / Suspended Access β€” and restoring it

Below the task list, the Limited / Suspended Access panel lists everyone whose access is currently limited or suspended for an unsigned renewal β€” with how long they've been locked and who locked them.

When a locked person's renewal becomes fully signed and sealed (all parties β€” volunteer, VMEM, HR, Secretary-General), two things happen automatically:

Click Restore Full Access to reinstate them. Restore is now a deliberate IT action (not silent/automatic) so IT consciously confirms each reinstatement after the renewal is complete.

Until you click Restore, the person stays limited (they can still reach My Hub). The button only appears once the renewal is fully executed β€” not while signatures are still being collected.