| Action | Time Spent |
|---|---|
| Total Time | 3.6016 ms |
| Controller Time | 0.0620 ms |
| Render Time | 2.7835 ms |
| Total Time | Engine | Count | Template | Content Type |
|---|---|---|---|---|
| 2.7835 ms | kajiki | - | otarelease.templates.login | text/html |
| 2.5966 ms | kajiki | 1 | otarelease.templates.login |
| Calls | Total | Percall | Cumu | CumuPer | Func |
|---|---|---|---|---|---|
| 1 | 0.003 | 0.0030 | 0.03 | 0.0300 | <tg/configurator/components/dispatch.py:113(_call_controller)> |
| 1 | 0.012 | 0.0120 | 0.027 | 0.0270 | <otarelease/controllers/root.py:103(login)> |
| 2/1 | 0.004 | 0.0020 | 0.014 | 0.0140 | <tg/support/objectproxy.py:18(__getattr__)> |
| 1 | 0.004 | 0.0040 | 0.011 | 0.0110 | <tg/request_local.py:232(_current_obj)> |
| 3/2 | 0.004 | 0.0013 | 0.008 | 0.0040 | {built-in method builtins.getattr} |
| 1 | 0.002 | 0.0020 | 0.002 | 0.0020 | <tg/support/registry.py:52(_current_obj)> |
| 1 | 0.001 | 0.0010 | 0.001 | 0.0010 | {method 'disable' of '_lsprof.Profiler' objects} |
| 1 | 0.001 | 0.0010 | 0.001 | 0.0010 | {method 'get' of 'dict' objects} |
| Name | Value |
|---|---|
| came_from | ['/company'] |
Nothing here.
| Name | Value |
|---|---|
| webflash | %7B%22message%22%3A%20%22The%20user%20must%20have%20the%20%5C%22managers%5C%22%20permission%22%2C%20%22status%22%3A%20%22warning%22%7D |
| Name | Value |
|---|---|
| SERVER_SOFTWARE | 'gunicorn/20.1.0' |
| REQUEST_METHOD | 'GET' |
| QUERY_STRING | 'came_from=%2Fcompany' |
| SERVER_PROTOCOL | 'HTTP/1.1' |
| HTTP_HOST | 'ota.sensors.staging.tigroup.dev' |
| HTTP_USER_AGENT | 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)' |
| HTTP_ACCEPT | '*/*' |
| HTTP_ACCEPT_ENCODING | 'gzip, br, zstd, deflate' |
| HTTP_COOKIE | 'webflash=%7B%22message%22%3A%20%22The%20user%20must%20have%20the%20%5C%22managers%5C%22%20permission%22%2C%20%22status%22%3A%20%22warning%22%7D' |
| HTTP_REFERER | 'http://ota.sensors.staging.tigroup.dev/login?came_from=%2Fcompany' |
| HTTP_X_FORWARDED_FOR | '172.24.0.1' |
| HTTP_X_FORWARDED_HOST | 'ota.sensors.staging.tigroup.dev' |
| HTTP_X_FORWARDED_PORT | '443' |
| HTTP_X_FORWARDED_PROTO | 'https' |
| HTTP_X_FORWARDED_SERVER | 'mainserver-traefik' |
| HTTP_X_REAL_IP | '172.24.0.1' |
| REMOTE_ADDR | '172.24.0.1' |
| SERVER_NAME | '0.0.0.0' |
| SERVER_PORT | '8080' |
| PATH_INFO | '/login' |
| SCRIPT_NAME | '' |
| Name | Value |
|---|---|
| identity | None |
| response | "{'_status': '200 OK', '_headers': ResponseHeaders([('Cache-Control', 'no-cache'), ('Pragma', 'no-cache'), ('Content-Length', '0'), ('Access-Control-Allow-Origin', 'http://localhost:8080'), ('Access-Control-Allow-Credentials', 'true'), ('Content-Type', 'text/html; charset=utf-8'), ('Set-Cookie', 'webflash=; Max-Age=0; Path=/; expires=Wed, 31-Dec-97 23:59:59 GMT')]), '_headerlist': [('Cache-Control', 'no-cache'), ('Pragma', 'no-cache'), ('Content-Length', '0'), ('Access-Control-Allow-Origin', 'http://localhost:8080'), ('Access-Control-Allow-Credentials', 'true'), ('Content-Type', 'text/html; charset=utf-8'), ('Set-Cookie', 'webflash=; Max-Age=0; Path=/; expires=Wed, 31-Dec-97 23:59:59 GMT')], 'conditional_response': False, '_app_iter': [b'']}" |
| Name | Value |
|---|---|
| wsgi.errors | <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f5167cd8350> |
| wsgi.version | (1, 0) |
| wsgi.multithread | True |
| wsgi.multiprocess | False |
| wsgi.run_once | False |
| wsgi.file_wrapper | <class 'gunicorn.http.wsgi.FileWrapper'> |
| wsgi.input_terminated | True |
| SERVER_SOFTWARE | 'gunicorn/20.1.0' |
| wsgi.input | <gunicorn.http.body.Body object at 0x7f5167cd8dd0> |
| gunicorn.socket | <gevent._socket3.socket at 0x7f51678e6360 object, fd=21, family=2, type=1, proto=6> |
| REQUEST_METHOD | 'GET' |
| QUERY_STRING | 'came_from=%2Fcompany' |
| RAW_URI | '/login?came_from=%2Fcompany' |
| SERVER_PROTOCOL | 'HTTP/1.1' |
| HTTP_HOST | 'ota.sensors.staging.tigroup.dev' |
| HTTP_USER_AGENT | 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)' |
| HTTP_ACCEPT | '*/*' |
| HTTP_ACCEPT_ENCODING | 'gzip, br, zstd, deflate' |
| HTTP_COOKIE | 'webflash=%7B%22message%22%3A%20%22The%20user%20must%20have%20the%20%5C%22managers%5C%22%20permission%22%2C%20%22status%22%3A%20%22warning%22%7D' |
| HTTP_REFERER | 'http://ota.sensors.staging.tigroup.dev/login?came_from=%2Fcompany' |
| HTTP_X_FORWARDED_FOR | '172.24.0.1' |
| HTTP_X_FORWARDED_HOST | 'ota.sensors.staging.tigroup.dev' |
| HTTP_X_FORWARDED_PORT | '443' |
| HTTP_X_FORWARDED_PROTO | 'https' |
| HTTP_X_FORWARDED_SERVER | 'mainserver-traefik' |
| HTTP_X_REAL_IP | '172.24.0.1' |
| wsgi.url_scheme | 'http' |
| REMOTE_ADDR | '172.24.0.1' |
| REMOTE_PORT | '59238' |
| SERVER_NAME | '0.0.0.0' |
| SERVER_PORT | '8080' |
| PATH_INFO | '/login' |
| SCRIPT_NAME | '' |
| webob._parsed_query_vars | (GET([('came_from', '/company')]), 'came_from=%2Fcompany') |
| paste.registry | <tg.support.registry.Registry object at 0x7f51679ab810> |
| repoze.who.api | <repoze.who.api.API object at 0x7f51679ab510> |
| repoze.who.plugins | {'cookie': <AuthTktCookiePlugin 139987614014032>, 'form': <FastFormPlugin:/login_handler 139987614013584>, 'main_identifier': <FastFormPlugin:/login_handler 139987614013584>, 'tgappauth': <tg.configuration.auth.metadata._AuthMetadataAuthenticator object at 0x7f5168019bd0>} |
| repoze.who.logger | <Logger auth (WARNING)> |
| repoze.who.logins | 0 |
| paste.cookies | (<SimpleCookie: webflash='%7B%22message%22%3A%20%22The%20user%20must%20have%20the%20%5C%22managers%5C%22%20permission%22%2C%20%22status%22%3A%20%22warning%22%7D'>, 'webflash=%7B%22message%22%3A%20%22The%20user%20must%20have%20the%20%5C%22managers%5C%22%20permission%22%2C%20%22status%22%3A%20%22warning%22%7D') |
| tg.locals | <tg.wsgiapp.RequestLocals object at 0x7f51678f6050> |
| beaker.cache | <beaker.cache.CacheManager object at 0x7f5168019750> |
| beaker.session | {'_domain': None, '_path': '/', '_id': '8d85485b975b4bd18965ce3751be82f1'} |
| beaker.get_session | <bound method SessionApplicationWrapper._get_session of <tg.appwrappers.session.SessionApplicationWrapper object at 0x7f5168019910>> |
| webob.adhoc_attrs | {'identity': None} |
| webob._parsed_cookies | ({'webflash': '%7B%22message%22%3A%20%22The%20user%20must%20have%20the%20%5C%22managers%5C%22%20permission%22%2C%20%22status%22%3A%20%22warning%22%7D'}, 'webflash=%7B%22message%22%3A%20%22The%20user%20must%20have%20the%20%5C%22managers%5C%22%20permission%22%2C%20%22status%22%3A%20%22warning%22%7D') |
| webflash.delete_cookie | True |
| Path | Controller | Exposed Methods |
|---|---|---|
| / | <class 'otarelease.controllers.root.RootController'> | index, about, environ, data, manage_permission_only, editor_user_only, login, post_login, post_logout, react_page |
| /secc | <class 'otarelease.controllers.secure.SecureController'> | index, some_where |
| /admin | <class 'tgext.admin.controller.AdminController'> | index, _lookup, lookup |
| /company | <class 'otarelease.controllers.company.CompanyController'> | index, new, create, edit, save, delete |
| /product | <class 'otarelease.controllers.product.ProductController'> | index, new, create, edit, save, delete, recap |
| /release | <class 'otarelease.controllers.release.ReleaseController'> | index, new, create, edit, save, delete, recap |
| /api | <class 'otarelease.controllers.api.ApiRestController'> | index, _before, options |
| /api/login | <class 'otarelease.controllers.rest.login_rest.LoginRestController'> | index, post |
| /api/company | <class 'otarelease.controllers.rest.company_rest.CompanyRestController'> | index, get_all, get_one, get |
| /api/ci_cd_release | <class 'otarelease.controllers.rest.ci_cd_release.CiCdReleaseRestController'> | get, post, delete, keep_last_releases |
| /error | <class 'otarelease.controllers.error.ErrorController'> | document |
| /_debugbar | <class 'tgext.debugbar.controller.DebugBarController'> | perform_sql, perform_ming |
| /_debugbar/statics | <class 'tgext.debugbar.controller.StaticsController'> | _default |
| Level | Time | Message | Location |
|---|