Mode development - login dengan email saja
Login menggunakan akun Apps Anda
Installation paths relative to:
/usr/local/lib/python3.12/site-packages
| Package | Version | Installed Path |
|---|---|---|
| alembic | 1.16.5 | |
| amqp | 5.3.1 | |
| anyio | 4.11.0 | |
| asttokens | 3.0.0 | |
| async-timeout | 5.0.1 | |
| autocommand | 2.2.2 | setuptools/_vendor |
| backports.tarfile | 1.2.0 | setuptools/_vendor |
| bcrypt | 4.1.2 | |
| billiard | 4.2.2 | |
| black | 23.12.1 | |
| blinker | 1.9.0 | |
| cachelib | 0.9.0 | |
| celery | 5.3.4 | |
| certifi | 2025.10.5 | |
| cffi | 2.0.0 | |
| charset-normalizer | 3.4.3 | |
| click | 8.3.0 | |
| click-didyoumean | 0.3.1 | |
| click-plugins | 1.1.1.2 | |
| click-repl | 0.3.0 | |
| colorama | 0.4.6 | |
| coverage | 7.10.7 | |
| cryptography | 41.0.7 | |
| decorator | 5.2.1 | |
| dnspython | 2.8.0 | |
| email-validator | 2.1.0 | |
| exceptiongroup | 1.3.0 | |
| executing | 2.2.1 | |
| factory-boy | 3.3.0 | |
| faker | 37.11.0 | |
| flake8 | 7.0.0 | |
| flask | 3.0.0 | |
| Flask-Caching | 2.1.0 | |
| Flask-DebugToolbar | 0.14.1 | |
| Flask-Login | 0.6.3 | |
| flask-mail | 0.9.1 | |
| Flask-Migrate | 4.0.5 | |
| flask-sqlalchemy | 3.1.1 | |
| flask-wtf | 1.2.1 | |
| gevent | 24.2.1 | |
| greenlet | 3.2.4 | |
| gunicorn | 21.2.0 | |
| h11 | 0.16.0 | |
| httpcore | 1.0.9 | |
| httpx | 0.28.1 | |
| idna | 3.10 | |
| importlib-metadata | 8.0.0 | setuptools/_vendor |
| inflect | 7.3.1 | setuptools/_vendor |
| iniconfig | 2.1.0 | |
| ipdb | 0.13.13 | |
| ipython | 8.37.0 | |
| isort | 5.13.2 | |
| itsdangerous | 2.2.0 | |
| jaraco.collections | 5.1.0 | setuptools/_vendor |
| jaraco.context | 5.3.0 | setuptools/_vendor |
| jaraco.functools | 4.0.1 | setuptools/_vendor |
| jaraco.text | 3.12.1 | setuptools/_vendor |
| jedi | 0.19.2 | |
| jinja2 | 3.1.6 | |
| kombu | 5.5.4 | |
| mako | 1.3.10 | |
| markdown-it-py | 4.0.0 | |
| markupsafe | 3.0.3 | |
| matplotlib-inline | 0.1.7 | |
| mccabe | 0.7.0 | |
| mdurl | 0.1.2 | |
| more-itertools | 10.3.0 | setuptools/_vendor |
| mypy | 1.8.0 | |
| mypy-extensions | 1.1.0 | |
| packaging | 25.0 | |
| parso | 0.8.5 | |
| pathspec | 0.12.1 | |
| pexpect | 4.9.0 | |
| Pillow | 10.1.0 | |
| pip | 25.0.1 | |
| platformdirs | 4.5.0 | |
| pluggy | 1.6.0 | |
| prompt-toolkit | 3.0.52 | |
| ptyprocess | 0.7.0 | |
| pure-eval | 0.2.3 | |
| pycodestyle | 2.11.1 | |
| pycparser | 2.23 | |
| pyflakes | 3.2.0 | |
| pygments | 2.19.2 | |
| PyMySQL | 1.1.0 | |
| pytest | 7.4.3 | |
| pytest-cov | 4.1.0 | |
| pytest-flask | 1.3.0 | |
| python-dateutil | 2.8.2 | |
| python-dotenv | 1.0.0 | |
| readchar | 4.2.1 | |
| redis | 5.0.1 | |
| reportlab | 4.0.7 | |
| requests | 2.32.5 | |
| rich | 14.2.0 | |
| setuptools | 80.9.0 | |
| shellingham | 1.5.4 | |
| six | 1.17.0 | |
| sniffio | 1.3.1 | |
| socksio | 1.0.0 | |
| SQLAlchemy | 2.0.23 | |
| stack-data | 0.6.3 | |
| tomli | 2.3.0 | |
| traitlets | 5.14.3 | |
| truststore | 0.10.4 | |
| typeguard | 4.3.0 | setuptools/_vendor |
| typer | 0.19.2 | |
| typing-extensions | 4.15.0 | |
| tzdata | 2025.2 | |
| urllib3 | 2.5.0 | |
| uv | 0.9.2 | |
| vine | 5.1.0 | |
| wcwidth | 0.2.14 | |
| werkzeug | 3.1.3 | |
| wheel | 0.45.1 | setuptools/_vendor |
| wtforms | 3.1.1 | |
| wtforms-sqlalchemy | 0.4.2 | |
| zipp | 3.19.2 | setuptools/_vendor |
| zope-event | 6.0 | |
| zope-interface | 8.0.1 |
| Resource | Value |
|---|---|
| User CPU time | 3.627 msec |
| System CPU time | 0.000 msec |
| Total CPU time | 3.627 msec |
| Elapsed time | 3.624 msec |
| Context switches | 0 voluntary, 0 involuntary |
| Key | Value |
|---|---|
| HTTP_ACCEPT | */* |
| HTTP_ACCEPT_ENCODING | gzip, br, zstd, deflate |
| HTTP_HOST | equity.dev.unhas.ac.id |
| HTTP_USER_AGENT | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) |
| QUERY_STRING | |
| REMOTE_ADDR | 172.18.0.9 |
| REQUEST_METHOD | GET |
| SCRIPT_NAME | |
| SERVER_NAME | 0.0.0.0 |
| SERVER_PORT | 5001 |
| SERVER_PROTOCOL | HTTP/1.1 |
| SERVER_SOFTWARE | Werkzeug/3.1.3 |
| View Function | args | kwargs |
|---|---|---|
| app.auth.routes.login | [] | None |
| Variable | Value |
|---|
| Variable | Value |
|---|---|
| 'csrf_token' | 'd44edffe0baeb16e7eb8d35c7c74fb4bd0d4c030' |
| Variable | Value |
|---|
| Variable | Value |
|---|
| Key | Value |
|---|---|
| ALLOWED_EXTENSIONS | {'pdf'} |
| ALLOWED_MIME_TYPES | {'application/pdf'} |
| APP_DOMAIN | 'equity.dev.unhas.ac.id' |
| APP_NAME | 'Hibah Equity' |
| APPLICATION_ROOT | '/' |
| ASSET_VERSION | '1.0.0' |
| BASE_URL | 'https://equity.dev.unhas.ac.id' |
| CACHE_DEFAULT_TIMEOUT | 300 |
| CACHE_KEY_PREFIX | 'unhas_grant_' |
| CACHE_REDIS_URL | 'redis://redis:6379/0' |
| CACHE_TYPE | 'redis' |
| CELERY_ACCEPT_CONTENT | ['json'] |
| CELERY_BROKER_URL | 'redis://redis:6379/0' |
| CELERY_ENABLE_UTC | True |
| CELERY_RESULT_BACKEND | 'redis://redis:6379/0' |
| CELERY_RESULT_SERIALIZER | 'json' |
| CELERY_TASK_SERIALIZER | 'json' |
| CELERY_TASK_TIME_LIMIT | 1800 |
| CELERY_TASK_TRACK_STARTED | True |
| CELERY_TIMEZONE | 'Asia/Makassar' |
| CHUNK_SIZE | 5242880 |
| CHUNK_UPLOAD_TIMEOUT | 30 |
| 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'] |
| DEBUG_TB_PROFILER_ENABLED | False |
| DEBUG_TB_TEMPLATE_EDITOR_ENABLED | False |
| EXPLAIN_TEMPLATE_LOADING | False |
| MAIL_DEFAULT_SENDER | 'noreply@unhas.ac.id' |
| MAIL_PASSWORD | '5c0110929b4cbf' |
| MAIL_PORT | 2525 |
| MAIL_SERVER | 'sandbox.smtp.mailtrap.io' |
| MAIL_USE_SSL | False |
| MAIL_USE_TLS | True |
| MAIL_USERNAME | '908b2611eabdfa' |
| MAX_CHUNK_RETRIES | 3 |
| MAX_CONTENT_LENGTH | 52428800 |
| MAX_COOKIE_SIZE | 4093 |
| PERMANENT_SESSION_LIFETIME | datetime.timedelta(days=1) |
| PREFERRED_URL_SCHEME | 'https' |
| PROPAGATE_EXCEPTIONS | None |
| PROPOSALS_PER_PAGE | 10 |
| REVIEW_DEADLINE_DAYS | 7 |
| REVISION_DEADLINE_DAYS | 7 |
| SECRET_KEY | 'dev-secret-key-please-change-in-production' |
| SEND_FILE_MAX_AGE_DEFAULT | 31536000 |
| SERVER_NAME | None |
| SESSION_COOKIE_DOMAIN | None |
| SESSION_COOKIE_HTTPONLY | True |
| SESSION_COOKIE_NAME | 'session' |
| SESSION_COOKIE_PATH | None |
| SESSION_COOKIE_SAMESITE | 'Lax' |
| SESSION_COOKIE_SECURE | False |
| SESSION_REFRESH_EACH_REQUEST | True |
| SQLALCHEMY_BINDS | {} |
| SQLALCHEMY_DATABASE_URI | 'mysql+pymysql://unhas_user:alALdGj98cj@db:3306/unhas_grant?charset=utf8mb4' |
| SQLALCHEMY_ECHO | False |
| SQLALCHEMY_ENGINE_OPTIONS | {'pool_size': 10, 'pool_recycle': 3600, 'pool_pre_ping': True, 'max_overflow': 20} |
| SQLALCHEMY_RECORD_QUERIES | False |
| SQLALCHEMY_TRACK_MODIFICATIONS | False |
| TEMPLATES_AUTO_RELOAD | None |
| TESTING | False |
| TRAP_BAD_REQUEST_ERRORS | None |
| TRAP_HTTP_EXCEPTIONS | False |
| UNHAS_API_PASSWORD | 'createdbyMe' |
| UNHAS_API_URL | 'https://apps.unhas.ac.id:443/nusoap/serviceApps.php' |
| UNHAS_API_USERNAME | 'informatikaUNHAS' |
| UNHAS_EMPLOYEE_API_TOKEN | '16b4c2745bbf1dd83ab8a45e0dbb8ab7' |
| UNHAS_EMPLOYEE_API_URL | 'https://apps.unhas.ac.id/simkepegawaian/index.php/api/getDataPegawai' |
| UPLOAD_FOLDER | '/app/app/static/uploads' |
| USE_X_SENDFILE | False |
| USERS_PER_PAGE | 10 |
| 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', 'DELETE', 'PATCH', 'POST'} |
| WTF_CSRF_SSL_STRICT | True |
| WTF_CSRF_TIME_LIMIT | 3600 |
| Variable | Value |
|---|---|
| app_name | 'Hibah Equity' |
| csrf_token | <function generate_csrf at 0x7f797e8256c0> |
| current_user | <flask_login.mixins.AnonymousUserMixin object at 0x7f797aa291f0> |
| email_form | <app.auth.routes.EmailLoginForm object at 0x7f797a989bb0> |
| g | <flask.g of 'app'> |
| get_countries | <function create_app.<locals>.utility_processor.<locals>.get_countries at 0x7f797a9af380> |
| get_status_display_name | <function get_status_display_name at 0x7f797bbe5940> |
| request | <Request 'http://equity.dev.unhas.ac.id/auth/login' [GET]> |
| session | <SecureCookieSession {'csrf_token': 'd44edffe0baeb16e7eb8d35c7c74fb4bd0d4c030'}> |
| unhas_form | <app.auth.routes.UnhasLoginForm object at 0x7f797aa58f20> |
| user_perms | {} |
No messages logged.
| URL route | Endpoint name | HTTP methods | Is alias | Redirect to |
|---|---|---|---|---|
| / | main.index | GET, HEAD, OPTIONS | False | None |
| /admin/api/documents | admin.api_list_documents | GET, HEAD, OPTIONS | False | None |
| /admin/api/documents/<int:doc_id> | admin.api_get_document | GET, HEAD, OPTIONS | False | None |
| /admin/api/final-reports/tab/<tab_name> | admin.api_final_reports_tab | GET, HEAD, OPTIONS | False | None |
| /admin/api/proposals/search | admin.api_proposals_search | GET, HEAD, OPTIONS | False | None |
| /admin/api/roles/assign | admin.api_assign_role | OPTIONS, POST | False | None |
| /admin/api/roles/history | admin.api_role_history | GET, HEAD, OPTIONS | False | None |
| /admin/api/roles/permissions | admin.api_role_permissions | GET, HEAD, OPTIONS | False | None |
| /admin/api/roles/revoke | admin.api_revoke_role | OPTIONS, POST | False | None |
| /admin/api/users | admin.api_users | GET, HEAD, OPTIONS | False | None |
| /admin/api/users/bulk-assign | admin.api_bulk_assign_roles | OPTIONS, POST | False | None |
| /admin/api/users/search | admin.api_users_search | GET, HEAD, OPTIONS | False | None |
| /admin/documents | admin.manage_documents | GET, HEAD, OPTIONS | False | None |
| /admin/documents/<int:doc_id>/delete | admin.delete_document | OPTIONS, POST | False | None |
| /admin/documents/<int:doc_id>/edit | admin.edit_document | GET, HEAD, OPTIONS, POST | False | None |
| /admin/documents/<int:doc_id>/toggle | admin.toggle_document | OPTIONS, POST | False | None |
| /admin/documents/add | admin.add_document | GET, HEAD, OPTIONS, POST | False | None |
| /admin/final-report/<int:proposal_id>/approve | admin.approve_final_report | OPTIONS, POST | False | None |
| /admin/final-report/<int:proposal_id>/request-revision | admin.request_revision_final_report | OPTIONS, POST | False | None |
| /admin/final-report/<int:proposal_id>/review | admin.review_final_report | GET, HEAD, OPTIONS | False | None |
| /admin/final-reports | admin.final_reports | GET, HEAD, OPTIONS | False | None |
| /admin/proposals | admin.proposals | GET, HEAD, OPTIONS | False | None |
| /admin/proposals/<int:proposal_id>/assign-reviewer | admin.assign_reviewer_page | GET, HEAD, OPTIONS, POST | False | None |
| /admin/roles | admin.roles_dashboard | GET, HEAD, OPTIONS | False | None |
| /admin/roles/<role_type>/permissions/<int:permission_id>/remove | admin.remove_permission_from_role | OPTIONS, POST | False | None |
| /admin/roles/<role_type>/permissions/add | admin.add_permission_to_role | OPTIONS, POST | False | None |
| /admin/roles/permissions | admin.manage_role_permissions | GET, HEAD, OPTIONS | False | None |
| /admin/users | admin.users | GET, HEAD, OPTIONS | False | None |
| /admin/users/<int:user_id>/delete | admin.delete_user | OPTIONS, POST | False | None |
| /admin/users/<int:user_id>/edit | admin.edit_user | GET, HEAD, OPTIONS, POST | False | None |
| /admin/users/<int:user_id>/roles | admin.user_roles | GET, HEAD, OPTIONS | False | None |
| /admin/users/<int:user_id>/roles/add | admin.add_user_role | OPTIONS, POST | False | None |
| /admin/users/<int:user_id>/roles/remove | admin.remove_user_role | OPTIONS, POST | False | None |
| /admin/users/<int:user_id>/verify-email-manual | admin.verify_email_manual | OPTIONS, POST | False | None |
| /admin/users/add | admin.add_user | GET, HEAD, OPTIONS, POST | False | None |
| /api/fakultas | main.get_fakultas | GET, HEAD, OPTIONS | False | None |
| /api/prodi | main.get_all_prodi | GET, HEAD, OPTIONS | False | None |
| /api/prodi/<int:fakultas_id> | main.get_prodi_by_fakultas | GET, HEAD, OPTIONS | False | None |
| /api/reviewers/assign | reviewers_api.assign_reviewers | OPTIONS, POST | False | None |
| /api/reviewers/available | reviewers_api.get_available_reviewers | GET, HEAD, OPTIONS | False | None |
| /api/reviewers/proposal/<int:proposal_id> | reviewers_api.get_proposal_reviewers | GET, HEAD, OPTIONS | False | None |
| /api/upload/cancel/<session_id> | upload_api.cancel_upload | DELETE, OPTIONS, POST | False | None |
| /api/upload/chunk | upload_api.upload_chunk | OPTIONS, POST | False | None |
| /api/upload/complete | upload_api.complete_upload | OPTIONS, POST | False | None |
| /api/upload/init | upload_api.init_upload | OPTIONS, POST | False | None |
| /api/upload/resume | upload_api.resume_upload | OPTIONS, POST | False | None |
| /api/upload/status/<session_id> | upload_api.get_upload_status | GET, HEAD, OPTIONS | False | None |
| /auth/login | auth.login | GET, HEAD, OPTIONS, POST | False | None |
| /auth/logout | auth.logout | GET, HEAD, OPTIONS | False | None |
| /auth/profile | auth.profile | GET, HEAD, OPTIONS, POST | False | None |
| /auth/profile/sync | auth.sync_profile | OPTIONS, POST | False | None |
| /auth/send-verification-email | auth.send_verification_email | OPTIONS, POST | False | None |
| /auth/verify-email/<token> | auth.verify_email | GET, HEAD, OPTIONS | False | None |
| /dashboard/admin_fakultas | dashboards.admin_fakultas | GET, HEAD, OPTIONS | False | None |
| /dashboard/admin_kui | dashboards.admin_kui | GET, HEAD, OPTIONS | False | None |
| /dashboard/bagian_keuangan | dashboards.bagian_keuangan | GET, HEAD, OPTIONS | False | None |
| /dashboard/dosen | dashboards.dosen | GET, HEAD, OPTIONS | False | None |
| /dashboard/reviewer | dashboards.reviewer | GET, HEAD, OPTIONS | False | None |
| /dashboard/superadmin | dashboards.superadmin | GET, HEAD, OPTIONS | False | None |
| /dashboard/viewer | dashboards.viewer | GET, HEAD, OPTIONS | False | None |
| /download-template/<grant_type>/<doc_type> | main.download_public_template | GET, HEAD, OPTIONS | False | None |
| /finance/api/dashboard/tab/<tab_name> | finance.api_dashboard_tab | GET, HEAD, OPTIONS | False | None |
| /finance/dashboard | finance.dashboard | GET, HEAD, OPTIONS | False | None |
| /finance/proposal/<int:proposal_id> | finance.proposal_detail | GET, HEAD, OPTIONS | False | None |
| /finance/proposal/<int:proposal_id>/approve-final-report | finance.approve_final_report | OPTIONS, POST | False | None |
| /finance/proposal/<int:proposal_id>/confirm-disbursement-20 | finance.confirm_disbursement_20 | OPTIONS, POST | False | None |
| /finance/proposal/<int:proposal_id>/confirm-disbursement-80 | finance.confirm_disbursement_80 | OPTIONS, POST | False | None |
| /finance/proposal/<int:proposal_id>/request-revision-final-report | finance.request_revision_final_report | OPTIONS, POST | False | None |
| /finance/proposal/<int:proposal_id>/review-final-report | finance.review_final_report | GET, HEAD, OPTIONS | False | None |
| /finance/proposal/<int:proposal_id>/upload-sk | finance.upload_sk | GET, HEAD, OPTIONS, POST | False | None |
| /health | main.health_check | GET, HEAD, OPTIONS | False | None |
| /health/simple | main.health_check_simple | GET, HEAD, OPTIONS | False | None |
| /notifications/ | notifications.index | GET, HEAD, OPTIONS | False | None |
| /notifications/api/<int:notification_id>/mark-read | notifications.api_mark_read | OPTIONS, POST | False | None |
| /notifications/api/mark-all-read | notifications.api_mark_all_read | OPTIONS, POST | False | None |
| /notifications/api/recent | notifications.api_recent | GET, HEAD, OPTIONS | False | None |
| /notifications/api/unread-count | notifications.api_unread_count | GET, HEAD, OPTIONS | False | None |
| /notifications/dropdown | notifications.dropdown | GET, HEAD, OPTIONS | False | None |
| /proposals/ | proposals.my_proposals | GET, HEAD, OPTIONS | False | None |
| /proposals/<int:proposal_id> | proposals.view | GET, HEAD, OPTIONS | False | None |
| /proposals/<int:proposal_id>/delete | proposals.delete | OPTIONS, POST | False | None |
| /proposals/<int:proposal_id>/submit-final-report | proposals.submit_final_report | GET, HEAD, OPTIONS, POST | False | None |
| /proposals/api/search | proposals.api_proposals_search | GET, HEAD, OPTIONS | False | None |
| /proposals/calculate-budget | proposals.calculate_budget | OPTIONS, POST | False | None |
| /proposals/create | proposals.create | GET, HEAD, OPTIONS | False | None |
| /proposals/create/step/<int:step> | proposals.create_step | GET, HEAD, OPTIONS, POST | False | None |
| /proposals/document/<int:document_id>/download | proposals.download_document | GET, HEAD, OPTIONS | False | None |
| /proposals/document/<int:document_id>/preview | proposals.preview_document | GET, HEAD, OPTIONS | False | None |
| /proposals/edit/<int:proposal_id> | proposals.edit_draft | GET, HEAD, OPTIONS | False | None |
| /proposals/remove-document | proposals.remove_document | OPTIONS, POST | False | None |
| /proposals/save-draft | proposals.save_draft | OPTIONS, POST | False | None |
| /proposals/template/<grant_type>/<doc_type> | proposals.download_template | GET, HEAD, OPTIONS | False | None |
| /reviews/assigned | reviews.assigned | GET, HEAD, OPTIONS | False | None |
| /reviews/submit/<int:proposal_id> | reviews.submit_review | OPTIONS, POST | False | None |
| /static/<path:filename> | static | GET, HEAD, OPTIONS | False | None |
| /templates | main.templates | GET, HEAD, OPTIONS | False | None |
| /test-modal | main.test_modal | GET, HEAD, OPTIONS | False | None |