Files
The-transit-Project/monitoring_ui/docs/SECURITY_PRIVATE_FILES.md
Sven laptop 635a130f0b
Build and Push Docker Images / detect-changes (push) Successful in 11s
Build and Push Docker Images / build-auth-api (push) Successful in 1m0s
Build and Push Docker Images / build-employee-api (push) Successful in 1m2s
Build and Push Docker Images / build-transit-api (push) Successful in 1m1s
Build and Push Docker Images / build-error-log-api (push) Successful in 1m5s
Build and Push Docker Images / build-admin-ui (push) Successful in 1m13s
Build and Push Docker Images / build-monitoring-ui (push) Successful in 1m15s
Build and Push Docker Images / deploy-test-node (push) Successful in 3s
──────
### Summary of Changes
  1. Documentation Consolidation:
      • Relocated the docs/ folder and all repository .md files (README.md, DEPLOYMENT.md, DOCKER_README.md,
      DOMAINS_README.md, GETTING_STARTED.md, CI_CD_PORTAINER_GUIDE.md, ADMIN_DEPLOYMENT_SUMMARY.md,
      SECURITY_PRIVATE_FILES.md, handoff.md, azure-project-plan.md, plus service-specific READMEs) into .
      • Updated document links in README.md.
  2. AI Agent Project Map:
      • Created PROJECT_MAP.md in the project root containing complete architecture diagrams, service specs, ports, DB
      schemas, environment variables, and developer workflows.
      • Added PROJECT_MAP.md to .gitignore.
  3. Monitoring UI & Infrastructure Integration:
      • Added monitoring_ui service to docker-compose.yml (port 5175).
      • Configured Gitea workflow docker-build.yml for monitoring_ui builds.
      • Added CORS middleware headers in index.js.
      • Added nginx.conf copy step in Dockerfile.

  ──────
  ### Recommended Commit Message

    docs: consolidate project documentation into monitoring_ui and add agent project map

    - Move all markdown documentation files and docs/ folder into monitoring_ui/docs/
    - Update documentation hub index (monitoring_ui/docs/README.md) with relative paths
    - Generate comprehensive AI agent reference map (PROJECT_MAP.md) in repository root
    - Add PROJECT_MAP.md and monitoring_ui build output/env overrides to .gitignore
    - Integrate monitoring_ui service into docker-compose.yml and Gitea CI workflow
    - Configure CORS handling in employee_api for monitoring dashboard access
    ──────
  ### Alternative Short Commit Message

    refactor(docs): move docs to monitoring_ui and create AI agent PROJECT_MAP.md
2026-09-20 23:33:55 +02:00

3.9 KiB

Security: Private Files Exclusion

This document explains which files are kept private and why.

Files Excluded from Git & Docker

Deployment Documentation (Private)

  • ADMIN_DEPLOYMENT_SUMMARY.md - Internal deployment status and setup details
  • CI_CD_PORTAINER_GUIDE.md - Private CI/CD and Portainer configuration
  • DEPLOYMENT.md - Deployment procedures and configuration guidance
  • GETTING_STARTED.md - Internal setup instructions
  • INTERNAL_*.md - Any file prefixed with INTERNAL_ (pattern-based exclusion)
  • SETUP_*.md - Any file prefixed with SETUP_ (pattern-based exclusion)
  • DEPLOY_*.md - Any file prefixed with DEPLOY_ (pattern-based exclusion)

Custom Instruction Files (Private)

  • .instructions.md - GitHub Copilot custom instructions
  • .prompt.md - Custom prompt templates
  • .agent.md - Custom agent definitions
  • SKILL.md - Custom skill definitions
  • copilot-instructions.md - Extended Copilot instructions
  • AGENTS.md - Agent configuration

These are kept private to prevent exposure of:

  • Development workflow details
  • Copilot customization strategies
  • Internal coding guidelines and preferences
  • Prompt engineering techniques

Private Scripts

  • scripts/private/ - Directory for private deployment scripts
  • scripts/*.local.* - Local-specific script configurations

Files Included in Public Repo

Public Documentation

  • README.md - Main project documentation
  • DOCKER_README.md - Docker usage documentation
  • admin_ui/README.md - Admin UI documentation
  • admin_ui/SCHEDULE_API.md - Public API documentation
  • transit_api/README.md - API documentation
  • deprecated/README.md - Legacy Flutter bus terminal documentation kept for historical reference

Configuration

  • .env.example - Environment variable template (no secrets)
  • .gitignore - Git exclusion rules
  • .dockerignore - Docker build exclusion rules
  • docker-compose.yml - Service composition
  • Dockerfile files - Container definitions

Code & Configuration

  • All source code in auth_api/, transit_api/, employee_api/, admin_ui/, and the legacy deprecated/ app
  • package.json files (no secrets, only dependencies)
  • GitHub Actions workflows in .github/workflows/

Environment Variables - NEVER Commit

Always keep the following OUT of git:

  • .env - Local environment variables (in .gitignore)
  • Database credentials
  • JWT secrets
  • API keys and tokens
  • Private configuration files

Use .env.example as a template and create local .env files for development.

Docker Build Security

All .dockerignore files (root and per-service) ensure that:

  1. Sensitive documentation never enters Docker images
  2. Private scripts and configs are excluded from builds
  3. Only necessary source code and dependencies are included
  4. Build artifacts don't leak internal information

GitHub Actions Security

The CI/CD workflow in .github/workflows/docker-build.yml:

  • Only builds from specific service directories (auth_api, transit_api, etc.)
  • Respects .dockerignore rules
  • Uses GitHub secrets for credentials (never hardcoded)
  • Does not include workspace documentation in pushed images

Best Practices

  1. Before committing: Check that .env is in .gitignore and local files are not staged
  2. Before building Docker: Verify .dockerignore files exclude private docs
  3. Before pushing images: Confirm no sensitive data is present (docker inspect --format=...)
  4. Deployment: Always use environment variables or secrets managers, never embed credentials
  5. Documentation: Keep public docs in *.md files, private docs in separately excluded files

Adding New Private Files

To keep new private files out of the repo and Docker:

  1. Add pattern to .gitignore:

    MYFILE_*.md
    new_private_thing.*
    
  2. Add pattern to .dockerignore (root and per-service):

    /MYFILE_*.md
    /new_private_thing.*
    
  3. Verify with:

    git check-ignore -v MYFILE_something.md