Smarter Documentation

Teaching and Training

  • Smarter Instructor Guide
    • Open Source, Free, and Community Supported
    • From Educational Sandbox to Live Production
    • Free Course Designs
    • Getting Smarter Running
      • Quick Start
      • From Source
      • The Command-Line Interface
      • A First Look Around
    • Setting Up a Class
      • Choosing a Deployment Model
      • Accounts and Users
      • Managing Cost
      • Privacy and Academic Integrity
    • Planning a Course
      • Sample Formats
      • Assignments and Grading
    • Instructor Checklist
    • Getting Help and Giving Back
  • Free Course Designs
    • Micro Courses
      • Course Formats and Grading
        • The Three Formats
        • Grading
        • Course Policies
        • Before Teaching a Plan
      • Prompt Engineering
        • Classroom bootcamp: 8 hours
        • Two-week online course: 6 hours
        • Four-week online course: 12 hours
      • Building AI Applications
        • Classroom bootcamp: 8 hours
        • Two-week online course: 6 hours
        • Four-week online course: 12 hours
      • AI Governance and Responsible AI
        • Classroom bootcamp: 8 hours
        • Two-week online course: 6 hours
        • Four-week online course: 12 hours
      • The Economics of AI
        • Classroom bootcamp: 8 hours
        • Two-week online course: 6 hours
        • Four-week online course: 12 hours
      • Backend Development with Python, Django, Django REST Framework and Pydantic
        • Classroom bootcamp: 8 hours
        • Two-week online course: 6 hours
        • Four-week online course: 12 hours
      • Front End Development with React, Vite.js and Bootstrap
        • Classroom bootcamp: 8 hours
        • Two-week online course: 6 hours
        • Four-week online course: 12 hours
      • Full Stack Development with Django and React
        • Classroom bootcamp: 8 hours
        • Two-week online course: 6 hours
        • Four-week online course: 12 hours
      • API Design and Integration
        • Classroom bootcamp: 8 hours
        • Two-week online course: 6 hours
        • Four-week online course: 12 hours
      • Extension Development
        • Classroom bootcamp: 8 hours
        • Two-week online course: 6 hours
        • Four-week online course: 12 hours
      • Writing Secure Software for the Internet
        • Classroom bootcamp: 8 hours
        • Two-week online course: 6 hours
        • Four-week online course: 12 hours
      • Docker for Software Development
        • Classroom bootcamp: 8 hours
        • Two-week online course: 6 hours
        • Four-week online course: 12 hours
      • Kubernetes for Running Applications at Scale
        • Classroom bootcamp: 8 hours
        • Two-week online course: 6 hours
        • Four-week online course: 12 hours
      • Cloud Infrastructure as Code
        • Classroom bootcamp: 8 hours
        • Two-week online course: 6 hours
        • Four-week online course: 12 hours
      • Self-Hosting Open Models
        • Classroom bootcamp: 8 hours
        • Two-week online course: 6 hours
        • Four-week online course: 12 hours
      • Software Quality and Quality Assurance
        • Classroom bootcamp: 8 hours
        • Two-week online course: 6 hours
        • Four-week online course: 12 hours
      • Creating High Quality Documentation with Sphinx
        • Classroom bootcamp: 8 hours
        • Two-week online course: 6 hours
        • Four-week online course: 12 hours
      • Software Architecture
        • Classroom bootcamp: 8 hours
        • Two-week online course: 6 hours
        • Four-week online course: 12 hours
      • Agentic Software Development with Claude Code
        • Classroom bootcamp: 8 hours
        • Two-week online course: 6 hours
        • Four-week online course: 12 hours
      • Open Source Participation
        • Classroom bootcamp: 8 hours
        • Two-week online course: 6 hours
        • Four-week online course: 12 hours
    • Master Classes
      • Django Master Class
        • Three-day classroom course: 18 hours
        • Six-week online course: 18 hours
      • AI Application Development Master Class
        • Three-day classroom course: 18 hours
        • Six-week online course: 18 hours
      • Python Programming with Agentic AI Master Class
        • Three-day classroom course: 18 hours
        • Six-week online course: 18 hours

Community

  • Smarter on Slack
    • What the Bot Is
    • Talking to the Bot
      • In a channel
      • In a direct message
      • Getting help
      • Waiting for the answer
    • Asking Good Questions
    • How Answers Look in Slack
    • Limits
    • Privacy
    • When to Ask a Person
    • Troubleshooting
    • Running Your Own

Smarter Docs

  • Platform Administration Guide
    • Installation
      • Quick Start Guide
        • 1. Install Docker Desktop.
        • 2. Clone the Repository.
        • 3. Prepare Your Environment File.
        • 4. Initialize the Application.
        • 5. Start the Application.
        • 6. Log In.
        • 7. Download the Smarter Command-Line Interface.
      • Production Deployment
        • I. Infrastructure
        • II. Smarter Platform Application
        • Trouble Shooting
      • Developer Setup Guide
        • Prerequisites
        • Launch the Smarter Platform
        • Work With Source Code
        • Good Coding Best Practices
        • Repository Setup
        • Docker Setup
        • Python Setup
        • Keen Bootstrap Theme Setup
        • AWS Cloud Infrastructure
    • Smarter Web Console
      • AI Resource Authors
        • Console Dashboard
        • User Menu
        • Languages
        • AI Resource Lists
        • LLM Prompt Workbench
        • Manifest Drop Zone
        • LLM Provider API Passthrough Tool
        • Live Server Logs
        • Complete REST API Reference
      • Administrators
        • Django Admin Console
        • Terminal
    • Django Admin
    • Managing Extensions
      • The Extensions Page
      • Installing from the Registry
        • Trust Badges
      • Uploading an Extension
      • An Extension’s Page
        • Configuring an Extension
        • Availability
      • Enabling and Disabling
      • Updates
        • Rolling Back
      • Uninstalling an Extension
      • When Something Goes Wrong
      • Configuring the Registry
      • Management Commands
    • Prerequisites
    • Trouble Shooting & FAQ
    • Cloud Infrastructure
      • Usage
      • Resources Created
    • URL Patterns
      • Example URL Patterns
    • Account Management
      • Creating Accounts
    • User Management
    • Smarter CLI
    • API Keys
      • Creating API Keys
      • Managing API Keys
      • Configuration Options
      • Using API Keys
        • Smarter Chat React Component
        • Smarter Command-line Interface
    • How-To: Adding an LLM Provider to Smarter
      • Goal
      • Supported Providers
      • Prerequisites
      • Setup
        • Step 1: Get an API Key
        • Step 2: Add the Key to Smarter
      • Concept Overview
      • Step-by-Step: Create and Apply a Provider Manifest
        • Step 3: Generate a Starting Template
        • Step 4: Write the Provider Manifests
        • Step 5: Apply Both Manifests
        • Step 6: Confirm Both Providers are Active
      • Proof of Concept
      • Troubleshooting
    • Cost Accounting
      • Pricing
      • Budgets
        • Enforcement
        • Budget versus actual
    • Smarter Journal
      • Enabling the Smarter Journal
      • Django Log
      • Application Logs
    • MCPServer
      • Endpoints
      • Public Tools
        • The Index
        • GitHub Issues
        • Pull Requests
        • Daily Pod Log Review
      • Staff-Only Tools
        • Authentication
        • Smarter Sysadmin
        • Audit Trail
        • What a Reply May Say
      • The Built-in MCPClients
      • Technical Reference
        • Views
        • Authentication
        • MCP Protocol Base
        • Public Endpoint
        • Staff-Only Endpoint
        • Tool Sets
        • Rate Limit
        • Tool Result Cache
        • Public Tool Base Class
        • Staff-Only Tool Base Class
        • Search Tools
        • Reading Tools
        • Markdown Helpers
        • Manifest Tools
        • GitHub Tools
        • Status Tools
        • Log Tools
        • Help Desk Tools
        • Services
        • Repositories
        • Repository Indexer
        • Blog Indexer
        • Index Readiness
        • Search
        • Reading
        • Manifest Schemas
        • GitHub Client
        • GitHub Issues
        • GitHub Pull Requests
        • Acting User
        • Pod Logs
        • Status Report
        • Cluster Snapshot
        • Backing Services
        • Upstream Status Pages
        • User Support Snapshot
        • Reply Rules
        • URLs
        • Django ORM
        • Django Admin
        • Celery Tasks
        • Signals
        • Signal Receivers
        • Exceptions
        • Constants
        • Management Command
    • Configuration
      • 1. AWS Infrastructure Configuration
      • 2. Django Settings
      • 3. Asynchronous Task Queue Configuration
      • 4. Beat Scheduler Configuration
      • 5. Helm Chart Configuration
      • 6. Dockerfile Configuration
      • 7. GitHub Actions Secrets Configuration
      • 8. Secrets Management
      • 9. Logging Configuration
      • 10. Database Configuration
      • 11. Email/Notification Configuration
      • 1. Static & Media Files Configuration
      • 13. Smarter Settings Class Reference
    • Security
      • Firewall
      • Application Security
        • Proprietary Security Features
        • Django Security Features
      • Secure Remote Access
        • Smarter Authentication
      • Audit Logging
      • Malware Protection
      • User management
      • Data Encryption
      • Security Updates
    • Backup and Restore
    • Updates
    • Trouble Shooting
      • Where to go for Help
    • Security FAQ
  • Smarter AI Resource Reference
    • Smarter Account
      • Overview
      • Usage
      • Technical Reference
        • API Reference
        • manage.py Commands
        • Const
        • Account Django ORM
        • Receivers
        • Repository Scripts
        • Smarter Resources - Account
        • Smarter API Manifests (SAM)
        • DRF Serializers
        • Signals
        • Asynchronous Tasks
        • Utils
    • Smarter Authtoken
      • Overview
      • Overview
      • Technical Reference
    • Smarter Budget
      • Overview
      • Technical Reference
        • Budget Model
        • Budget
        • Budget
    • Smarter Connection
      • Overview
      • Example Manifest
      • Technical Reference
        • API Reference
        • Const
        • Manifest
        • Django ORM
        • Receivers
        • SAM Resources
        • DRF Serializers
        • Signals
        • Asynchronous Tasks
        • React Integration Template Tag
        • URLs
        • Views
    • Smarter Custom Domain
      • Overview
      • How It Works
      • The Manifest
      • Verification
    • Smarter Guardrail
      • Overview
      • How It Works
      • The Manifest
        • Strategies
        • Actions
        • Modes and Failure
      • Built-in Guardrails
      • Security Notes
      • Technical Reference
        • Django Admin
        • API Reference
        • Caching
        • Const
        • Exceptions
        • Smarter API Manifests (SAM)
        • Django ORM
        • Signal Receivers
        • DRF Serializers
        • Services
        • Signals
        • Asynchronous Tasks
        • Views
    • Smarter LLM Client
      • Overview
      • Usage
      • Web Pages That Embed It
      • Staff-Only LLMClients
      • Styling the Chat
        • Styling Your LLMClient’s Chat
      • Example Manifest
      • Technical Reference
        • API Reference
        • Models
        • Smarter API Manifests (SAM)
        • DRF Serializers
        • React UI
        • LLMClientHelper Class
        • Kubernetes Ingress
        • Management Commands
        • Middleware
        • Tasks
        • Signals
        • URLs
        • Utils
        • Views
      • Sandbox Mode
      • Deploying
      • Updating
      • Deleting
      • Testing
      • Monitoring
      • Scaling
      • Trouble Shooting
    • Smarter LLM Host
      • Overview
      • Example: Self-Hosting a Hugging Face Model
      • Technical Reference
        • API Reference
        • Const
        • Management Commands
        • Smarter API Manifests (SAM)
        • Django ORM
        • DRF Serializers
        • Signals
        • Asynchronous Tasks
        • Views
    • Smarter MCP Client
      • Overview
      • How It Works
      • The Manifest
        • Authentication
        • Security
      • Example Manifests
      • Technical Reference
        • API Reference
        • Caching
        • MCP Server Connections
        • Const
        • Exceptions
        • Smarter API Manifests (SAM)
        • Django ORM
        • Signal Receivers
        • DRF Serializers
        • Signals
        • Asynchronous Tasks
        • Prompt Toolkit
        • Views
    • Smarter Orchestrator
      • Overview
      • Technical Reference
        • API Reference
        • Const
        • Management Commands
        • Smarter API Manifests (SAM)
        • Django ORM
        • DRF Serializers
        • Signals
        • Asynchronous Tasks
        • Views
    • Smarter LLMTool Plugin
      • Overview
      • Usage
      • Example Manifest
      • Technical Reference
        • API Reference
        • Caching
        • Const
        • How it Works
        • How LLM Tool Calling Works
        • LLMTool Plugin Reference
        • Django Management Commands
        • Django ORM
        • Smarter API Manifests (SAM)
        • DRF Serializers
        • Natural Language Processing (NLP)
        • Signals
        • Receivers
        • Asynchronous Tasks
        • React Integration Template Tags
        • Views
    • Smarter Prompt
      • Overview
      • Usage
      • Technical Reference
        • Example Prompt Configuration
        • Example Prompt Request
        • Example Prompt Response
        • API Reference
        • Const
        • Manifests (SAM)
        • Django ORM
        • Django Management Commands
        • Signals
        • Asynchronous Tasks
        • Prompt Templatetags
        • Urls
        • Prompt Views
    • Smarter Provider
      • Overview
      • Technical Reference
        • API Reference
        • Const
        • Management Commands
        • Smarter API Manifests (SAM)
        • Django ORM
        • DRF Serializers
        • Services
        • Signals
        • Asynchronous Tasks
        • Utils
        • Verification
        • Views
    • Smarter Proxy
      • Overview
      • How It Works
      • Quick Start
      • Creating a Proxy
      • Manifest Reference
      • Authentication
      • Errors
      • Security
      • Usage and Budgets
      • Built-in Proxies
      • Technical Reference
        • API Reference
        • Authentication
        • Caching
        • Const
        • Exceptions
        • Smarter API Manifests (SAM)
        • Django ORM
        • Serializers
        • Passthrough Service
        • Signals
        • Views
    • Smarter Secret
      • Overview
      • Technical Reference
        • API Reference
        • Django Admin
        • Caching
        • Const
        • Management Commands
        • Smarter API Manifests (SAM)
        • Django ORM
        • Receivers
        • Secret Resources
        • DRF Serializers
        • Signals
        • React Integration Template Tags
        • Asynchronous Tasks
        • Urls
        • Views
    • Smarter Vectorsearch
      • API Reference
        • VectorsearchApiBaseViewSet
      • Const
      • Management Commands
      • Smarter API Manifests (SAM)
        • Enumerations Classes
        • Pydantic Models
      • Django ORM
        • Vectorsearch
        • VectorsearchSearchType
      • DRF Serializers
        • VectorsearchSerializer
      • Signals
        • vectorsearch_called
      • Asynchronous Tasks
      • Views
        • API View
        • ListView
        • Detail View
    • Smarter Vectorstore
      • Overview
      • Example Manifests
      • Lifecycle
        • Self-Hosted Qdrant
        • Managed Services
      • Documents
      • Search
      • Maintenance and Snapshots
      • Technical Reference
        • REST API
        • Vectorstore Backends
        • Caching
        • Management Commands
        • Documents: Text Extraction and Embeddings
        • Self-Hosted Qdrant on Kubernetes
        • Vectorstore Manifest
        • Vectorstore ORM Models
        • Vectorstore Receivers
        • Vectorstore Serializers
        • Vectorstore Services
        • Vectorstore Signals
        • Vectorstore Asynchronous Tasks
        • Web Console Views
  • Smarter Development Framework
    • The Smarter Ecosystem
      • Command Line and Editor
      • SDKs
      • Shared Python Libraries
      • Chat and Web Components
      • Running the Platform
      • Extending Smarter
    • How the Framework Fits Together
      • Getting Started
      • Smarter Architecture
        • Linux
        • Third-Party Django Apps
        • Smarter Subsystems
        • Smarter Django Apps
      • Extensibility
        • Plugins, Extensions and MCP Servers Compared
        • Where to Go Next
      • Smarter LLM Tool Extensions
        • An Extension in Brief
      • Developer Guides
        • Contributing
        • New Feature Checklist
        • Documentation Style Guide & Technical Reference
        • 12-Factor App
        • Code of Conduct
        • Developer Guidelines
        • Semantic Versioning Guide
        • OpenAI
        • OpenAI JSON Examples
        • Claude Code
      • Smarter APIs, SDKs and Integrations
        • The APIs
        • SDKs and Developer Tools
        • Website Integrations
        • Design Goals
        • Writing an SDK for Another Language
      • Smarter Broker Model
        • AbstractBroker
        • BrokerNotImplemented
        • KNOWN_KINDS
        • SAMDependency
        • SAMDependencyReference
        • SAMDependents
        • dependents_exist()
        • memoized_dependencies()
        • should_log()
      • Smarter Chat
        • Where to Start
        • See Also
      • Smarter on Kubernetes
        • LLMClient Deployment
        • Operating Smarter at Scale
        • The Slack Bot
        • The Services
        • Docker and Kubernetes Compared
        • How Smarter Talks to the Cluster
        • Cluster Prerequisites
      • Developer Technical Reference
        • Agentic Development
        • Django-React Integration
        • Translations
        • Smarter Journal
        • Smarter Enumeration Classes
        • Smarter Types
        • Smarter Mixins
        • Smarter Settings
        • Smarter Utils
        • Smarter Devops Guide
        • Smarter Dashboard App
        • Smarter Framework Library
      • Technologies
        • Amazon Web Services (AWS)
        • Docker
        • Infrastructure Services
        • Kubernetes
        • OpenTelemetry Compatibility
        • Python
        • Pydantic
        • SMTP Email Support
        • Tavily Web Search
  • ADR
    • ADR Introduction
      • Guidelines for Writing ADRs
    • ADR-001: Django
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-002: Docker
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-003: Kubernetes
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-004: 12-Factor App
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-005: Manifests
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-006: Rest API
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-007: Settings
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-008: Function Calling
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-009: Async Tasks
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-010: Management Commands
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-011: Logging
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-012: Error Handling
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-013: Testing
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-014: CI/CD
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-015: Dependency Management
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-016: Security
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-017: Database
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-018: Caching
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-019: React
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-020: Semantic Versioning
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-021: Internationalization
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-022: Feature Flags
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-023: API Versioning
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-024: Broker Model
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-025: Django Templates
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-026: Keen Bootstrap
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-027: Python Annotations
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-028: Code Quality
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR 029: Docstring Style
      • Context
      • Alternatives Considered
      • Decision
      • Consequences
      • References
    • ADR-030: Operational and Infrastructure Task Queues
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-031: Pydantic Models Over Raw JSON
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-032: Url Names Derived From View Classes
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-033: Don’t Repeat Yourself
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
  • Contributors
    • GitHub Repositories
    • Core Contributors
      • Becoming a Core Contributor
    • Community Contributors

External Resources

  • Support Smarter!
  • Smarter OpenAPI Contract
  • Smarter Manifest Examples
  • Smarter Json Schemas
  • Smarter on YouTube
Smarter Documentation
  • Smarter AI Resource Reference
  • Smarter LLM Client
  • Middleware
  • View page source

Middleware

See smarter.apps.llmclient.middleware.security.SmarterSecurityMiddleware

Previous Next

© Copyright 2023 - 2026 Lawrence P. McDaniel. The Smarter Project. Last updated November-2026.

Built with Sphinx using a theme provided by Read the Docs.