Administrator Guide
Complete reference for Global Administrators -- creating products, managing users, configuring LLMs, reviewing audit logs, and operating the Admin Panel.
1. Administrator Roles
FlowSquad defines three tiers of access. Understanding the role model is essential before configuring users, products, or authentication.
Global Administrator
Scope: Full, unrestricted system access. The first Global Admin is created during the Setup Wizard.
| Capability | Allowed |
| Configure database, LLM providers, and authentication | Yes |
| Create and delete all products and users | Yes |
| View all audit logs across every product | Yes |
| Manage and upload license files | Yes |
| Toggle debug mode | Yes |
| Access every section of the Admin Panel | Yes |
⚠️
Limit Global Admin accounts
Maintain two to three Global Admin accounts for redundancy, but avoid creating more. Use Product Admin roles for day-to-day management tasks. A user cannot be demoted if they are the only remaining Global Admin (safety check enforced by the system).
Product Administrator
Scope: Scoped to one or more assigned products. Product Admins have full control within their products but cannot access system-wide settings.
Granting Product Admin access -- two equivalent methods:
- RBAC Admin Panel: Admin Panel -> User Management -> select the user -> assign the "Product Admin" role, then associate the user with the target product.
- Product Settings: Navigate to the product -> Settings -> Admin List -> add the user's account directly to the product's admin list.
Both methods grant identical access. Either may be used depending on your workflow.
Product Admins can perform the following within their assigned products:
- Add and remove product members
- Configure product-specific LLM models and settings
- Delete artifacts (Requirements, Epics, Stories, Tasks, Test Cases, Designs) directly through the product dashboard -- no backend access is required
- View product-level analytics and audit events
ℹ️
What Product Admins cannot do
Product Admins cannot access system-wide settings (database, LLM providers, authentication, license management) and cannot view or manage other products.
Regular User
Scope: Read and write access on assigned products only.
- Create and edit requirements, epics, stories, and tasks
- Generate designs and test cases
- View analytics for their assigned products
- Cannot manage other users or access any admin features
2. Admin Panel Overview
The Admin Panel is the central control surface for Global Administrators. Access it by clicking Admin Panel in the top navigation bar. The URL is /admin.
ℹ️
Access control
The Admin Panel link is visible only to Global Admins. Product Admins manage their products through the product's own Settings page. Regular Users do not see any admin controls.
| Section | Purpose | This Guide |
| Dashboard | System overview: product count, requirements total, license status, vector DB size | -- |
| Products | Create products, assign Product Admins, manage members | Section 3 |
| User Management | Create, edit, and deactivate users; assign roles; reset MFA | Section 4 |
| License Management | View license details, upload new enterprise licenses | Section 8 |
| Analytics & Insights | SQL-based usage analytics, LLM cost tracking, query history | Section 9 |
| Audit Logs | Security and compliance event logs; CSV export | Section 10 |
| System Health | On-demand and scheduled probes for all configured services; warning banner integration | Section 11 |
ℹ
Authentication, LLM, Database, and SMTP are configured in the Setup Wizard
Settings for authentication providers, LLM models, database connection, and SMTP email are managed through the ⚙️ Setup button in the top navigation bar (visible to admins only). These are not separate Admin Panel pages — the Setup Wizard can be re-run at any time to update any of these settings.
3. Creating Products & Assigning Admins
💡
Try the E-Commerce Demo first
Before creating your own product, click the 🎬 Try Demo button on the Products dashboard (visible to admins only, shown once until the demo is created). This creates a fully analyzed sample e-commerce product with 3 codebases, 30 test cases, automation scripts, and product documents — giving you an instant, hands-on walkthrough of the entire FlowSquad workflow before you load your own codebase.
ℹ
First action after setup
Creating a product and assigning a Product Admin is the most common first action after completing the Setup Wizard. Do this before inviting team members — they need a product to be added to.
Creating a Product
- From the FlowSquad dashboard, click + New Product
- Enter the Product Name (required) and an optional description
- Select the Default LLM Model for this product (overrides the global default). Can be changed later in Product -> Settings -> LLM Configuration
- Optionally assign initial Product Admins (see below)
- Click Create Product
The new product opens automatically. Team members can now be added and the product is ready for use in all workflow tabs.
Assigning a Product Admin
Two equivalent methods -- use whichever fits your workflow:
| Method | Path | Best For |
| Via Product Settings |
Product -> Settings -> Admin List -> add the user's account |
Fastest when you are already inside the product |
| Via RBAC Admin Panel |
Admin Panel -> User Management -> select the user -> assign Product Admin role -> associate with the product |
Useful when assigning the same user to multiple products at once |
Managing Product Members
Product Admins and Global Admins can add or remove members at any time:
- Navigate to Product -> Manage Users
- Search for existing FlowSquad users by name or email
- Assign role: Regular User (read/write on all tabs) or Product Admin (full product control)
ℹ️
Users must already have a FlowSquad account
A user must have an active FlowSquad account (local, LDAP, SAML, or OAuth2) before they can be added to a product. Create or provision user accounts first in User Management, then add them to products.
Product Settings
Navigate to Product -> Settings. Available options:
- Product name, description, and logo
- LLM model assignments per operation (Analyze, Refine, Epic, Story, Task, Design, Test Cases, Quality, Security Scan, AskProduct)
- Admin List -- add or remove Product Admins
- Member list -- add or remove Regular Users
- Integration overrides -- override the default Jira project key for this product
- Danger Zone -- archive or permanently delete the product
💡
Product Admin artifact deletion
Product Admins can delete Requirements, Epics, Stories, Tasks, Test Cases, and Designs directly from the product dashboard -- no backend or database access is required.
4. User Management
Path: Admin Panel -> User Management
Creating Users
Local Users
- Click + Add User
- Complete the form:
- Username -- required, must be unique
- Email -- required, must be unique
- Display Name -- shown in the UI
- Password -- minimum 8 characters; stored as bcrypt hash (12 rounds)
- Role -- Global Admin, Product Admin, or Regular User
- If assigning Product Admin or Regular User, also assign the user to one or more products
- Click Create User
LDAP / Active Directory Users
LDAP users are auto-created in FlowSquad on their first successful LDAP login. To pre-create an account before first login, use Admin Panel -> User Management -> Search LDAP, locate the user, and click Import.
SAML / OAuth2 Users
SSO users are created automatically when they complete their first login. The email address returned by the identity provider is used as the username. These accounts cannot have a local password set -- authentication is exclusively via SSO.
Assigning and Changing Roles
To promote a user to Global Admin: click the user's row -> Promote to Global Admin. This action requires confirmation, as Global Admins have full system access.
For product-level roles, navigate to the product -> Manage Users -> add or change the user's role (Product Admin or Regular User).
The role hierarchy:
Global Admin (system-wide, unrestricted)
v
Product Admin (scoped to assigned products)
v
Regular User (read/write on assigned products)
Resetting Passwords
Click a user's row -> Reset Password. You may either set a specific temporary password or generate a password-reset link to email to the user. SSO-only users (LDAP, SAML, OAuth2) do not have a local password and cannot use this function.
Bulk Import via CSV
To import multiple users at once: Admin Panel -> User Management -> Import Users (CSV). The CSV must include columns: username, email, display_name, role. Download the template from the import dialog for the exact format.
Multi-Authentication User Management
FlowSquad supports multiple authentication methods simultaneously. Each user record stores the auth provider and provider-specific ID:
| Auth Method | Auto-created on first login | Can set local password |
| Local | No (admin creates manually) | Yes |
| LDAP / Active Directory | Yes | No |
| SAML 2.0 | Yes | No |
| OAuth2 (GitHub, Google, Microsoft, Okta, Keycloak) | Yes | No |
To filter users by authentication provider, use the All Providers dropdown in the User Management list. Each user's detail view shows their auth method and last login timestamp.
Multi-Factor Authentication (MFA)
FlowSquad supports TOTP-based MFA (Google Authenticator, Authy, and compatible apps) with email backup codes.
- Users configure MFA in their own Preferences page by scanning a QR code
- 10 one-time backup codes are generated at setup time
- Optional SMS backup requires Twilio configuration in Settings
Admin MFA actions:
- View MFA status: The user list displays an MFA badge next to each user
- Reset MFA: Click user -> Reset MFA -- forces the user to re-enrol on next login
- Disable MFA: Click user -> Disable MFA -- removes MFA requirement for that account
- Force MFA policy: Admin Panel -> Settings -> Security -> Require MFA for all users -- users without MFA set up are redirected to the enrolment page on next login
5. Authentication Configuration
Configured via: Setup Wizard → Step 4 (Authentication). The wizard can be re-opened at any time from the ⚙️ Setup button in the navigation bar.
FlowSquad uses an ordered authentication chain: Local -> LDAP -> SAML -> OAuth2. Local authentication is always active and serves as the fallback. Each additional method is enabled independently.
Local Authentication
Always enabled and cannot be disabled. It provides the primary admin account and acts as the fallback when all other methods are unavailable.
- Minimum password length: 8 characters
- Passwords are hashed using bcrypt with 12 rounds
- Password complexity requirements are configurable in Admin Panel -> Settings -> Security
LDAP / Active Directory
- Setup Wizard Step 4 → LDAP / Active Directory
- Configure the connection:
- Server URI:
ldap://ad.company.com:389 or ldaps://ad.company.com:636
- Bind DN:
CN=ServiceAccount,OU=Users,DC=company,DC=com
- Bind Password: Service account password
- User Search Base:
OU=Users,DC=company,DC=com
- User Search Filter:
(sAMAccountName={username})
- Group Search Base:
OU=Groups,DC=company,DC=com
- Group Membership Attribute:
memberOf
- Click Test Connection to verify
- Map LDAP groups to FlowSquad roles:
CN=FlowSquad-Admins,OU=Groups,DC=company,DC=com -> Global Admin
CN=FlowSquad-Users,OU=Groups,DC=company,DC=com -> Regular User
- Save configuration
💡
Group-based auto-assignment
Users in mapped LDAP groups automatically receive the corresponding role on login. Role assignments are refreshed on every login. Manual role overrides set in FlowSquad take precedence over LDAP group mappings.
SAML 2.0 SSO
Supported identity providers include Keycloak, Okta, Azure AD, OneLogin, ADFS, Google Workspace, and any standard SAML 2.0 provider.
- Setup Wizard Step 4 → SAML
- Enter identity provider settings:
- IdP Entity ID: Your IdP's entity ID (from IdP metadata)
- IdP SSO URL: Single Sign-On URL from your IdP
- IdP SLO URL: Single Logout URL (optional)
- IdP Certificate: Paste the X.509 PEM certificate from your IdP
- Copy service provider values to your IdP:
- SP Entity ID:
https://flowsquad.company.com/saml/metadata
- SP ACS URL:
https://flowsquad.company.com/saml/acs
- SP SLO URL:
https://flowsquad.company.com/saml/sls
- Configure attribute mappings:
- Email:
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
- Display Name:
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
- Optionally enter Designated Admin Emails -- a comma-separated list of email addresses that are automatically promoted to Global Admin on first SSO login
- Click Download Metadata XML and upload it to your IdP
- Click Test SAML Login, then Save Configuration
ℹ️
SAML request signing
FlowSquad automatically generates an RSA key pair for signing SAML authentication requests. The key is stored securely in the encrypted configuration database and uses the RSA-SHA256 algorithm.
OAuth2 Social Login
Supported providers: GitHub, Google, Microsoft, Okta, Keycloak, and any OpenID Connect-compatible provider.
Example: GitHub OAuth2 setup
- In GitHub: Settings -> Developer Settings -> OAuth Apps -> New OAuth App
- Homepage URL:
https://flowsquad.company.com
- Authorization callback URL:
https://flowsquad.company.com/oauth2/github/callback
- Copy the Client ID and Client Secret
- In FlowSquad: Setup Wizard Step 4 → OAuth2 → GitHub
- Enter Client ID, Client Secret, and scopes (
user:email,read:user)
- Click Test OAuth2 Login, then Save
6. LLM Configuration
Path: Admin Panel -> LLM Configuration
FlowSquad supports multiple LLM providers simultaneously. API keys are configured globally, then individual models are assigned per product and per operation, giving fine-grained control over both quality and cost.
Supported Providers
| Provider | Models | Notes |
| OpenAI | GPT-4, GPT-4o, GPT-4o-mini, GPT-4-turbo, GPT-3.5-turbo | API key required |
| Anthropic Claude | Claude 3.5 Sonnet, Claude 3 Opus, Claude 3 Sonnet, Claude 3 Haiku | API key required |
| GitHub Models | GPT-4o, GPT-4o-mini, GPT-4-turbo | GitHub account with Models marketplace access required |
| Ollama (Enterprise) | Llama 3, Mistral, Code Llama, and any locally pulled model | Self-hosted; no external API key needed |
Adding an LLM Provider
OpenAI
- Click + Add LLM Provider -> select OpenAI
- Enter your API key
- Select models to enable (GPT-4o for highest quality, GPT-4o-mini for cost efficiency, GPT-3.5-turbo for fastest/cheapest)
- Click Test Connection, then Save
Anthropic Claude
- Click + Add LLM Provider -> select Anthropic
- Enter your API key
- Select models (Claude 3.5 Sonnet for best overall, Claude 3 Opus for highest intelligence, Claude 3 Haiku for fastest/cheapest)
- Click Test Connection, then Save
GitHub Models
- Click + Add LLM Configuration -> select GitHub
- Create a fine-grained Personal Access Token at github.com/settings/personal-access-tokens/new: under Permissions expand Copilot Request → set to Read-only. No repository access is needed. Classic PATs are not supported.
- Paste the token (starts with
github_pat_). Your account must be enrolled in the GitHub Models marketplace (free).
- Click Test Connection & Fetch Models, select a text model, then Add to Configuration List
Note: Enterprise-managed user (EMU) accounts cannot access GitHub Models — use a personal GitHub account.
Ollama (Self-Hosted)
# 1. Install Ollama on your server
curl https://ollama.ai/install.sh | sh
# 2. Pull desired models
ollama pull llama3
ollama pull mistral
- Click + Add LLM Provider -> select Ollama
- Enter the Ollama API URL:
http://localhost:11434
- Available models are auto-detected from Ollama
- Click Test Connection, then Save
Per-Product LLM Assignment
Path: Product -> Settings -> LLM Configuration
Each product can independently assign a different provider and model to each of the 10 AI operations:
| Operation | Description |
| Analyze | Requirement analysis and parsing |
| Refine | Requirement refinement and improvement |
| Epic | Epic generation from requirements |
| Story | User story generation |
| Task | Task breakdown from stories |
| Design | Technical design and architecture generation |
| Test Case | Test case generation |
| Quality | Quality scoring and suggestions |
| Security Scan | Security requirement analysis |
| AskProduct | Q&A against product context |
Cost optimisation example:
Analysis (high volume): GPT-4o-mini = $0.15 per 1M tokens
Design (low volume): GPT-4o = $2.50 per 1M tokens
Total Savings: ~85% compared to using GPT-4o for all operations
LLM Cost Tracking
Path: Admin Panel -> Analytics & Insights -> LLM Usage
- Per-provider and per-product cost breakdown
- Token usage (input and output) with daily, weekly, and monthly trend charts
- Set monthly budget limits per product; email alerts fire when thresholds are reached
- Optionally pause AI operations automatically if the budget limit is exceeded
7. Database Management
Path: Admin Panel -> Database Settings
Database configuration is read-only in the Admin Panel after initial setup. Changing the database type requires running the Setup Wizard (/setup -- Global Admin only) and migrating existing data.
Supported Database Types
| Database | Use Case | Connection String Example |
| PostgreSQL (recommended) | Production, multi-user, high availability | postgresql://user:pass@host:5432/flowsquad |
| MySQL / MariaDB | Production, existing MySQL infrastructure | mysql://user:pass@host:3306/flowsquad |
Configuration Database
FlowSquad uses a separate SQLite database (flowsquad_engine.db) for storing settings, API keys, license information, and authentication credentials. This database is always SQLite and is distinct from the product data database (PostgreSQL or MySQL).
Configuration Database Security
All sensitive values stored in the configuration database — API keys, integration passwords, SAML keys — are encrypted at the field level using Fernet AES-128-CBC before being written to the settings table. Whole-file database encryption is not available. For at-rest protection of the full database file, use filesystem-level encryption (LUKS/dm-crypt on Linux, BitLocker on Windows, or an encrypted Docker volume).
For product data encryption at rest, use your database platform's native capabilities:
- PostgreSQL:
pgcrypto extension or filesystem-level encryption
- MySQL: InnoDB tablespace encryption
Running Migrations
Database migrations run automatically on application start whenever a new version of FlowSquad is launched. No manual steps are required. Always back up your database before upgrading.
8. License Management
Path: Admin Panel -> License Management
License Types
| Feature | Evaluation | Enterprise |
| Validity | 30 days | 1+ years (custom) |
| Products | 1 maximum | Unlimited |
| Users | Unlimited | Unlimited |
| Feature access | Full | Full |
| License signing | -- | RSA-4096 |
| Support | Community | Priority email support |
Viewing License Details
Admin Panel -> License Management displays:
- License type (Evaluation / Enterprise)
- Company name
- Maximum products allowed
- Expiration date and days remaining
- License key (partial, shown for reference only)
Applying a New Enterprise License
- Receive the
enterprise_license.lic file from FlowSquad sales
- Admin Panel -> License Management -> Upload License
- Select the
.lic file and click Upload
- The system validates the RSA-4096 signature, expiration date, and company name match
- If valid, the license is activated immediately and the page reloads showing the new details
⚠️
License upload errors
"Invalid signature" indicates the file was corrupted or tampered. "License expired" means the license has passed its validity date -- contact FlowSquad sales. "Invalid format" means the wrong file type was uploaded.
License Expiration Handling
When the license expires, FlowSquad blocks all access (HTTP 403) and displays a license expiry page. Users cannot log in until a valid license is uploaded. The license upload widget remains accessible on the expiry page so a Global Admin can apply a renewal without needing to log in first.
| State | Behaviour |
| License valid | Normal operation. |
| License expired | All access blocked. Login page replaced with license expiry screen. Global Admin can upload a new enterprise license directly from the expiry page. |
| License file missing | License expiry screen shown with an upload widget to restore or replace the license file. |
| Machine ID mismatch | License error screen shown. Contact support@flowsquad.ai to re-issue the license for the new machine. |
ℹ
Evaluation license clock
The evaluation license clock starts on first application run and is tied to the host machine ID. The 30-day window cannot be reset by reinstalling — the activation record is stored independently of the license file. To continue beyond 30 days, contact
support@flowsquad.ai for an enterprise license.
9. Analytics & Insights
Path: Admin Panel -> Analytics & Insights
Global Admins see analytics across all products. Product Admins accessing the product-level analytics tab see data for their assigned products only.
System-Wide Analytics
The system-wide dashboard provides:
- Usage metrics: Total requirements created (all-time and last 30 days), designs and test cases generated, active users (last 7 and 30 days), storage consumed
- LLM usage: API calls per provider, tokens consumed (input and output), estimated costs per provider and in total, average response time, error rate
- Performance: Average page load time, API response time, database query performance, background task queue depths
Per-Product Analytics
Path: Product -> Analytics tab
- Requirements by status (New, In Progress, Completed)
- Quality score trends over time
- Most active contributors
- LLM cost breakdown scoped to that product
- Activity timeline
Exporting Analytics
Data can be exported in the following formats:
- CSV -- raw data suitable for Excel or Google Sheets
- PDF -- formatted report with charts
- JSON -- for API and SIEM integration
Scheduled reports (daily, weekly, or monthly) can be configured and emailed to Global Admins and Product Admins with customisable metrics.
10. Audit Logs
Path: Admin Panel -> Audit Logs
FlowSquad logs all security-relevant and data-mutating events automatically. Logs cannot be modified or deleted by any user.
Logged Event Categories
| Category | Events Logged |
| Authentication | Login (success and failure), logout, MFA setup and reset, failed brute-force attempts |
| User Management | User created, updated, deleted; role assignments changed |
| Product Actions | Product created or deleted; requirement, design, and test case created, edited, or deleted |
| System Actions | License uploaded, LLM provider added or removed, database configuration changed, authentication settings changed |
| Security Events | Privilege escalation (role changes), API key created or deleted, configuration exports |
Searching and Filtering Logs
Use the filter controls to narrow the log view:
- Date range: Last 7 days, last 30 days, or custom range
- Event type: Login, Create, Update, Delete, and more
- User: Specific username or all users
- Product: Specific product or all products
- Severity: Info, Warning, Error
Example searches: "All failed login attempts in the last 24 hours", "All product deletions by user admin", "All license changes".
Exporting Audit Logs
Logs can be exported as CSV (for compliance audits and Excel analysis), JSON (for SIEM integration), or PDF (formatted report).
FlowSquad audit logs are designed to satisfy the requirements of SOC 2, HIPAA, and GDPR compliance programmes:
- SOC 2: Comprehensive access and change event logging
- HIPAA: Full access logging with user identification
- GDPR: User data access tracking to support data subject requests
11. System Health
Path: Admin Panel → System Health (also accessible via the 🩺 System Health button on the Audit Logs, Analytics, User Management, and Settings pages)
The System Health page gives Global Administrators a live view of every service FlowSquad depends on, and lets them configure automated background monitoring that surfaces warnings directly in the UI.
On-Demand Health Check
Click ▶ Run Health Check Now to trigger an immediate probe of all configured services. Results appear in a table with three columns:
| Column | Description |
| Service | Name of the probed component (e.g., Application Database, Configuration Database, LLM Provider, SMTP, LDAP) |
| Status | ✓ OK or ✗ FAIL |
| Message | Details such as response time, error description, or connection info |
A summary line below the table shows the timestamp and a count of healthy services (e.g., 4/5 services healthy).
Recurring Health Monitoring
When enabled, FlowSquad runs health probes automatically in the background at a configurable interval. The results are surfaced as a warning banner at the top of every page whenever a service is degraded — no manual checking is required.
| Setting | Default | Description |
| Enable recurring health monitoring | Off | Toggle to start background probing |
| Check interval (minutes) | 60 | How often probes run; minimum 1 minute, maximum 1440 (24 hours) |
Click 💾 Save Settings after making changes. Settings take effect immediately without restarting FlowSquad.
ℹ
Warning banner behaviour
When a background probe detects a degraded service, a yellow warning banner appears at the top of every page for all logged-in users. Clicking Details expands a list of affected services. Admins can dismiss the banner until the next probe cycle. The banner disappears automatically once all services recover.
💡
Recommended interval
Set the interval to 5–15 minutes for production environments where rapid detection of outages is important. Use 60 minutes for lower-traffic or development deployments to reduce background noise.
12. Backup & Recovery
Regular backups protect against data loss from hardware failure, migration errors, or accidental deletions. FlowSquad recommends daily automated backups with off-site storage.
Configuration Database Backup
Copy the configuration database file directly:
# Linux/Docker -- config database
cp ${FLOWSQUAD_DATA_DIR:-/var/lib/flowsquad}/flowsquad_engine.db /backups/engine_$(date +%Y%m%d).db
# Windows
copy "%LOCALAPPDATA%\FlowSquad\flowsquad_engine.db" "C:\Backups\engine_%date:~-4,4%%date:~-10,2%%date:~-7,2%.db"
⚠️
Config database backup
The config database backup can be restored directly — no password is required. Sensitive field values (API keys, passwords) are stored encrypted within the database and will remain encrypted in the backup.
Product Database Backup
# PostgreSQL
pg_dump -U flowsquad -h localhost flowsquad > backup_$(date +%Y%m%d).sql
# MySQL / MariaDB
mysqldump -u flowsquad -p flowsquad > backup_$(date +%Y%m%d).sql
# SQLite (if used for product data)
cp flowsquad_engine.db backup_$(date +%Y%m%d).db
Automated Backup Script (Linux)
#!/bin/bash
BACKUP_DIR="/var/backups/flowsquad"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
# Backup product database
pg_dump -U flowsquad flowsquad | gzip > $BACKUP_DIR/flowsquad_$DATE.sql.gz
# Backup config database
cp /var/lib/flowsquad/flowsquad_engine.db $BACKUP_DIR/flowsquad_engine_$DATE.db
# Retain only the last 30 days
find $BACKUP_DIR -name "*.sql.gz" -mtime +30 -delete
echo "Backup completed: $DATE"
Schedule this script as a daily cron job:
# Make executable
sudo chmod +x /usr/local/bin/backup-flowsquad.sh
# Run daily at 2:00 AM
sudo crontab -e
# Add: 0 2 * * * /usr/local/bin/backup-flowsquad.sh
Restore Procedure
# PostgreSQL
gunzip -c backup_YYYYMMDD.sql.gz | psql -U flowsquad flowsquad
# MySQL
gunzip -c backup_YYYYMMDD.sql.gz | mysql -u flowsquad -p flowsquad
💡
Test your restore procedure quarterly
A backup that has never been tested is an untested assumption. Schedule a quarterly restore drill to a staging environment to verify your backups are complete and usable.
13. Security Best Practices
Administrator Account Security
- Use a minimum 16-character password for all Global Admin accounts
- Use a password manager -- do not reuse passwords
- Enable TOTP-based MFA for every Global Admin account
- Maintain 2-3 Global Admin accounts for redundancy; do not create more
- Review active user accounts quarterly and remove accounts for departed personnel immediately
- Rotate LLM API keys at least every 90 days
- Review audit logs at minimum weekly for suspicious activity
Network Security
- Always serve FlowSquad over HTTPS in production -- obtain certificates from Let's Encrypt or a trusted CA
- Use an Nginx (or Apache) reverse proxy for SSL termination, rate limiting, and DDoS protection
- Block direct external access to port 5000 -- expose only port 443 via the reverse proxy
# UFW example -- allow HTTPS only from internet, block direct FlowSquad port
sudo ufw allow 443/tcp
sudo ufw deny 5000/tcp
Database Security
- Verify API keys and integration credentials are stored (field-level Fernet encryption is applied automatically)
- Restrict the FlowSquad database user to only the FlowSquad database:
-- PostgreSQL: limit permissions
REVOKE ALL ON DATABASE postgres FROM flowsquad;
GRANT ALL PRIVILEGES ON DATABASE flowsquad TO flowsquad;
- Store database backups off-site (AWS S3, Azure Blob Storage, or equivalent)
- Enable encryption at rest for the product database using your database platform's native capabilities
Compliance Checklists
SOC 2
- Audit logs enabled and exported monthly
- MFA enforced for all Global Admin accounts
- Sensitive credentials stored encrypted (field-level encryption, enabled by default)
- Regular security patches applied
HIPAA
- All communications served over HTTPS
- Database encryption enabled (at rest and in transit)
- Access logs retained for a minimum of 6 years
- Role-based access controls (RBAC) implemented
GDPR
- User data export capability available
- User deletion (right to be forgotten) supported
- Audit logs capture all data access events
- Data processing agreements in place with LLM providers
ℹ️
Security Reference
For a printable security cheat sheet with cross-links to TLS, Fernet, RBAC, and audit log sections, see the
Security Reference.
14. Troubleshooting: Admin & Platform Issues
Performance -- Slow Requirement Refinement (30+ Seconds)
Diagnosis: Admin Panel -> Analytics -> LLM Usage -> check average response times.
Solutions:
- Switch to a faster model: Admin Panel -> Products -> Edit product -> LLM Configuration -> Refine -> select GPT-4o-mini (averages 1-3 s, 90% cheaper than GPT-4o)
- Break down long inputs: Very long requirements (5,000+ characters) increase token count. Split into three smaller focused requirements.
- Check network latency to LLM provider:
ping api.openai.com -- if >200 ms, consider switching to Anthropic Claude or Ollama (self-hosted, zero network latency)
Performance -- PostgreSQL Slow Queries
Diagnosis:
-- Find slow queries in PostgreSQL
SELECT query, total_time, calls, mean_time
FROM pg_stat_statements
WHERE mean_time > 1000
ORDER BY total_time DESC
LIMIT 10;
Solutions:
-- Add missing indexes
CREATE INDEX idx_requirements_product_id ON requirements(product_id);
CREATE INDEX idx_designs_requirement_id ON designs(requirement_id);
CREATE INDEX idx_test_cases_design_id ON test_cases(design_id);
CREATE INDEX idx_users_username ON users(username);
CREATE INDEX idx_audit_logs_timestamp ON audit_logs(timestamp);
Tune PostgreSQL configuration in /etc/postgresql/XX/main/postgresql.conf:
shared_buffers = 256MB
effective_cache_size = 1GB
work_mem = 16MB
sudo systemctl restart postgresql
Configuration Database Recovery
If flowsquad_engine.db is missing or corrupted, restore from a backup copy. No password is required. Sensitive field values (API keys, passwords) will be re-entered through the Setup Wizard after restore.
License Upload Errors
| Error Message | Cause | Resolution |
| Invalid signature | License file corrupted or tampered | Request a fresh .lic file from FlowSquad sales |
| License expired | License validity date has passed | Contact support@flowsquad.ai for renewal |
| Machine ID mismatch | License was issued for a different machine/cluster ID | Verify FLOWSQUAD_CLUSTER_ID matches the ID used when the license was generated |
| Invalid format | Wrong file type uploaded | Ensure you are uploading the .lic file, not a ZIP or PDF |
->
Admin setup complete -- next step: User Guide
Products are created and admins are assigned. Share the
User Guide with your Product Admins and team members to get started with codebase analysis, requirement generation, and SDLC workflow.