Volkswagen Group Africa
Admin: info+admin@growthtechdev.co.za / admin123
Supervisor: info+supervisor@growthtechdev.co.za / super123
Loading…
Current Site Packages Directory:
/usr/local/lib/python3.11/site-packages
| Package | Version | Homepage | Summary |
|---|---|---|---|
| alembic | 1.19.1 | None | A database migration tool for SQLAlchemy. |
| annotated-types | 0.8.0 | None | Reusable constraint types to use with typing.Annotated |
| anyio | 4.14.2 | None | High-level concurrency and networking framework on top of asyncio or Trio |
| azure-common | 1.1.28 | https://github.com/Azure/azure-sdk-for-python | Microsoft Azure Client Library for Python (Common) |
| azure-communication-email | 1.0.0 | https://github.com/Azure/azure-sdk-for-python | Microsoft Azure MyService Management Client Library for Python |
| azure-core | 1.41.0 | None | Microsoft Azure Core Library for Python |
| azure-mgmt-core | 1.6.0 | https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/core/azure-mgmt-core | Microsoft Azure Management Core Library for Python |
| blinker | 1.9.0 | None | Fast, simple object-to-object and broadcast signaling |
| certifi | 2026.7.22 | https://github.com/certifi/python-certifi | Python package for providing Mozilla's CA Bundle. |
| charset-normalizer | 3.5.1 | None | The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet. |
| click | 8.5.0 | None | Composable command line interface toolkit |
| Deprecated | 1.3.1 | https://github.com/laurent-laporte-pro/deprecated | Python @deprecated decorator to deprecate old python classes, functions or methods. |
| distro | 1.9.0 | https://github.com/python-distro/distro | Distro - an OS platform information API |
| dnspython | 2.8.0 | None | DNS toolkit |
| email_validator | 2.2.0 | https://github.com/JoshData/python-email-validator | A robust email address syntax and deliverability validation library. |
| et_xmlfile | 2.0.0 | https://foss.heptapod.net/openpyxl/et_xmlfile | An implementation of lxml.xmlfile for the standard library |
| Flask | 3.0.3 | None | A simple framework for building complex web applications. |
| Flask-DebugToolbar | 0.16.0 | None | A toolbar overlay for debugging Flask applications. |
| Flask-Limiter | 3.11.0 | https://flask-limiter.readthedocs.org | Rate limiting for flask applications |
| Flask-Login | 0.6.3 | https://github.com/maxcountryman/flask-login | User authentication and session management for Flask. |
| Flask-Migrate | 4.0.7 | None | SQLAlchemy database migrations for Flask applications using Alembic. |
| Flask-SQLAlchemy | 3.1.1 | None | Add SQLAlchemy support to your Flask application. |
| Flask-WTF | 1.2.1 | None | Form rendering, validation, and CSRF protection for Flask with WTForms. |
| greenlet | 3.5.5 | None | Lightweight in-process concurrent programming |
| gunicorn | 22.0.0 | None | WSGI HTTP Server for UNIX |
| h11 | 0.16.0 | https://github.com/python-hyper/h11 | A pure-Python, bring-your-own-I/O implementation of HTTP/1.1 |
| httpcore | 1.0.9 | None | A minimal low-level HTTP client. |
| httpx | 0.27.2 | None | The next generation HTTP client. |
| idna | 3.19 | None | Internationalized Domain Names in Applications (IDNA) |
| isodate | 0.7.2 | None | An ISO 8601 date/time/duration parser and formatter |
| itsdangerous | 2.2.0 | None | Safely pass data to untrusted environments and back. |
| Jinja2 | 3.1.6 | None | A very fast and expressive template engine. |
| jiter | 0.16.0 | https://github.com/pydantic/jiter/ | Fast iterable JSON parser. |
| limits | 5.8.0 | None | Rate limiting utilities |
| Mako | 1.4.1 | None | A super-fast templating language that borrows the best ideas from the existing templating languages. |
| markdown-it-py | 4.2.0 | None | Python port of markdown-it. Markdown parsing, done right! |
| markdown2 | 2.4.9 | https://github.com/trentm/python-markdown2 | A fast and complete Python implementation of Markdown |
| MarkupSafe | 3.0.3 | None | Safely add untrusted strings to HTML/XML markup. |
| mdurl | 0.1.2 | None | Markdown URL utilities |
| msrest | 0.7.1 | https://github.com/Azure/msrest-for-python | AutoRest swagger generator Python client runtime. |
| oauthlib | 3.3.1 | https://github.com/oauthlib/oauthlib | A generic, spec-compliant, thorough implementation of the OAuth request-signing logic |
| openai | 1.55.3 | None | The official Python library for the openai API |
| openpyxl | 3.1.5 | https://openpyxl.readthedocs.io | A Python library to read/write Excel 2010 xlsx/xlsm files |
| ordered-set | 4.1.0 | None | An OrderedSet is a custom MutableSet that remembers its order, so that every |
| packaging | 26.3 | None | Core utilities for Python packages |
| pip | 24.0 | None | The PyPA recommended tool for installing Python packages. |
| psycopg2-binary | 2.9.9 | https://psycopg.org/ | psycopg2 - Python-PostgreSQL Database Adapter |
| pydantic | 2.13.5 | None | Data validation using Python type hints |
| pydantic_core | 2.46.5 | https://github.com/pydantic/pydantic | Core functionality for Pydantic validation and serialization |
| Pygments | 2.21.0 | None | Pygments is a syntax highlighting package written in Python. |
| python-dotenv | 1.0.1 | https://github.com/theskumar/python-dotenv | Read key-value pairs from a .env file and set them as environment variables |
| requests | 2.34.2 | None | Python HTTP for Humans. |
| requests-oauthlib | 2.0.0 | https://github.com/requests/requests-oauthlib | OAuthlib authentication support for Requests. |
| rich | 13.9.4 | https://github.com/Textualize/rich | Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal |
| setuptools | 79.0.1 | None | Easily download, build, install, upgrade, and uninstall Python packages |
| sniffio | 1.3.1 | None | Sniff out which async library your code is running under |
| SQLAlchemy | 2.0.52 | https://www.sqlalchemy.org | Database Abstraction Library |
| tqdm | 4.70.0 | None | Fast, Extensible Progress Meter |
| typing-inspection | 0.4.4 | None | Runtime typing introspection tools |
| typing_extensions | 4.16.0 | None | Backported and Experimental Type Hints for Python 3.9+ |
| tzdata | 2025.2 | https://github.com/python/tzdata | Provider of IANA time zone data |
| urllib3 | 2.7.0 | None | HTTP library with thread-safe connection pooling, file post, and more. |
| Werkzeug | 3.0.4 | None | The comprehensive WSGI web application library. |
| wheel | 0.46.3 | None | Command line tool for manipulating wheel files |
| wrapt | 2.4.0 | None | Module for decorators, wrappers and monkey patching. |
| WTForms | 3.2.2 | None | Form validation and rendering for Python web development. |
| Resource | Value |
|---|---|
| User CPU time | 2.497 msec |
| System CPU time | 0.000 msec |
| Total CPU time | 2.497 msec |
| Elapsed time | 2.493 msec |
| Context switches | 0 voluntary, 0 involuntary |
| Key | Value |
|---|---|
| HTTP_ACCEPT | */* |
| HTTP_ACCEPT_ENCODING | gzip, br, zstd, deflate |
| HTTP_HOST | shiftiq.growthtechdev.velwiredtechnologies.co.za |
| HTTP_REFERER | https://shiftiq.growthtechdev.velwiredtechnologies.co.za/dashboard |
| HTTP_USER_AGENT | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) |
| QUERY_STRING | next=%2Fdashboard |
| REMOTE_ADDR | 172.18.0.5 |
| REQUEST_METHOD | GET |
| SCRIPT_NAME | |
| SERVER_NAME | 0.0.0.0 |
| SERVER_PORT | 8000 |
| SERVER_PROTOCOL | HTTP/1.1 |
| SERVER_SOFTWARE | gunicorn/22.0.0 |
| View Function | kwargs |
|---|---|
| app.routes.login | None |
| Variable | Value |
|---|---|
| 'shiftiq_session' | 'eyJfZmxhc2hlcyI6W3siIHQiOlsid2FybmluZyIsIlBsZWFzZSBsb2cgaW4gdG8gYWNjZXNzIHRoaXMgcGFnZS4iXX1dfQ.asVe-A.4-HPqqJGuulP-NSF2fWIyMS6b4Y' |
| Variable | Value |
|---|---|
| 'csrf_token' | '9334def9031f88cc7f6668f861a37a48c52986c3' |
| '_fresh' | False |
| Variable | Value |
|---|---|
| 'next' | '/dashboard' |
| Variable | Value |
|---|
| Key | Value |
|---|---|
| AI_HARD_STOP_PERCENT | 100 |
| AI_TOKEN_DAILY_LIMIT | 50000 |
| AI_TOKEN_MONTHLY_LIMIT | 1000000 |
| AI_WARNING_THRESHOLD_PERCENT | 80 |
| APP_BASE_URL | 'https://shiftiq.growthtechdev.velwiredtechnologies.co.za' |
| APP_TIMEZONE | 'Africa/Johannesburg' |
| APPLICATION_ROOT | '/' |
| AZURE_COMMUNICATION_CONNECTION_STRING | 'endpoint=https://shift-handover.africa.communication.azure.com/;accesskey=5mOP0ZzUd12wuvcfCT72oI58MmwTl3auoeGmKMuaXC2cpta1iCpFJQQJ99CGACULyCprA5YtAAAAAZCSFWQ7' |
| AZURE_EMAIL_SENDER | 'kirk@growthtechdev.co.za' |
| CLICKUP_API_TOKEN | '' |
| CLICKUP_DEDUPE_MINUTES | 15 |
| CLICKUP_ERRORS_ENABLED | True |
| CLICKUP_LIST_ID | '901524218819' |
| CLICKUP_PRIORITY | 2 |
| DEBUG | True |
| DEBUG_TB_ENABLED | True |
| DEBUG_TB_HOSTS | () |
| DEBUG_TB_INTERCEPT_REDIRECTS | False |
| DEBUG_TB_PANELS | ('flask_debugtoolbar.panels.versions.VersionDebugPanel', 'flask_debugtoolbar.panels.timer.TimerDebugPanel', 'flask_debugtoolbar.panels.headers.HeaderDebugPanel', 'flask_debugtoolbar.panels.request_vars.RequestVarsDebugPanel', 'flask_debugtoolbar.panels.config_vars.ConfigVarsDebugPanel', 'flask_debugtoolbar.panels.template.TemplateDebugPanel', 'flask_debugtoolbar.panels.sqlalchemy.SQLAlchemyDebugPanel', 'flask_debugtoolbar.panels.logger.LoggingPanel', 'flask_debugtoolbar.panels.route_list.RouteListDebugPanel', 'flask_debugtoolbar.panels.profiler.ProfilerDebugPanel', 'flask_debugtoolbar.panels.g.GDebugPanel') |
| DEBUG_TB_ROUTES_HOST | None |
| EXPLAIN_TEMPLATE_LOADING | False |
| FORM_RATE_LIMIT | '30 per minute' |
| LOG_DIR | 'logs' |
| LOG_LEVEL | 'INFO' |
| LOGIN_RATE_LIMIT | '5 per minute' |
| MAX_CONTENT_LENGTH | 52428800 |
| MAX_COOKIE_SIZE | 4093 |
| NOTES_UPLOAD_FOLDER | None |
| NOTES_UPLOAD_MAX_BYTES | 10485760 |
| OPENAI_API_KEY | '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' |
| OPENAI_MODEL | 'gpt-4.1-mini' |
| PASSWORD_RESET_RATE_LIMIT | '3 per 15 minutes' |
| PASSWORD_RESET_TOKEN_HOURS | 1 |
| PERMANENT_SESSION_LIFETIME | datetime.timedelta(days=31) |
| PREFERRED_URL_SCHEME | 'http' |
| PROPAGATE_EXCEPTIONS | None |
| RATELIMIT_ENABLED | True |
| RATELIMIT_HEADERS_ENABLED | True |
| RATELIMIT_STORAGE_URI | 'memory://' |
| RATELIMIT_STRATEGY | 'fixed-window' |
| REMEMBER_COOKIE_HTTPONLY | True |
| REMEMBER_COOKIE_SAMESITE | 'Lax' |
| REMEMBER_COOKIE_SECURE | False |
| SECRET_KEY | '89a0af13489a3af24a30117d2451632fc1ee359770418766e3f90239ff8ad984' |
| SEND_FILE_MAX_AGE_DEFAULT | None |
| SERVER_NAME | None |
| SESSION_COOKIE_DOMAIN | None |
| SESSION_COOKIE_HTTPONLY | True |
| SESSION_COOKIE_NAME | 'shiftiq_session' |
| SESSION_COOKIE_PATH | None |
| SESSION_COOKIE_SAMESITE | 'Lax' |
| SESSION_COOKIE_SECURE | False |
| SESSION_REFRESH_EACH_REQUEST | True |
| SQLALCHEMY_BINDS | {} |
| SQLALCHEMY_DATABASE_URI | 'postgresql+psycopg2://shiftiq:Velwired%40123e@postgres:5432/shiftiq' |
| SQLALCHEMY_ECHO | False |
| SQLALCHEMY_ENGINE_OPTIONS | {} |
| SQLALCHEMY_RECORD_QUERIES | True |
| SQLALCHEMY_TRACK_MODIFICATIONS | False |
| TABLE_PER_PAGE | 20 |
| TEMPLATES_AUTO_RELOAD | None |
| TESTING | False |
| TRAP_BAD_REQUEST_ERRORS | None |
| TRAP_HTTP_EXCEPTIONS | False |
| USE_X_SENDFILE | False |
| WTF_CSRF_CHECK_DEFAULT | True |
| WTF_CSRF_ENABLED | True |
| WTF_CSRF_FIELD_NAME | 'csrf_token' |
| WTF_CSRF_HEADERS | ['X-CSRFToken', 'X-CSRF-Token'] |
| WTF_CSRF_METHODS | {'PUT', 'POST', 'DELETE', 'PATCH'} |
| WTF_CSRF_SSL_STRICT | False |
| WTF_CSRF_TIME_LIMIT | 3600 |
| Variable | Value |
|---|---|
| csrf_token | <function generate_csrf at 0x76b565c83e20> |
| current_user | <flask_login.mixins.AnonymousUserMixin object at 0x76b561803110> |
| form | <app.forms.LoginForm object at 0x76b561803e10> |
| g | <flask.g of 'app'> |
| request | <Request 'http://shiftiq.growthtechdev.velwiredtechnologies.co.za/login?next=/dashboard' [GET]> |
| session | <SecureCookieSession {'csrf_token': '9334def9031f88cc7f6668f861a37a48c52986c3', '_fresh': False}> |
No messages logged.
| URL route | Endpoint name | HTTP methods | Is alias | Redirect to |
|---|---|---|---|---|
| / | main.index | GET, HEAD, OPTIONS | False | None |
| /admin/activity-log | admin.activity_log | GET, HEAD, OPTIONS | False | None |
| /admin/ai-monitor | admin.ai_monitor | GET, HEAD, OPTIONS, POST | False | None |
| /admin/app-logs | admin.app_logs | GET, HEAD, OPTIONS | False | None |
| /admin/areas | admin.areas | GET, HEAD, OPTIONS | False | None |
| /admin/areas/<uuid:id>/delete | admin.area_delete | OPTIONS, POST | False | None |
| /admin/areas/<uuid:id>/edit | admin.area_edit | OPTIONS, POST | False | None |
| /admin/areas/new | admin.area_create | OPTIONS, POST | False | None |
| /admin/checkpoints | admin.checkpoints | GET, HEAD, OPTIONS | False | None |
| /admin/checkpoints/<uuid:id>/delete | admin.checkpoint_delete | OPTIONS, POST | False | None |
| /admin/checkpoints/<uuid:id>/edit | admin.checkpoint_edit | OPTIONS, POST | False | None |
| /admin/checkpoints/new | admin.checkpoint_create | OPTIONS, POST | False | None |
| /admin/departments | admin.departments | GET, HEAD, OPTIONS | False | None |
| /admin/departments/<uuid:id>/delete | admin.department_delete | OPTIONS, POST | False | None |
| /admin/departments/<uuid:id>/edit | admin.department_edit | OPTIONS, POST | False | None |
| /admin/departments/new | admin.department_create | OPTIONS, POST | False | None |
| /admin/plants | admin.plants | GET, HEAD, OPTIONS | False | None |
| /admin/plants/<uuid:id>/delete | admin.plant_delete | OPTIONS, POST | False | None |
| /admin/plants/<uuid:id>/edit | admin.plant_edit | OPTIONS, POST | False | None |
| /admin/plants/new | admin.plant_create | OPTIONS, POST | False | None |
| /admin/users | admin.users | GET, HEAD, OPTIONS | False | None |
| /admin/users/<uuid:id> | admin.user_detail | GET, HEAD, OPTIONS | False | None |
| /admin/users/<uuid:id>/assignments | admin.user_assignment_add | OPTIONS, POST | False | None |
| /admin/users/<uuid:id>/assignments/<uuid:assignment_id>/delete | admin.user_assignment_delete | OPTIONS, POST | False | None |
| /admin/users/<uuid:id>/change-password | admin.user_change_password | OPTIONS, POST | False | None |
| /admin/users/<uuid:id>/delete | admin.user_delete | OPTIONS, POST | False | None |
| /admin/users/<uuid:id>/edit | admin.user_edit | OPTIONS, POST | False | None |
| /admin/users/<uuid:id>/toggle-active | admin.user_toggle_active | OPTIONS, POST | False | None |
| /admin/users/new | admin.user_create | OPTIONS, POST | False | None |
| /ai | main.ai_chat | GET, HEAD, OPTIONS, POST | False | None |
| /dashboard | main.dashboard | GET, HEAD, OPTIONS | False | None |
| /forgot-password | auth.forgot_password | GET, HEAD, OPTIONS, POST | False | None |
| /handover/notes/<shift>/<date>/<plant>/<department>/<area> | main.handover_notes_view | GET, HEAD, OPTIONS | False | None |
| /handovers | main.handovers | GET, HEAD, OPTIONS | False | None |
| /handovers/<uuid:id> | main.handover_view | GET, HEAD, OPTIONS | False | None |
| /handovers/<uuid:id>/ack | main.handover_ack | GET, HEAD, OPTIONS | False | None |
| /handovers/<uuid:id>/delete | main.handover_delete | OPTIONS, POST | False | None |
| /handovers/<uuid:id>/review | main.handover_review | GET, HEAD, OPTIONS, POST | False | None |
| /handovers/<uuid:id>/submit | main.handover_submit | OPTIONS, POST | False | None |
| /handovers/new | main.handover_new | GET, HEAD, OPTIONS, POST | False | None |
| /login | auth.login | GET, HEAD, OPTIONS, POST | False | None |
| /logout | auth.logout | GET, HEAD, OPTIONS | False | None |
| /notes | main.notes | GET, HEAD, OPTIONS, POST | False | None |
| /notes/<uuid:id>/delete | main.note_delete | OPTIONS, POST | False | None |
| /notes/<uuid:id>/edit | main.note_edit | GET, HEAD, OPTIONS, POST | False | None |
| /notes/attachments/<uuid:id>/delete | main.note_attachment_delete | OPTIONS, POST | False | None |
| /notes/attachments/<uuid:id>/download | main.note_attachment_download | GET, HEAD, OPTIONS | False | None |
| /raw-data | main.raw_data | GET, HEAD, OPTIONS | False | None |
| /reset-password/<token> | auth.reset_password | GET, HEAD, OPTIONS, POST | False | None |
| /static/<path:filename> | static | GET, HEAD, OPTIONS | False | None |
| Key | Value |
|---|---|
| _login_user | <flask_login.mixins.AnonymousUserMixin object at 0x76b561803110> |
| csrf_token | IjkzMzRkZWY5MDMxZjg4Y2M3ZjY2NjhmODYxYTM3YTQ4YzUyOTg2YzMi.asVe-A.0TEWDU437lxDZG_U3aXAgnf_6EM |
| debug_toolbar | <flask_debugtoolbar.DebugToolbarExtension object at 0x76b565b5e790> |