# govoplan-files GovOPlaN Files is the managed file module. It bundles backend storage APIs and the Files WebUI package so file features can be installed as one module. ## Ownership This repository owns: - backend module manifest `files` - file permissions such as `files:file:read`, `files:file:upload`, `files:file:download`, `files:file:organize`, and `files:file:delete` - file-space, file metadata, share, upload, download, pattern matching, and transfer APIs - SQLAlchemy file models and module migration registration - WebUI package `@govoplan/files-webui` - `/files` route and IconRail navigation contribution Core owns auth, tenants, RBAC evaluation, database/session primitives, CSRF/API helpers, and shell layout. ## Development Install through the core environment: ```bash cd /mnt/DATA/git/govoplan-core ./.venv/bin/python -m pip install -r requirements-dev.txt ``` Run the WebUI from the core host: ```bash cd /mnt/DATA/git/govoplan-core/webui PATH=/home/zemion/.nvm/versions/node/v22.22.3/bin:$PATH /home/zemion/.nvm/versions/node/v22.22.3/bin/npm run dev ``` ## Module integration Backend entry point: ```toml [project.entry-points."govoplan.modules"] files = "govoplan_files.backend.manifest:get_manifest" ``` Frontend package: ```text @govoplan/files-webui ``` The campaign module can integrate with files when both modules are installed, for example for managed attachment selection and campaign file sharing. Files does not import campaign internals; campaign share/existence checks use the core `campaigns.access` capability registered by the campaign module. Platform RBAC and governance rules are documented in `govoplan-core/docs/`. ## Release packaging The repository root includes a `package.json` for git-based WebUI installs. It exports the package `@govoplan/files-webui` from `webui/src` so release builds can depend on tagged git refs instead of local `file:` paths.