- Project Name: FinLens
- Document Type: Non-Functional Requirements (NFR)
- Audience: Product Owner; Engineering; QA / Validation; Security & Compliance Reviewers
- Document Nature: Living, controlled
- Stability: High (changes rarely, only with strong justification)
This document defines HOW WELL FinLens must behave, independent of features.
It specifies:
- Quality attributes
- Constraints
- Operational expectations
- System characteristics that are not optional
A system can meet all functional requirements and still fail if it violates NFRs.
These requirements apply to:
- Backend scanning engine
- Data processing pipeline
- Report generation
- Frontend UI
- Overall system behavior
They are global constraints.
Requirement: The system shall complete scans within reasonable time for small-to-medium AWS accounts.
Expectations:
- No intentional blocking or artificial delays
- Service scans executed independently
- Performance degrades linearly with account size
Rationale: Users expect feedback, not overnight jobs.
Requirement: The UI shall remain responsive after report load.
Expectations:
- All interactions are client-side
- Sorting and filtering occur instantly for typical datasets
- No loading spinners after initial load
Requirement: Failure in one service, region, or account shall not terminate the entire scan.
Expectations:
- Errors are isolated
- Scan continues wherever possible
- Failures are clearly reported
Requirement: Given identical inputs, the system shall produce identical outputs.
Expectations:
- No randomness
- No time-dependent behavior (except metadata timestamps)
- Stable ordering where applicable
Requirement: Generated reports shall be fully usable without internet access.
Expectations:
- No external CDN usage
- No remote API calls
- All assets bundled locally
Requirement: No cloud access shall be required after scan completion.
Expectations:
- UI never attempts cloud calls
- Data is frozen at scan time
Requirement: The system shall run on:
- Linux
- macOS
- Windows
Expectations:
- No OS-specific hard dependencies
- File paths handled portably
Requirement: The UI shall work on modern browsers.
Expectations:
- Chrome, Firefox, Edge
- No proprietary browser features
Requirement: The system shall never store cloud credentials.
Expectations:
- Uses local credential providers only
- No credential persistence
- No credential logging
Requirement: All collected data shall remain local to the user.
Expectations:
- No telemetry
- No data exfiltration
- No hidden network calls
Requirement: The system shall operate with read-only permissions where possible.
Expectations:
- No resource mutation
- No write actions to cloud
Requirement: Each cloud service integration shall be isolated.
Expectations:
- Clear boundaries per service
- Failure or change in one service does not affect others
Requirement: New versions of FinLens should not break older reports.
Expectations:
- Older JSON schemas remain readable
- UI supports previous versions where feasible
Requirement: The system shall prioritize non-technical users by default.
Expectations:
- Human-readable language
- Avoidance of cloud jargon
- Progressive disclosure of complexity
Requirement: The UI shall avoid overwhelming the user.
Expectations:
- Limited default views
- Clear visual hierarchy
- Optional advanced details
Requirement: All derived insights must be explainable.
Expectations:
- No "magic numbers"
- Clear reasoning for optimization hints
- Traceability to underlying data
Requirement: The system shall log meaningful operational information.
Expectations:
- Errors logged clearly
- Logs usable for troubleshooting
- No sensitive data in logs
Requirement: The system shall handle growth gracefully.
Expectations:
- Supports increasing resource counts
- No exponential degradation
- UI remains usable with large datasets
Requirement: Reports shall be auditable artifacts.
Expectations:
- Immutable after generation
- Timestamped
- Versioned
The following trade-offs are accepted:
| Trade-Off | Decision |
|---|---|
| Performance vs clarity | Clarity wins |
| Features vs simplicity | Simplicity wins |
| Automation vs trust | Trust wins |
This NFR is satisfied when:
- Reports work fully offline
- Partial failures do not crash scans
- Non-technical users are not overwhelmed
- No credentials or data leak outside the system
Any change affecting:
- Security
- Offline behavior
- Determinism
- Backward compatibility
Requires explicit review and approval.