4.5 KiB
Executable File
Feature Specification: Add web application settings mechanism
Feature Branch: 002-app-settings
Created: 2025-12-20
Status: Draft
Input: User description: "давай внесем полноценный механизм настройки веб приложения. Что нужно точно - 1. Интерфейс для добавления enviroments (разные сервера суперсета) 2. Интерфейс для настройки файлового хранилища бекапов"
User Scenarios & Testing (mandatory)
User Story 1 - Manage Superset Environments (Priority: P1)
As an administrator, I want to add, edit, and remove Superset environment configurations (URL, credentials, name) so that the application can interact with multiple Superset instances.
Why this priority: This is the core functionality required for the tool to be useful across different stages (dev/prod) or different Superset clusters.
Independent Test: Can be fully tested by adding a new environment, verifying it appears in the list, and then deleting it.
Acceptance Scenarios:
- Given the settings page is open, When I enter valid Superset connection details and save, Then the new environment is added to the list of available targets.
- Given an existing environment, When I update its URL and save, Then the system uses the new URL for subsequent operations.
- Given an existing environment, When I delete it, Then it is no longer available for selection in other parts of the application.
User Story 2 - Configure Backup Storage (Priority: P1)
As an administrator, I want to configure the file path or storage location for backups so that I can control where system backups are stored.
Why this priority: Essential for the backup plugin to function correctly and for users to manage disk space/storage locations.
Independent Test: Can be tested by setting a backup path and verifying that the system validates the path's existence or accessibility.
Acceptance Scenarios:
- Given the storage settings section, When I provide a valid local or network path, Then the system saves this as the default backup location.
- Given an invalid or inaccessible path, When I try to save, Then the system displays an error message and does not update the setting.
Edge Cases
- Duplicate Environments: System MUST prevent adding an environment with a name that already exists.
- Invalid Credentials: System MUST validate connection on save and prevent saving if credentials are invalid.
- Path Permissions: System MUST verify write permissions for the backup path and display an error if inaccessible.
Requirements (mandatory)
Functional Requirements
- FR-001: System MUST provide a dedicated settings interface in the web UI.
- FR-002: System MUST allow users to create multiple named "Environments" for Superset.
- FR-003: Each Environment MUST include: Name, Base URL, and Authentication details (e.g., Username/Password or API Key).
- FR-004: System MUST allow setting a global "Backup Storage Path".
- FR-005: System MUST persist these settings across application restarts.
- FR-006: System MUST validate the Superset URL format before saving.
- FR-007: System MUST verify that the Backup Storage Path is writable by the application.
- FR-008: System MUST allow selecting a "Default" environment for operations.
- FR-009: System MUST enforce that at least one environment is configured before allowing Superset-related tasks (e.g., backup, migration).
System Invariants (Constitution Check)
- INV-001: Sensitive credentials (passwords/keys) MUST NOT be displayed in plain text after being saved.
- INV-002: At least one environment MUST be configured for the application to perform Superset-related tasks.
Key Entities (include if feature involves data)
- Environment: Represents a Superset instance. Attributes: Unique ID, Name, URL, Credentials, IsDefault flag.
- AppConfig: Singleton entity representing global settings. Attributes: BackupPath, DefaultEnvironmentID.
Success Criteria (mandatory)
Measurable Outcomes
- SC-001: Users can add a new Superset environment in under 30 seconds.
- SC-002: 100% of saved environments are immediately available for use in backup/migration tasks.
- SC-003: System prevents saving invalid backup paths 100% of the time.
- SC-004: Configuration changes take effect without requiring a manual restart of the backend services.