Skip to content
MindWorks Resources Fox Den
Customers Sites Users Products
Roles Settings Analytics Standards Logs FE Night
My Profile

⚙️ System Settings

Manage system-wide configuration defaults

Loading settings...

Failed to load settings

ℹ️ You have read-only access to settings. Contact a business administrator to make changes.
▼

Customer Defaults

Default permissions for new customers

These defaults are applied when creating new customers. Individual customers can have different settings on their profile.

Assignment Quota

Controls how many times customer roles can assign products to sites

Quota = floor(licenses × multiplier). Example: 80 licenses × 1.1 = 88 assignments

Time within which reassignment restores quota (mistake correction window)

Customer Permissions

Default self-service capabilities for customer-level roles

Who can add, edit, and delete sites

Who can assign products to sites (uses quota)

Last updated: - by -
▼

Login Settings

Default page after successful login

When users log in without a redirect parameter in the URL, they will be sent to this page. If a redirect parameter is present, it takes precedence.

Enter a path starting with "/" (e.g., "/pages/acl-products", "/pages/acl-my-profile"). Leave as "/" for home page.

Last updated: - by -

Support Password

The support password allows you to log in as ANY user for troubleshooting purposes. This password is stored securely in Google Secret Manager as a bcrypt hash.

Current Status: Configured
Last Updated: -

⚠️ Warning: Changing this password will affect all support access across the system.

▼

🤖 AI Chat Settings

Global AI guidelines for content refinement

Define guidelines and preferences for AI-assisted content refinement. These rules are sent with every AI Chat request and help Claude understand your organizational standards, brand voice, and educational requirements.

Status

When enabled, the guidelines below will be included in every AI Chat conversation as system context.

End-User AI Access

When enabled, all end users (instructors, site admins, etc.) can access AI-enhanced search features. When disabled, AI access is controlled per-site via the Edit Site modal.

Global AI Guidelines

Define AI behavior, tone, and constraints (similar to .cursorrules in Cursor IDE)

Tip: These guidelines are appended to every AI Chat system prompt. Use this to define brand voice, educational standards, content restrictions, format preferences, etc.

💡 Interactive Follow-up Syntax

You can include clickable follow-up links in AI responses using special syntax in your prompts:

[?question text?]

Basic format: Creates a clickable link that displays and sends the same text.

Example: [?How do I handle shy students?]

[?"display text" -> actual question?]

Arrow format: Shows one thing but sends another. Perfect for displaying student quotes while sending full response questions.

Example: [?"I don't like animals" -> How should I respond to a student who says "I don't like animals"?]

Result: User sees "I don't like animals" but clicking sends the full question.

Tip: Include these in your preset prompts or guidelines to make AI responses more interactive and conversational.

0 / 50000 characters
Last updated: - by -
▼

💬 AI Chat Presets

Topic buttons for quick AI conversations

Configure topic presets that appear as buttons in the AI Chat "Topics" menu. Click a preset to automatically send that prompt to the AI. Drag rows to reorder.

No presets configured.

Click "Add Preset" to create one.

Name Prompt Preview Status Actions

Tip: Drag the ⋮⋮ handle to reorder presets. Only enabled presets appear in the Topics menu.

Last updated: - by -
▼

🤖 AI Models

Model registry and purpose assignments

Available Models

Models available for assignment. Add or deprecate models without code deploys.

Purpose Assignments

Assign models to functional areas. Changes take effect on the next API call for that purpose.

Last updated: - by -
▼

🎯 Standards Alignment Concurrency

AI generation parallelism and batch processing limits

Control how many AI calls run in parallel during standards alignment generation. Higher values are faster but increase Anthropic API load and Cloud Run memory pressure.

Activities sent to AI concurrently for MCN generation. Also controls per-framework alignment parallelism. Range: 1-10.

Frameworks aligned in parallel per activity. Range: 1-5.

Activities processed at once during full pipeline (MCN + alignment together). Range: 1-10.

Worst-case concurrent AI calls: 15 (Framework Concurrency × MCN Generation Concurrency)
Last updated: - by -
▼

📄 PDF Generation Settings

Configure font styles, sizes, and spacing for activity PDFs

Control the appearance of generated activity PDFs. Changes take effect on the next PDF download.

Default Font Settings

Only Roboto is currently supported

Range: 8-16pt (recommended: 11)

Range: 1.0-3.0 (recommended: 1.6)

Document Title & Subtitle

Appears on the first page header (e.g., "Activity 5: Making Choices" and date)

Activity title (recommended: 20)

Make title text bold

Date line (recommended: 10)

Watermark / Footer

Text at the bottom of every page. Customize what information appears.

Footer text size (recommended: 8)

Distance from bottom of page (default: 20pt). Increase for books with larger footers.

Watermark Content

Optional text at start of watermark (leave blank to omit)

Date always appears. Items separated by " | ".

Heading Styles

Paragraph & List Spacing

Space after paragraphs (recommended: 8)

Line spacing in lists (recommended: 1.0)

Bullet character size (recommended: 11)

Sample PDF Watermark Settings

Configure the diagonal "SAMPLE" watermark that appears when internal users generate sample PDFs for prospective customers.

When enabled, "📄 Sample" button generates PDFs with diagonal watermark

Default: 80pt

Default: 45° (diagonal)

Default: #CCCCCC (light gray)

Default: 30% (subtle)

If blank, automatically uses "SAMPLE ACTIVITY", "SAMPLE LESSON", etc. based on asset type

Negative = left, Positive = right

Negative = down, Positive = up

Last updated: - by -
▼

🚫 PDF Extraction - Ignored Images

Skip logos, icons, and decorative elements during extraction

Images added to this list will be automatically skipped during PDF activity extraction. Use this to prevent logos, footer icons, and decorative elements from being extracted as activity images.

Title Description Reason Actions
No ignored images configured. Add images to skip during PDF extraction.
Last updated: - by -
▼

⚙️ PDF Extraction - Product Type Configs

Configure extraction rules per product type (Imaginate, Cornerstone, etc.)

🌐 Global AI Instructions

These instructions apply to ALL product types during extraction. Use this for guidelines that should be consistent across Imaginate, Cornerstone, Brain Boost, and Base Camp.

Loading...

⚡ Performance Tuning

Configure concurrency limits for parallel AI operations during PDF extraction. Higher values = faster processing, but may hit API rate limits.

Loading...

Each product type (e.g., Imaginate, Cornerstone) can have custom extraction rules. Configure activity keywords (Activity vs. Lesson), custom fields, stop patterns, and AI guidelines.

Product Type Activity Keyword Custom Fields Stop Patterns Status Actions
Loading extraction configs...
Configs loaded successfully
▼

👁️ Client Error Logs

Frontend errors and issues

Automatically logged frontend JavaScript errors from all users. Use this to diagnose issues when users report "page not loading" or unexpected behavior.

Timestamp User Type Error Message Page Details
Click "Load Errors" to view error logs
No errors loaded
▼

Role Limits

Default values for new customers

These defaults are used when creating new customers. Individual customers can have different limits set on their profile.

Customer-Scoped Roles

Maximum users per customer (total across all sites)

Site-Scoped Roles

Maximum users per site (can be overridden per-site)

Last updated: - by -
▼

Phone Authentication

Disabled

Allow users to log in with their phone number instead of email. Requires Twilio Verify for SMS OTP.

⚠️ Twilio is not configured. Phone authentication requires Twilio environment variables to be set.

Status

When enabled, users can log in with their phone number and receive verification codes via SMS.

OTP Settings

Configure one-time password verification behavior

How long verification codes remain valid

Minimum wait time before requesting a new code

Maximum failed attempts before lockout

Allowed Countries

Phone numbers from these countries are accepted

🇺🇸 United States (+1)

Contact support to add additional countries

Last updated: - by -
▼

Drive Bookmarks

Source folders in Google Drive for importing files

Configure quick-access folders that appear in the "Import from Drive" dropdown. These are shared across all users.

Label Folder ID Actions
No bookmarks configured

Tip: Open the folder in Google Drive and copy the URL. The folder ID will be auto-extracted and the drive will be auto-detected.

⚠️ Important: The service account 63748421663-compute@developer.gserviceaccount.com must have at least Viewer access to any folder configured here.

▼

Product Types

Manage product types, Shopify mappings, and activity labels

Define product types used across the system. Map Shopify product types to ACL types for sync, and set custom activity labels (e.g., "Lesson" for Cornerstone, "Activity" for Imaginate).

Name Status Shopify Types Sync Activity Label Actions
Loading product types...

Tip: Drag rows to reorder. "Shopify Types" shows which Shopify product types map to this ACL type. "Sync" controls whether products appear in Shopify sync.

▼

Variant Name Mapping

Map Shopify variant names to ACL names

Define synonyms for variant names. When syncing from Shopify, variant names like "Elementary K-2" will automatically map to ACL names like "Lower Elementary".

ACL Variant Name Grade Level Age Range Status Shopify Synonyms Actions
Loading variants...

How it works: During Shopify sync, if a Shopify variant is named "Elementary K-2" and "Lower Elementary" has that synonym, the import will suggest using "Lower Elementary" as the ACL name.

▼

🎬 Media Settings

Configure signed URL expiration for product assets

Control how long signed URLs remain valid for product asset previews (PDFs, videos, Drive files). Shorter durations improve security, while longer durations provide better user experience for large files or slow connections.

Product Asset Preview URLs

3 hours

Default: 10800 seconds (3 hours). Applies to all product asset preview links: PDFs, videos, and Drive files. Range: 60 seconds (1 minute) to 604800 seconds (7 days).

PDF Watermarking

When enabled, PDFs will include user-specific watermarks (name, organization, date). Adds ~1-2 seconds processing time.

PDF Caching

When enabled, watermarked PDFs are cached to improve performance. Disable for testing or debugging.

Always reuse cache if younger than this (no checks)

Default: 5 minutes. Set to 0 to disable very recent caching.

Reuse cache if settings and date match

Default: 60 minutes. Cache reused only if settings unchanged and same date. Set to 0 to disable recent caching.

▼

⚡ API Response Cache

Configure per-role cache TTLs and manage cache busting

API responses are cached in the browser to reduce server load and improve page speed. Longer TTLs mean faster page loads but slower propagation of content changes. Use "Refresh Cache" buttons on detail pages to force-refresh specific scopes, or the global button below for emergencies.

Role-Based Cache Duration

How long API responses stay cached for each role. Business admins and business users are never cached (they mutate data).

Static Data Cache Duration

For rarely-changing reference data (product types, standards frameworks, language packs). Applies to all roles.

minutes

Heartbeat Interval

How often each user's browser pings the server to check for account changes (deactivation, cache updates, config sync). This is a lightweight call. Lower = faster detection of security events and admin changes, but more server calls across all users.

minutes

Session Verification Interval

How often the system fully re-verifies a user's identity, roles, and permissions with the server. This is a heavier call that refreshes the complete auth state. Higher = faster page loads but slower detection of role or permission changes. Must be equal to or greater than the heartbeat interval.

minutes

Emergency: Clear All User Caches

Forces every user's browser to discard cached data on their next check (within the interval above). Use when urgent content corrections must propagate immediately.

▼

Email Settings

Sender name, branding, and reply-to for transactional emails

These settings control how outgoing emails (invitations, password resets, OTP codes) appear to recipients.

Sender Information

Controls the "From" line recipients see in their inbox

Display name shown in recipient's inbox (e.g., "MindWorks Resources")

Email address in the "From" field

If set, replies go here instead of the from address. Leave blank to show "do not reply" in footer.

Shown in email footer as "Questions? Contact ..."

Branding

Brand identity used in email content and footers

Used in email subject lines, headings, and header bar

Shown in email footer next to brand name

Used for headings, buttons, and accent bar in emails

HTTPS URL to a hosted logo image (PNG or JPG, max height 48px in email). Leave blank to show brand name as text.

Logo preview
▼

Important Notes

System configuration requirements

The following system configuration is required for full functionality.

🔑 Service Accounts

Cloud Run (Default)

Email: 63748421663-compute@developer.gserviceaccount.com
Client ID: 103026683036280338281

DWD Service Account (for Google Drive)

Email: drive-dwd-service@shopify-access-api.iam.gserviceaccount.com
Client ID: 110104466720515118990 ← Used in Admin Console DWD
Key Storage: Secret Manager: DWD_DRIVE_KEY

📋 Required Permissions

  • Content Manager on mindworks-private-assets Shared Drive
  • Viewer access to any Drive Bookmark folders configured above
  • Secret Accessor role on DWD_DRIVE_KEY secret (for Cloud Run SA)
  • Domain-Wide Delegation in Google Admin Console (DWD SA Client ID: 110104466720515118990)

🔐 Domain-Wide Delegation (DWD)

✅ Status: Configured and working! Google Slides/Docs/Sheets can now be imported.

Why Required: Service Accounts have zero storage quota. DWD allows impersonating a real user (estephen@mindworksresources.com) to copy Google native files.

Admin Console: Security → API controls → Domain-Wide Delegation
OAuth Scope: https://www.googleapis.com/auth/drive

📄 Full Documentation: See docs/config/config-google-api.md for complete setup, key rotation, and troubleshooting guide.

Edit AI Chat Preset

This name appears in the Topics menu

The exact message sent to AI when this preset is selected

0 / 10000

Delete Preset?

Are you sure you want to delete ""?

This cannot be undone.

💡 Interactive Follow-up Syntax

Include clickable follow-up links in AI responses using special syntax in your prompts:

Basic Format

[?question text?]

Creates a clickable link that displays and sends the same text.

Example:

[?How do I handle shy students?]

Result: How do I handle shy students?

Arrow Format (Advanced)

[?"display text" -> actual question?]

Shows one thing but sends another. Perfect for displaying student quotes while sending full response questions.

Example:

[?"I don't like animals" -> How should I respond to a student who says "I don't like animals"?]

User sees: "I don't like animals"
AI receives: How should I respond to a student who says "I don't like animals"?

💡 Perfect for Student Objections

Ask the AI to list student objections with clickable quotes. When clicked, each quote sends a full "How should I respond..." question to get tailored advice.

Powered by MindWorks Resources
© 2026 MindWorks Resources. All rights reserved.