Files
TimeTracker/.gitignore
T
Dries Peeters da85aedefb feat(mobile): add data layer, OTLP telemetry, and CI build fixes
Implement the missing Flutter data layer so release builds compile: Dio ApiClient for /api/v1 (timer, time entries, projects, tasks, finance, time-off, users/me), JSON models, Hive LocalStorage, and offline SyncService queue.

Add OpenTelemetry (opentelemetry package) with initMobileOpenTelemetry() reading OTEL_EXPORTER_OTLP_ENDPOINT and OTEL_EXPORTER_OTLP_TOKEN via --dart-define, matching server OTLP base URL and Basic auth behavior. Instrument login token validation, timer start/stop, and sync pending.

Fix SyncUseCase to import storage SyncService, use trusted insecure hosts, and call syncAll().

GitHub Actions (build-mobile.yml, cd-release.yml): run flutter test; pass OTLP secrets into flutter build apk/appbundle/ios; switch iOS CI to release simulator builds and package build/ios/iphonesimulator/Runner.app to avoid requiring an Apple Development Team for generic device builds.

.gitignore: allow tracking mobile/lib/data/ despite the repo-wide data/ ignore rule.
2026-03-28 18:01:10 +01:00

252 lines
4.3 KiB
Plaintext

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
!mobile/lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
.python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/
# Celery stuff
celerybeat-schedule
celerybeat.pid
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
# Application specific
data/
# Flutter app source lives under mobile/lib/data/ (do not treat as runtime data dir)
!mobile/lib/data/
!mobile/lib/data/**
logs/
backups/
*.db
*.sqlite
*.sqlite3
# Docker
.dockerignore
# IDE
.vscode/
.idea/
.cursor/
*.swp
*.swo
*~
# OS
.DS_Store
Thumbs.db
# Temporary files
*.tmp
*.temp
# Test artifacts
test.db
test_*.db
junit.xml
*.xml
!mobile/android/app/src/main/AndroidManifest.xml
test-results/
.pytest_tmp*/
bandit-report.json
safety-report.json
migration_report.md
# Test output
.testmondata
# Install / build logs
install_log.txt
# Benchmark output
.benchmarks/
# SSL Certificates (generated by mkcert)
nginx/ssl/*.pem
nginx/ssl/*.key
nginx/ssl/*.crt
# Code Signing Certificates (NEVER commit these!)
*.pfx
*.p12
*.spc
*.pvk
desktop/certs/
desktop/*.pfx
desktop/assets/icon.iconset/
desktop/*.p12
desktop/*.spc
desktop/*.pvk
# Docker Compose overrides (do not ignore auto files, only manually generated)
# docker-compose.https.yml is now tracked
# Environment backups
.env.backup
# Node.js / Frontend build
node_modules/
package-lock.json
!desktop/package-lock.json
# Tailwind CSS build output (keep source in git)
app/static/dist/
/logs
logs/app.jsonl
# Internal / code-generation only (do not commit to public repo)
docs/internal/
scripts/generate_donate_hide_code.py
# Mobile
mobile/android/app/build/
mobile/android/.gradle/
mobile/ios/build/
mobile/ios/Pods/
mobile/ios/Podfile.lock
mobile/ios/Podfile.lock.lock
mobile/ios/Podfile.lock.lock.lock
mobile/ios/Podfile.lock.lock.lock.lock
mobile/ios/Podfile.lock.lock.lock.lock.lock
mobile/ios/Podfile.lock.lock.lock.lock.lock.lock
mobile/.dart_tool/
mobile/.android/
mobile/.ios/
mobile/.flutter-plugins-dependencies
mobile/.flutter-plugins
mobile/.flutter-plugins-dependencies
mobile/.flutter-plugins-dependencies.lock
mobile/.flutter-plugins-dependencies.lock.lock
mobile/.flutter-plugins-dependencies.lock.lock.lock
mobile/.flutter-plugins-dependencies.lock.lock.lock.lock
mobile/.flutter-plugins-dependencies.lock.lock.lock.lock.lock
mobile/.flutter-plugins-dependencies.lock.lock.lock.lock.lock.lock
mobile/.flutter-plugins-dependencies.lock.lock.lock.lock.lock.lock.lock
mobile/.flutter-plugins-dependencies.lock.lock.lock.lock.lock.lock.lock.lock
mobile/.flutter-plugins-dependencies.lock.lock.lock.lock.lock.lock.lock.lock.lock
mobile/.flutter-plugins-dependencies.lock.lock.lock.lock.lock.lock.lock.lock.lock.lock
mobile/.flutter-plugins-dependencies.lock.lock.lock.lock.lock.lock.lock.lock.lock.lock.lock
## License Files
donate_hide_private.pem