|
Download replit.md from dn-scribe/attstore: direct link, hf CLI and curl.
- Browser
- Download file 3.94 kB
-
https://huggingface.co/spaces/dn-scribe/attstore/resolve/main/replit.md
- Command line
-
hf download hf://spaces/dn-scribe/attstore/replit.md
-
curl -L -o replit.md https://huggingface.co/spaces/dn-scribe/attstore/resolve/main/replit.md
3.94 kB
Overview
This is an Attestation Store application built with Flask that provides a secure system for storing, managing, and retrieving attestation evidence. The system supports multiple storage backends, RFC 5424 compliant logging, and provides both REST API endpoints and a web interface for managing attestations and system logs.
User Preferences
Preferred communication style: Simple, everyday language.
System Architecture
Backend Framework
- Flask as the core web framework with SQLAlchemy for database operations
- Flask-JWT-Extended for API authentication and authorization
- Werkzeug for password hashing and security utilities
Database Design
- Uses SQLAlchemy ORM with a declarative base model approach
- Core entities:
- Users: Authentication and user management
- Attestations: Storage metadata for evidence files with deduplication support
- SystemLog: RFC 5424 compliant logging entries
- UploadSession: Temporary upload session tracking
- Supports both SQLite (development) and PostgreSQL (production) through configurable DATABASE_URL
Authentication & Authorization
- JWT-based authentication for API endpoints
- Session-based authentication for web interface
- Custom decorators (
jwt_required_with_logging,optional_jwt_with_logging) that combine authentication with automatic audit logging - Default admin user creation on first run
Storage Architecture
- Pluggable storage backends through abstract
StorageBackendinterface - File Storage Backend: Local filesystem storage with direct file serving
- Cloud Storage Support: Designed for AWS S3 and MinIO integration
- Presigned URLs: For secure direct uploads and downloads
- Upload Session Management: Temporary sessions for handling multi-part uploads
Logging System
- RFC 5424 compliant structured logging
- Centralized logging through
logging_utils.py - Database storage of all system events
- Severity-based filtering (Emergency to Debug levels)
- Automatic user activity tracking and audit trails
API Structure
- RESTful API design with blueprint-based organization
- Evidence API (
/api/evidence): Upload, retrieve, and manage attestations - Authentication API (
/api/login): User authentication endpoints - Syslog API (
/api/syslog): RFC 5424 log ingestion endpoint - Consistent error handling with structured JSON responses
Web Interface
- Bootstrap-based responsive design with dark theme support
- Template inheritance using Jinja2
- Dashboard views for attestations, logs, and system status
- Real-time filtering and search capabilities
- File upload interface with progress tracking
Configuration Management
- Environment-based configuration through the
Configclass - Storage backend selection via STORAGE_TYPE environment variable
- Flexible deployment options supporting both development and production environments
- Default credential setup for initial deployment
External Dependencies
Core Framework Dependencies
- Flask: Web framework and request handling
- SQLAlchemy: Database ORM and migrations
- Flask-JWT-Extended: JWT token management
- Werkzeug: WSGI utilities and security functions
Storage Integration
- boto3: AWS S3 integration for cloud storage
- minio: MinIO client for self-hosted object storage
- Local filesystem: Default file storage backend
Frontend Libraries
- Bootstrap 5: UI components and responsive design
- Feather Icons: Icon library for consistent UI elements
- Axios: HTTP client for API communication
Database Support
- SQLite: Development and lightweight deployments
- PostgreSQL: Production database backend (configurable)
Development Tools
- Python logging: Built-in logging with custom RFC 5424 formatting
- Flask development server: Built-in development environment