2026-06-04 13:23:08 | INFO     | main | Starting Dunis Inventory API...
2026-06-04 13:23:08 | WARNING  | main | Role seeding skipped: (psycopg2.errors.UndefinedTable) relation "roles" does not exist
LINE 2: FROM roles 
             ^

[SQL: SELECT roles.name AS roles_name, roles.description AS roles_description, roles.is_default AS roles_is_default, roles.id AS roles_id, roles.created_at AS roles_created_at, roles.updated_at AS roles_updated_at 
FROM roles 
WHERE roles.name = %(name_1)s 
 LIMIT %(param_1)s]
[parameters: {'name_1': 'super_admin', 'param_1': 1}]
(Background on this error at: https://sqlalche.me/e/20/f405)
2026-06-04 13:23:08 | INFO     | main | Shutdown complete.
2026-06-04 15:34:59 | INFO     | main | Starting Dunis Inventory API...
2026-06-04 15:34:59 | WARNING  | main | Role seeding skipped: (psycopg2.errors.UndefinedTable) relation "roles" does not exist
LINE 2: FROM roles 
             ^

[SQL: SELECT roles.name AS roles_name, roles.description AS roles_description, roles.is_default AS roles_is_default, roles.id AS roles_id, roles.created_at AS roles_created_at, roles.updated_at AS roles_updated_at 
FROM roles 
WHERE roles.name = %(name_1)s 
 LIMIT %(param_1)s]
[parameters: {'name_1': 'super_admin', 'param_1': 1}]
(Background on this error at: https://sqlalche.me/e/20/f405)
2026-06-04 15:34:59 | INFO     | main | Shutdown complete.
2026-06-04 17:37:27 | INFO     | main | Starting Dunis Inventory API...
2026-06-04 17:37:27 | INFO     | main | Default roles seeded.
2026-06-04 17:37:27 | INFO     | main | Shutdown complete.
2026-06-04 17:42:13 | INFO     | main | Starting Dunis Inventory API...
2026-06-04 17:42:13 | INFO     | main | Default roles seeded.
2026-06-04 17:42:21 | INFO     | main | Shutdown complete.
2026-06-04 17:59:33 | INFO     | main | Starting Dunis Inventory API...
2026-06-04 17:59:33 | INFO     | main | Starting Dunis Inventory API...
2026-06-04 17:59:33 | INFO     | main | Starting Dunis Inventory API...
2026-06-04 17:59:33 | INFO     | main | Default roles seeded.
2026-06-04 17:59:33 | INFO     | main | Default roles seeded.
2026-06-04 17:59:33 | INFO     | main | Default roles seeded.
2026-06-04 17:59:33 | INFO     | main | Starting Dunis Inventory API...
2026-06-04 17:59:33 | INFO     | main | Default roles seeded.
2026-06-04 18:02:23 | INFO     | main | Shutdown complete.
2026-06-04 18:02:23 | INFO     | main | Shutdown complete.
2026-06-04 18:02:23 | INFO     | main | Shutdown complete.
2026-06-04 18:02:23 | INFO     | main | Shutdown complete.
2026-06-04 18:02:28 | INFO     | main | Starting Dunis Inventory API...
2026-06-04 18:02:28 | INFO     | main | Default roles seeded.
2026-06-04 18:02:28 | INFO     | main | Starting Dunis Inventory API...
2026-06-04 18:02:28 | INFO     | main | Starting Dunis Inventory API...
2026-06-04 18:02:28 | INFO     | main | Default roles seeded.
2026-06-04 18:02:28 | INFO     | main | Default roles seeded.
2026-06-04 18:02:28 | INFO     | main | Starting Dunis Inventory API...
2026-06-04 18:02:29 | INFO     | main | Default roles seeded.
2026-06-04 18:35:50 | INFO     | main | Shutdown complete.
2026-06-04 18:35:50 | INFO     | main | Shutdown complete.
2026-06-04 18:35:50 | INFO     | main | Shutdown complete.
2026-06-04 18:35:50 | INFO     | main | Shutdown complete.
2026-06-04 18:35:55 | INFO     | main | Starting Dunis Inventory API...
2026-06-04 18:35:55 | INFO     | main | Starting Dunis Inventory API...
2026-06-04 18:35:55 | INFO     | main | Default roles seeded.
2026-06-04 18:35:55 | INFO     | main | Starting Dunis Inventory API...
2026-06-04 18:35:55 | INFO     | main | Starting Dunis Inventory API...
2026-06-04 18:35:55 | INFO     | main | Default roles seeded.
2026-06-04 18:35:55 | INFO     | main | Default roles seeded.
2026-06-04 18:35:55 | INFO     | main | Default roles seeded.
2026-06-04 19:22:03 | INFO     | main | Shutdown complete.
2026-06-04 19:22:03 | INFO     | main | Shutdown complete.
2026-06-04 19:22:03 | INFO     | main | Shutdown complete.
2026-06-04 19:22:03 | INFO     | main | Shutdown complete.
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-04 19:22:08 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-04 19:22:08 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-04 19:22:08 | INFO     | main | Default roles seeded.
2026-06-04 19:22:08 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-04 19:22:08 | INFO     | main | Default roles seeded.
2026-06-04 19:22:08 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-04 19:22:08 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-04 19:22:09 | INFO     | main | Default roles seeded.
2026-06-04 19:22:09 | INFO     | main | Default roles seeded.
2026-06-04 21:13:57 | INFO     | main | Shutdown complete.
2026-06-04 21:13:57 | INFO     | main | Shutdown complete.
2026-06-04 21:13:57 | INFO     | main | Shutdown complete.
2026-06-04 21:13:57 | INFO     | main | Shutdown complete.
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-04 21:14:02 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-04 21:14:02 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-04 21:14:02 | INFO     | main | Default roles seeded.
2026-06-04 21:14:02 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-04 21:14:02 | INFO     | main | Default roles seeded.
2026-06-04 21:14:03 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-04 21:14:03 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-04 21:14:03 | INFO     | main | Default roles seeded.
2026-06-04 21:14:03 | INFO     | main | Default roles seeded.
2026-06-04 21:15:42 | INFO     | main | Shutdown complete.
2026-06-04 21:15:42 | INFO     | main | Shutdown complete.
2026-06-04 21:15:42 | INFO     | main | Shutdown complete.
2026-06-04 21:15:42 | INFO     | main | Shutdown complete.
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-04 21:15:45 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-04 21:15:46 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-04 21:15:46 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-04 21:15:46 | INFO     | main | Default roles seeded.
2026-06-04 21:15:46 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-04 21:15:46 | INFO     | main | Default roles seeded.
2026-06-04 21:15:46 | INFO     | main | Default roles seeded.
2026-06-04 21:15:46 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-04 21:15:46 | INFO     | main | Default roles seeded.
2026-06-04 21:27:15 | ERROR    | main | [b191e583] POST /api/v1/categories/ — IntegrityError: (psycopg2.errors.ForeignKeyViolation) insert or update on table "categories" violates foreign key constraint "categories_parent_id_fkey"
DETAIL:  Key (parent_id)=(3fa85f64-5717-4562-b3fc-2c963f66afa6) is not present in table "categories".

[SQL: INSERT INTO categories (name, "desc", dept, user_id, parent_id, id, deleted) VALUES (%(name)s, %(desc)s, %(dept)s, %(user_id)s::UUID, %(parent_id)s::UUID, %(id)s::UUID, %(deleted)s) RETURNING categories.created_at, categories.updated_at]
[parameters: {'name': 'string', 'desc': 'string', 'dept': 'general', 'user_id': UUID('684cf178-7499-4b6d-b093-0e30b56b2877'), 'parent_id': UUID('3fa85f64-5717-4562-b3fc-2c963f66afa6'), 'id': UUID('75ddb102-2ab8-4dff-a48f-65eb45d12a6f'), 'deleted': False}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-04 21:27:15 | ERROR    | main | Traceback (most recent call last):
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        cursor, str_statement, effective_parameters, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/default.py", line 941, in do_execute
    cursor.execute(statement, parameters)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
psycopg2.errors.ForeignKeyViolation: insert or update on table "categories" violates foreign key constraint "categories_parent_id_fkey"
DETAIL:  Key (parent_id)=(3fa85f64-5717-4562-b3fc-2c963f66afa6) is not present in table "categories".


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/errors.py", line 165, in __call__
    await self.app(scope, receive, _send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/gzip.py", line 20, in __call__
    await responder(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/gzip.py", line 39, in __call__
    await self.app(scope, receive, self.send_with_gzip)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/cors.py", line 93, in __call__
    await self.simple_response(scope, receive, send, request_headers=headers)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/cors.py", line 144, in simple_response
    await self.app(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app
    raise exc
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app
    await app(scope, receive, sender)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 715, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 735, in app
    await route.handle(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 288, in handle
    await self.app(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 76, in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app
    raise exc
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app
    await app(scope, receive, sender)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 73, in app
    response = await f(request)
               ^^^^^^^^^^^^^^^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/fastapi/routing.py", line 301, in app
    raw_response = await run_endpoint_function(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<3 lines>...
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
    return await dependant.call(**values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/simpdinr/inventory-api.simplylovely.ng/app/api/v1/categories.py", line 44, in create_category
    cat = inventory_service.create_category(db, data, user_id=current_user.id)
  File "/home/simpdinr/inventory-api.simplylovely.ng/app/services/inventory_service.py", line 55, in create_category
    db.commit()
    ~~~~~~~~~^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 2028, in commit
    trans.commit(_to_root=True)
    ~~~~~~~~~~~~^^^^^^^^^^^^^^^
  File "<string>", line 2, in commit
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
    ret_value = fn(self, *arg, **kw)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 1313, in commit
    self._prepare_impl()
    ~~~~~~~~~~~~~~~~~~^^
  File "<string>", line 2, in _prepare_impl
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
    ret_value = fn(self, *arg, **kw)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 1288, in _prepare_impl
    self.session.flush()
    ~~~~~~~~~~~~~~~~~~^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 4352, in flush
    self._flush(objects)
    ~~~~~~~~~~~^^^^^^^^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 4487, in _flush
    with util.safe_reraise():
         ~~~~~~~~~~~~~~~~~^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 4448, in _flush
    flush_context.execute()
    ~~~~~~~~~~~~~~~~~~~~~^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/unitofwork.py", line 466, in execute
    rec.execute(self)
    ~~~~~~~~~~~^^^^^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/unitofwork.py", line 642, in execute
    util.preloaded.orm_persistence.save_obj(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        self.mapper,
        ^^^^^^^^^^^^
        uow.states_for_mapper_hierarchy(self.mapper, False, False),
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        uow,
        ^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/persistence.py", line 93, in save_obj
    _emit_insert_statements(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        base_mapper,
        ^^^^^^^^^^^^
    ...<3 lines>...
        insert,
        ^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/persistence.py", line 1233, in _emit_insert_statements
    result = connection.execute(
        statement,
        params,
        execution_options=execution_options,
    )
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1418, in execute
    return meth(
        self,
        distilled_parameters,
        execution_options or NO_OPTIONS,
    )
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/sql/elements.py", line 515, in _execute_on_connection
    return connection._execute_clauseelement(
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        self, distilled_params, execution_options
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1640, in _execute_clauseelement
    ret = self._execute_context(
        dialect,
    ...<8 lines>...
        cache_hit=cache_hit,
    )
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
    return self._exec_single_context(
           ~~~~~~~~~~~~~~~~~~~~~~~~~^
        dialect, context, statement, parameters
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
    self._handle_dbapi_exception(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        e, str_statement, effective_parameters, cursor, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        cursor, str_statement, effective_parameters, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/default.py", line 941, in do_execute
    cursor.execute(statement, parameters)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
sqlalchemy.exc.IntegrityError: (psycopg2.errors.ForeignKeyViolation) insert or update on table "categories" violates foreign key constraint "categories_parent_id_fkey"
DETAIL:  Key (parent_id)=(3fa85f64-5717-4562-b3fc-2c963f66afa6) is not present in table "categories".

[SQL: INSERT INTO categories (name, "desc", dept, user_id, parent_id, id, deleted) VALUES (%(name)s, %(desc)s, %(dept)s, %(user_id)s::UUID, %(parent_id)s::UUID, %(id)s::UUID, %(deleted)s) RETURNING categories.created_at, categories.updated_at]
[parameters: {'name': 'string', 'desc': 'string', 'dept': 'general', 'user_id': UUID('684cf178-7499-4b6d-b093-0e30b56b2877'), 'parent_id': UUID('3fa85f64-5717-4562-b3fc-2c963f66afa6'), 'id': UUID('75ddb102-2ab8-4dff-a48f-65eb45d12a6f'), 'deleted': False}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)

2026-06-04 22:07:08 | INFO     | main | Shutdown complete.
2026-06-04 22:07:08 | INFO     | main | Shutdown complete.
2026-06-04 22:07:08 | INFO     | main | Shutdown complete.
2026-06-04 22:07:08 | INFO     | main | Shutdown complete.
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-04 22:07:13 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-04 22:07:13 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-04 22:07:13 | INFO     | main | Default roles seeded.
2026-06-04 22:07:13 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-04 22:07:13 | INFO     | main | Default roles seeded.
2026-06-04 22:07:13 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-04 22:07:13 | INFO     | main | Default roles seeded.
2026-06-04 22:07:13 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-04 22:07:14 | INFO     | main | Default roles seeded.
2026-06-05 01:22:29 | INFO     | main | Shutdown complete.
2026-06-05 01:22:29 | INFO     | main | Shutdown complete.
2026-06-05 01:22:29 | INFO     | main | Shutdown complete.
2026-06-05 01:22:29 | INFO     | main | Shutdown complete.
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-05 01:22:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 01:22:33 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 01:22:33 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 01:22:33 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 01:22:33 | INFO     | main | Default roles seeded.
2026-06-05 01:22:33 | INFO     | main | Default roles seeded.
2026-06-05 01:22:33 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 01:22:33 | INFO     | main | Default roles seeded.
2026-06-05 01:22:33 | INFO     | main | Default roles seeded.
2026-06-05 01:33:09 | INFO     | main | Shutdown complete.
2026-06-05 01:33:09 | INFO     | main | Shutdown complete.
2026-06-05 01:33:09 | INFO     | main | Shutdown complete.
2026-06-05 01:33:09 | INFO     | main | Shutdown complete.
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-05 01:33:14 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 01:33:14 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 01:33:14 | INFO     | main | Default roles seeded.
2026-06-05 01:33:14 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 01:33:15 | INFO     | main | Default roles seeded.
2026-06-05 01:33:15 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 01:33:15 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 01:33:15 | INFO     | main | Default roles seeded.
2026-06-05 01:33:15 | INFO     | main | Default roles seeded.
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-05 02:35:34 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 02:35:35 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 02:35:35 | INFO     | main | Default roles seeded.
2026-06-05 02:35:35 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 02:35:35 | INFO     | main | Default roles seeded.
2026-06-05 02:35:35 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 02:35:35 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 02:35:35 | INFO     | main | Default roles seeded.
2026-06-05 02:35:35 | INFO     | main | Default roles seeded.
2026-06-05 02:35:50 | INFO     | main | Shutdown complete.
2026-06-05 02:35:50 | INFO     | main | Shutdown complete.
2026-06-05 02:35:50 | INFO     | main | Shutdown complete.
2026-06-05 02:35:50 | INFO     | main | Shutdown complete.
2026-06-05 02:35:54 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 02:35:55 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 02:35:55 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 02:35:55 | INFO     | main | Default roles seeded.
2026-06-05 02:35:55 | INFO     | main | Default roles seeded.
2026-06-05 02:35:55 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 02:35:55 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 02:35:55 | INFO     | main | Default roles seeded.
2026-06-05 02:35:55 | INFO     | main | Default roles seeded.
2026-06-05 02:56:04 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 02:56:05 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 02:56:05 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 02:56:05 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 02:56:06 | INFO     | main | Default roles seeded.
2026-06-05 02:56:06 | INFO     | main | Default roles seeded.
2026-06-05 02:56:06 | INFO     | main | Default roles seeded.
2026-06-05 02:56:06 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 02:56:06 | INFO     | main | Default roles seeded.
2026-06-05 03:40:55 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 03:40:57 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 03:40:57 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 03:40:57 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 03:40:57 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 03:40:57 | INFO     | main | Default roles seeded.
2026-06-05 03:40:57 | INFO     | main | Default roles seeded.
2026-06-05 03:40:57 | INFO     | main | Default roles seeded.
2026-06-05 03:40:57 | INFO     | main | Default roles seeded.
2026-06-05 03:55:25 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 03:55:26 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 03:55:26 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 03:55:26 | INFO     | main | Default roles seeded.
2026-06-05 03:55:26 | INFO     | main | Default roles seeded.
2026-06-05 03:55:26 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 03:55:26 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 03:55:26 | INFO     | main | Default roles seeded.
2026-06-05 03:55:26 | INFO     | main | Default roles seeded.
2026-06-05 04:12:25 | INFO     | main | Shutdown complete.
2026-06-05 04:12:25 | INFO     | main | Shutdown complete.
2026-06-05 04:12:25 | INFO     | main | Shutdown complete.
2026-06-05 04:12:25 | INFO     | main | Shutdown complete.
2026-06-05 04:12:29 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:12:30 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 04:12:30 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 04:12:30 | INFO     | main | Default roles seeded.
2026-06-05 04:12:30 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 04:12:30 | INFO     | main | Default roles seeded.
2026-06-05 04:12:30 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 04:12:30 | INFO     | main | Default roles seeded.
2026-06-05 04:12:30 | INFO     | main | Default roles seeded.
2026-06-05 04:26:25 | INFO     | main | Shutdown complete.
2026-06-05 04:26:25 | INFO     | main | Shutdown complete.
2026-06-05 04:26:25 | INFO     | main | Shutdown complete.
2026-06-05 04:26:25 | INFO     | main | Shutdown complete.
2026-06-05 04:26:30 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:26:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:26:34 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:26:36 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:26:38 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:26:41 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:26:43 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:26:45 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:26:48 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:26:50 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:26:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:26:55 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:26:57 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:27:00 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:27:03 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:27:05 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:27:08 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:27:10 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:27:13 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:27:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:27:18 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:27:20 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:27:23 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:27:25 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:27:27 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:27:29 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:27:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:27:34 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:27:37 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:27:39 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:27:42 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:27:45 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:27:48 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:27:51 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:27:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:27:55 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:27:58 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:28:00 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:28:03 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:28:05 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:28:08 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:28:10 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:28:12 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:28:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:28:18 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:28:20 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:28:23 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:28:25 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:28:28 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:28:30 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:28:33 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:28:35 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:28:38 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:28:40 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:28:43 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:28:45 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:28:48 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:28:50 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:28:52 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:28:55 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:28:57 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:28:59 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:29:02 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:29:04 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:29:07 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:29:09 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:29:12 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:29:14 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:29:17 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:29:20 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:29:22 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:29:24 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:29:27 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:29:29 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:29:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:29:34 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:29:37 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:29:39 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:29:41 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:29:44 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:29:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:29:48 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:29:51 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:29:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:29:56 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:29:58 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:30:01 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:30:03 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:30:06 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:30:09 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:30:12 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:30:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:30:18 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:30:21 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:30:24 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:30:26 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:30:29 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:30:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:30:34 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:30:37 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:30:39 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:30:42 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:30:45 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:30:47 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:30:50 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:30:52 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:30:55 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:30:58 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:31:00 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:31:03 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:31:05 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:31:08 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:31:11 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:31:13 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:31:16 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:31:19 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:31:21 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:31:24 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:31:26 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:31:29 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:31:31 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:31:33 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:31:36 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:31:39 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:31:41 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:31:44 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:31:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:31:49 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:31:51 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:31:54 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:31:56 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:31:58 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:32:01 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:32:03 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:32:05 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:32:08 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:32:11 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:32:13 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:32:16 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:32:16 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 04:32:16 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 04:32:16 | INFO     | main | Default roles seeded.
2026-06-05 04:32:16 | INFO     | main | Default roles seeded.
2026-06-05 04:32:16 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 04:32:16 | INFO     | main | Default roles seeded.
2026-06-05 04:32:16 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 04:32:16 | INFO     | main | Default roles seeded.
2026-06-05 04:32:25 | INFO     | main | Shutdown complete.
2026-06-05 04:32:25 | INFO     | main | Shutdown complete.
2026-06-05 04:32:25 | INFO     | main | Shutdown complete.
2026-06-05 04:32:25 | INFO     | main | Shutdown complete.
2026-06-05 04:32:30 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-05 04:32:30 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 04:32:30 | INFO     | main | Default roles seeded.
2026-06-05 04:32:30 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 04:32:30 | INFO     | main | Default roles seeded.
2026-06-05 04:32:30 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 04:32:30 | INFO     | main | Default roles seeded.
2026-06-05 04:32:30 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-05 04:32:30 | INFO     | main | Default roles seeded.
2026-06-05 05:59:11 | ERROR    | main | [b50e5fba] POST /api/v1/items — IntegrityError: (psycopg2.errors.NotNullViolation) null value in column "category_id" violates not-null constraint
DETAIL:  Failing row contains (Coke, null, null, general, null, 400.00, 0, 0, 0, t, null, null, null, 26073978-fdb8-4988-b085-d54dbc012195, 2026-06-05 05:59:11.085411-04, 2026-06-05 05:59:11.085411-04, f, 684cf178-7499-4b6d-b093-0e30b56b2877).

[SQL: INSERT INTO items (name, sku, "desc", dept, c_price, s_price, initial_stock, in_stock, disc, status, attributes, photos, category_id, user_id, id, deleted) VALUES (%(name)s, %(sku)s, %(desc)s, %(dept)s, %(c_price)s, %(s_price)s, %(initial_stock)s, %(in_stock)s, %(disc)s, %(status)s, %(attributes)s::JSON, %(photos)s::JSON, %(category_id)s::UUID, %(user_id)s::UUID, %(id)s::UUID, %(deleted)s) RETURNING items.created_at, items.updated_at]
[parameters: {'name': 'Coke', 'sku': None, 'desc': None, 'dept': 'general', 'c_price': None, 's_price': 400.0, 'initial_stock': 0, 'in_stock': 0, 'disc': 0, 'status': True, 'attributes': 'null', 'photos': 'null', 'category_id': None, 'user_id': UUID('684cf178-7499-4b6d-b093-0e30b56b2877'), 'id': UUID('26073978-fdb8-4988-b085-d54dbc012195'), 'deleted': False}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-05 05:59:11 | ERROR    | main | Traceback (most recent call last):
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        cursor, str_statement, effective_parameters, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/default.py", line 941, in do_execute
    cursor.execute(statement, parameters)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
psycopg2.errors.NotNullViolation: null value in column "category_id" violates not-null constraint
DETAIL:  Failing row contains (Coke, null, null, general, null, 400.00, 0, 0, 0, t, null, null, null, 26073978-fdb8-4988-b085-d54dbc012195, 2026-06-05 05:59:11.085411-04, 2026-06-05 05:59:11.085411-04, f, 684cf178-7499-4b6d-b093-0e30b56b2877).


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/errors.py", line 165, in __call__
    await self.app(scope, receive, _send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/gzip.py", line 20, in __call__
    await responder(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/gzip.py", line 39, in __call__
    await self.app(scope, receive, self.send_with_gzip)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/cors.py", line 93, in __call__
    await self.simple_response(scope, receive, send, request_headers=headers)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/cors.py", line 144, in simple_response
    await self.app(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app
    raise exc
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app
    await app(scope, receive, sender)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 715, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 735, in app
    await route.handle(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 288, in handle
    await self.app(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 76, in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app
    raise exc
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app
    await app(scope, receive, sender)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 73, in app
    response = await f(request)
               ^^^^^^^^^^^^^^^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/fastapi/routing.py", line 301, in app
    raw_response = await run_endpoint_function(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<3 lines>...
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
    return await dependant.call(**values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/simpdinr/inventory-api.simplylovely.ng/app/api/v1/items.py", line 37, in create_item
    item = inventory_service.create_item(db, data=payload, user_id=current_user.id)
  File "/home/simpdinr/inventory-api.simplylovely.ng/app/services/inventory_service.py", line 231, in create_item
    db.flush()
    ~~~~~~~~^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 4352, in flush
    self._flush(objects)
    ~~~~~~~~~~~^^^^^^^^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 4487, in _flush
    with util.safe_reraise():
         ~~~~~~~~~~~~~~~~~^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 4448, in _flush
    flush_context.execute()
    ~~~~~~~~~~~~~~~~~~~~~^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/unitofwork.py", line 466, in execute
    rec.execute(self)
    ~~~~~~~~~~~^^^^^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/unitofwork.py", line 642, in execute
    util.preloaded.orm_persistence.save_obj(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        self.mapper,
        ^^^^^^^^^^^^
        uow.states_for_mapper_hierarchy(self.mapper, False, False),
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        uow,
        ^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/persistence.py", line 93, in save_obj
    _emit_insert_statements(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        base_mapper,
        ^^^^^^^^^^^^
    ...<3 lines>...
        insert,
        ^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/persistence.py", line 1233, in _emit_insert_statements
    result = connection.execute(
        statement,
        params,
        execution_options=execution_options,
    )
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1418, in execute
    return meth(
        self,
        distilled_parameters,
        execution_options or NO_OPTIONS,
    )
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/sql/elements.py", line 515, in _execute_on_connection
    return connection._execute_clauseelement(
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        self, distilled_params, execution_options
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1640, in _execute_clauseelement
    ret = self._execute_context(
        dialect,
    ...<8 lines>...
        cache_hit=cache_hit,
    )
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
    return self._exec_single_context(
           ~~~~~~~~~~~~~~~~~~~~~~~~~^
        dialect, context, statement, parameters
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
    self._handle_dbapi_exception(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        e, str_statement, effective_parameters, cursor, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        cursor, str_statement, effective_parameters, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/default.py", line 941, in do_execute
    cursor.execute(statement, parameters)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
sqlalchemy.exc.IntegrityError: (psycopg2.errors.NotNullViolation) null value in column "category_id" violates not-null constraint
DETAIL:  Failing row contains (Coke, null, null, general, null, 400.00, 0, 0, 0, t, null, null, null, 26073978-fdb8-4988-b085-d54dbc012195, 2026-06-05 05:59:11.085411-04, 2026-06-05 05:59:11.085411-04, f, 684cf178-7499-4b6d-b093-0e30b56b2877).

[SQL: INSERT INTO items (name, sku, "desc", dept, c_price, s_price, initial_stock, in_stock, disc, status, attributes, photos, category_id, user_id, id, deleted) VALUES (%(name)s, %(sku)s, %(desc)s, %(dept)s, %(c_price)s, %(s_price)s, %(initial_stock)s, %(in_stock)s, %(disc)s, %(status)s, %(attributes)s::JSON, %(photos)s::JSON, %(category_id)s::UUID, %(user_id)s::UUID, %(id)s::UUID, %(deleted)s) RETURNING items.created_at, items.updated_at]
[parameters: {'name': 'Coke', 'sku': None, 'desc': None, 'dept': 'general', 'c_price': None, 's_price': 400.0, 'initial_stock': 0, 'in_stock': 0, 'disc': 0, 'status': True, 'attributes': 'null', 'photos': 'null', 'category_id': None, 'user_id': UUID('684cf178-7499-4b6d-b093-0e30b56b2877'), 'id': UUID('26073978-fdb8-4988-b085-d54dbc012195'), 'deleted': False}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)

2026-06-05 05:59:14 | ERROR    | main | [d20b9885] POST /api/v1/items — IntegrityError: (psycopg2.errors.NotNullViolation) null value in column "category_id" violates not-null constraint
DETAIL:  Failing row contains (Coke, null, null, general, null, 400.00, 0, 0, 0, t, null, null, null, 3b93926c-a3c2-41c4-88b9-77e8b6aa79c3, 2026-06-05 05:59:14.312017-04, 2026-06-05 05:59:14.312017-04, f, 684cf178-7499-4b6d-b093-0e30b56b2877).

[SQL: INSERT INTO items (name, sku, "desc", dept, c_price, s_price, initial_stock, in_stock, disc, status, attributes, photos, category_id, user_id, id, deleted) VALUES (%(name)s, %(sku)s, %(desc)s, %(dept)s, %(c_price)s, %(s_price)s, %(initial_stock)s, %(in_stock)s, %(disc)s, %(status)s, %(attributes)s::JSON, %(photos)s::JSON, %(category_id)s::UUID, %(user_id)s::UUID, %(id)s::UUID, %(deleted)s) RETURNING items.created_at, items.updated_at]
[parameters: {'name': 'Coke', 'sku': None, 'desc': None, 'dept': 'general', 'c_price': None, 's_price': 400.0, 'initial_stock': 0, 'in_stock': 0, 'disc': 0, 'status': True, 'attributes': 'null', 'photos': 'null', 'category_id': None, 'user_id': UUID('684cf178-7499-4b6d-b093-0e30b56b2877'), 'id': UUID('3b93926c-a3c2-41c4-88b9-77e8b6aa79c3'), 'deleted': False}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-05 05:59:14 | ERROR    | main | Traceback (most recent call last):
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        cursor, str_statement, effective_parameters, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/default.py", line 941, in do_execute
    cursor.execute(statement, parameters)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
psycopg2.errors.NotNullViolation: null value in column "category_id" violates not-null constraint
DETAIL:  Failing row contains (Coke, null, null, general, null, 400.00, 0, 0, 0, t, null, null, null, 3b93926c-a3c2-41c4-88b9-77e8b6aa79c3, 2026-06-05 05:59:14.312017-04, 2026-06-05 05:59:14.312017-04, f, 684cf178-7499-4b6d-b093-0e30b56b2877).


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/errors.py", line 165, in __call__
    await self.app(scope, receive, _send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/gzip.py", line 20, in __call__
    await responder(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/gzip.py", line 39, in __call__
    await self.app(scope, receive, self.send_with_gzip)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/cors.py", line 93, in __call__
    await self.simple_response(scope, receive, send, request_headers=headers)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/cors.py", line 144, in simple_response
    await self.app(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app
    raise exc
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app
    await app(scope, receive, sender)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 715, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 735, in app
    await route.handle(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 288, in handle
    await self.app(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 76, in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app
    raise exc
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app
    await app(scope, receive, sender)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 73, in app
    response = await f(request)
               ^^^^^^^^^^^^^^^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/fastapi/routing.py", line 301, in app
    raw_response = await run_endpoint_function(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<3 lines>...
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
    return await dependant.call(**values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/simpdinr/inventory-api.simplylovely.ng/app/api/v1/items.py", line 37, in create_item
    item = inventory_service.create_item(db, data=payload, user_id=current_user.id)
  File "/home/simpdinr/inventory-api.simplylovely.ng/app/services/inventory_service.py", line 231, in create_item
    db.flush()
    ~~~~~~~~^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 4352, in flush
    self._flush(objects)
    ~~~~~~~~~~~^^^^^^^^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 4487, in _flush
    with util.safe_reraise():
         ~~~~~~~~~~~~~~~~~^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 4448, in _flush
    flush_context.execute()
    ~~~~~~~~~~~~~~~~~~~~~^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/unitofwork.py", line 466, in execute
    rec.execute(self)
    ~~~~~~~~~~~^^^^^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/unitofwork.py", line 642, in execute
    util.preloaded.orm_persistence.save_obj(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        self.mapper,
        ^^^^^^^^^^^^
        uow.states_for_mapper_hierarchy(self.mapper, False, False),
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        uow,
        ^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/persistence.py", line 93, in save_obj
    _emit_insert_statements(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        base_mapper,
        ^^^^^^^^^^^^
    ...<3 lines>...
        insert,
        ^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/persistence.py", line 1233, in _emit_insert_statements
    result = connection.execute(
        statement,
        params,
        execution_options=execution_options,
    )
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1418, in execute
    return meth(
        self,
        distilled_parameters,
        execution_options or NO_OPTIONS,
    )
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/sql/elements.py", line 515, in _execute_on_connection
    return connection._execute_clauseelement(
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        self, distilled_params, execution_options
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1640, in _execute_clauseelement
    ret = self._execute_context(
        dialect,
    ...<8 lines>...
        cache_hit=cache_hit,
    )
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
    return self._exec_single_context(
           ~~~~~~~~~~~~~~~~~~~~~~~~~^
        dialect, context, statement, parameters
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
    self._handle_dbapi_exception(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        e, str_statement, effective_parameters, cursor, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        cursor, str_statement, effective_parameters, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/default.py", line 941, in do_execute
    cursor.execute(statement, parameters)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
sqlalchemy.exc.IntegrityError: (psycopg2.errors.NotNullViolation) null value in column "category_id" violates not-null constraint
DETAIL:  Failing row contains (Coke, null, null, general, null, 400.00, 0, 0, 0, t, null, null, null, 3b93926c-a3c2-41c4-88b9-77e8b6aa79c3, 2026-06-05 05:59:14.312017-04, 2026-06-05 05:59:14.312017-04, f, 684cf178-7499-4b6d-b093-0e30b56b2877).

[SQL: INSERT INTO items (name, sku, "desc", dept, c_price, s_price, initial_stock, in_stock, disc, status, attributes, photos, category_id, user_id, id, deleted) VALUES (%(name)s, %(sku)s, %(desc)s, %(dept)s, %(c_price)s, %(s_price)s, %(initial_stock)s, %(in_stock)s, %(disc)s, %(status)s, %(attributes)s::JSON, %(photos)s::JSON, %(category_id)s::UUID, %(user_id)s::UUID, %(id)s::UUID, %(deleted)s) RETURNING items.created_at, items.updated_at]
[parameters: {'name': 'Coke', 'sku': None, 'desc': None, 'dept': 'general', 'c_price': None, 's_price': 400.0, 'initial_stock': 0, 'in_stock': 0, 'disc': 0, 'status': True, 'attributes': 'null', 'photos': 'null', 'category_id': None, 'user_id': UUID('684cf178-7499-4b6d-b093-0e30b56b2877'), 'id': UUID('3b93926c-a3c2-41c4-88b9-77e8b6aa79c3'), 'deleted': False}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)

2026-06-05 06:24:06 | ERROR    | main | [46dd647e] POST /api/v1/items — IntegrityError: (psycopg2.errors.NotNullViolation) null value in column "category_id" violates not-null constraint
DETAIL:  Failing row contains (Coke, null, null, general, null, 400.00, 0, 0, 0, t, null, null, null, cb605829-0109-4d33-bad4-10ac468026ca, 2026-06-05 06:24:06.572572-04, 2026-06-05 06:24:06.572572-04, f, 684cf178-7499-4b6d-b093-0e30b56b2877).

[SQL: INSERT INTO items (name, sku, "desc", dept, c_price, s_price, initial_stock, in_stock, disc, status, attributes, photos, category_id, user_id, id, deleted) VALUES (%(name)s, %(sku)s, %(desc)s, %(dept)s, %(c_price)s, %(s_price)s, %(initial_stock)s, %(in_stock)s, %(disc)s, %(status)s, %(attributes)s::JSON, %(photos)s::JSON, %(category_id)s::UUID, %(user_id)s::UUID, %(id)s::UUID, %(deleted)s) RETURNING items.created_at, items.updated_at]
[parameters: {'name': 'Coke', 'sku': None, 'desc': None, 'dept': 'general', 'c_price': None, 's_price': 400.0, 'initial_stock': 0, 'in_stock': 0, 'disc': 0, 'status': True, 'attributes': 'null', 'photos': 'null', 'category_id': None, 'user_id': UUID('684cf178-7499-4b6d-b093-0e30b56b2877'), 'id': UUID('cb605829-0109-4d33-bad4-10ac468026ca'), 'deleted': False}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-05 06:24:06 | ERROR    | main | Traceback (most recent call last):
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        cursor, str_statement, effective_parameters, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/default.py", line 941, in do_execute
    cursor.execute(statement, parameters)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
psycopg2.errors.NotNullViolation: null value in column "category_id" violates not-null constraint
DETAIL:  Failing row contains (Coke, null, null, general, null, 400.00, 0, 0, 0, t, null, null, null, cb605829-0109-4d33-bad4-10ac468026ca, 2026-06-05 06:24:06.572572-04, 2026-06-05 06:24:06.572572-04, f, 684cf178-7499-4b6d-b093-0e30b56b2877).


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/errors.py", line 165, in __call__
    await self.app(scope, receive, _send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/gzip.py", line 20, in __call__
    await responder(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/gzip.py", line 39, in __call__
    await self.app(scope, receive, self.send_with_gzip)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/cors.py", line 93, in __call__
    await self.simple_response(scope, receive, send, request_headers=headers)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/cors.py", line 144, in simple_response
    await self.app(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app
    raise exc
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app
    await app(scope, receive, sender)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 715, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 735, in app
    await route.handle(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 288, in handle
    await self.app(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 76, in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app
    raise exc
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app
    await app(scope, receive, sender)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 73, in app
    response = await f(request)
               ^^^^^^^^^^^^^^^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/fastapi/routing.py", line 301, in app
    raw_response = await run_endpoint_function(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<3 lines>...
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
    return await dependant.call(**values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/simpdinr/inventory-api.simplylovely.ng/app/api/v1/items.py", line 37, in create_item
    item = inventory_service.create_item(db, data=payload, user_id=current_user.id)
  File "/home/simpdinr/inventory-api.simplylovely.ng/app/services/inventory_service.py", line 231, in create_item
    db.flush()
    ~~~~~~~~^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 4352, in flush
    self._flush(objects)
    ~~~~~~~~~~~^^^^^^^^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 4487, in _flush
    with util.safe_reraise():
         ~~~~~~~~~~~~~~~~~^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 4448, in _flush
    flush_context.execute()
    ~~~~~~~~~~~~~~~~~~~~~^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/unitofwork.py", line 466, in execute
    rec.execute(self)
    ~~~~~~~~~~~^^^^^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/unitofwork.py", line 642, in execute
    util.preloaded.orm_persistence.save_obj(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        self.mapper,
        ^^^^^^^^^^^^
        uow.states_for_mapper_hierarchy(self.mapper, False, False),
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        uow,
        ^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/persistence.py", line 93, in save_obj
    _emit_insert_statements(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        base_mapper,
        ^^^^^^^^^^^^
    ...<3 lines>...
        insert,
        ^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/persistence.py", line 1233, in _emit_insert_statements
    result = connection.execute(
        statement,
        params,
        execution_options=execution_options,
    )
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1418, in execute
    return meth(
        self,
        distilled_parameters,
        execution_options or NO_OPTIONS,
    )
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/sql/elements.py", line 515, in _execute_on_connection
    return connection._execute_clauseelement(
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        self, distilled_params, execution_options
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1640, in _execute_clauseelement
    ret = self._execute_context(
        dialect,
    ...<8 lines>...
        cache_hit=cache_hit,
    )
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
    return self._exec_single_context(
           ~~~~~~~~~~~~~~~~~~~~~~~~~^
        dialect, context, statement, parameters
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
    self._handle_dbapi_exception(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        e, str_statement, effective_parameters, cursor, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        cursor, str_statement, effective_parameters, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/default.py", line 941, in do_execute
    cursor.execute(statement, parameters)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
sqlalchemy.exc.IntegrityError: (psycopg2.errors.NotNullViolation) null value in column "category_id" violates not-null constraint
DETAIL:  Failing row contains (Coke, null, null, general, null, 400.00, 0, 0, 0, t, null, null, null, cb605829-0109-4d33-bad4-10ac468026ca, 2026-06-05 06:24:06.572572-04, 2026-06-05 06:24:06.572572-04, f, 684cf178-7499-4b6d-b093-0e30b56b2877).

[SQL: INSERT INTO items (name, sku, "desc", dept, c_price, s_price, initial_stock, in_stock, disc, status, attributes, photos, category_id, user_id, id, deleted) VALUES (%(name)s, %(sku)s, %(desc)s, %(dept)s, %(c_price)s, %(s_price)s, %(initial_stock)s, %(in_stock)s, %(disc)s, %(status)s, %(attributes)s::JSON, %(photos)s::JSON, %(category_id)s::UUID, %(user_id)s::UUID, %(id)s::UUID, %(deleted)s) RETURNING items.created_at, items.updated_at]
[parameters: {'name': 'Coke', 'sku': None, 'desc': None, 'dept': 'general', 'c_price': None, 's_price': 400.0, 'initial_stock': 0, 'in_stock': 0, 'disc': 0, 'status': True, 'attributes': 'null', 'photos': 'null', 'category_id': None, 'user_id': UUID('684cf178-7499-4b6d-b093-0e30b56b2877'), 'id': UUID('cb605829-0109-4d33-bad4-10ac468026ca'), 'deleted': False}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)

2026-06-05 06:24:36 | ERROR    | main | [2707cf0c] POST /api/v1/items — IntegrityError: (psycopg2.errors.NotNullViolation) null value in column "category_id" violates not-null constraint
DETAIL:  Failing row contains (ddddd, null, null, general, null, 4444.00, 0, 0, 0, t, null, null, null, 4f4db699-0b10-4765-bcc2-306527f7c39f, 2026-06-05 06:24:36.735544-04, 2026-06-05 06:24:36.735544-04, f, 684cf178-7499-4b6d-b093-0e30b56b2877).

[SQL: INSERT INTO items (name, sku, "desc", dept, c_price, s_price, initial_stock, in_stock, disc, status, attributes, photos, category_id, user_id, id, deleted) VALUES (%(name)s, %(sku)s, %(desc)s, %(dept)s, %(c_price)s, %(s_price)s, %(initial_stock)s, %(in_stock)s, %(disc)s, %(status)s, %(attributes)s::JSON, %(photos)s::JSON, %(category_id)s::UUID, %(user_id)s::UUID, %(id)s::UUID, %(deleted)s) RETURNING items.created_at, items.updated_at]
[parameters: {'name': 'ddddd', 'sku': None, 'desc': None, 'dept': 'general', 'c_price': None, 's_price': 4444.0, 'initial_stock': 0, 'in_stock': 0, 'disc': 0, 'status': True, 'attributes': 'null', 'photos': 'null', 'category_id': None, 'user_id': UUID('684cf178-7499-4b6d-b093-0e30b56b2877'), 'id': UUID('4f4db699-0b10-4765-bcc2-306527f7c39f'), 'deleted': False}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-05 06:24:36 | ERROR    | main | Traceback (most recent call last):
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        cursor, str_statement, effective_parameters, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/default.py", line 941, in do_execute
    cursor.execute(statement, parameters)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
psycopg2.errors.NotNullViolation: null value in column "category_id" violates not-null constraint
DETAIL:  Failing row contains (ddddd, null, null, general, null, 4444.00, 0, 0, 0, t, null, null, null, 4f4db699-0b10-4765-bcc2-306527f7c39f, 2026-06-05 06:24:36.735544-04, 2026-06-05 06:24:36.735544-04, f, 684cf178-7499-4b6d-b093-0e30b56b2877).


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/errors.py", line 165, in __call__
    await self.app(scope, receive, _send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/gzip.py", line 20, in __call__
    await responder(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/gzip.py", line 39, in __call__
    await self.app(scope, receive, self.send_with_gzip)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/cors.py", line 93, in __call__
    await self.simple_response(scope, receive, send, request_headers=headers)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/cors.py", line 144, in simple_response
    await self.app(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app
    raise exc
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app
    await app(scope, receive, sender)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 715, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 735, in app
    await route.handle(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 288, in handle
    await self.app(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 76, in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app
    raise exc
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app
    await app(scope, receive, sender)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 73, in app
    response = await f(request)
               ^^^^^^^^^^^^^^^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/fastapi/routing.py", line 301, in app
    raw_response = await run_endpoint_function(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<3 lines>...
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
    return await dependant.call(**values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/simpdinr/inventory-api.simplylovely.ng/app/api/v1/items.py", line 37, in create_item
    item = inventory_service.create_item(db, data=payload, user_id=current_user.id)
  File "/home/simpdinr/inventory-api.simplylovely.ng/app/services/inventory_service.py", line 231, in create_item
    db.flush()
    ~~~~~~~~^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 4352, in flush
    self._flush(objects)
    ~~~~~~~~~~~^^^^^^^^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 4487, in _flush
    with util.safe_reraise():
         ~~~~~~~~~~~~~~~~~^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 4448, in _flush
    flush_context.execute()
    ~~~~~~~~~~~~~~~~~~~~~^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/unitofwork.py", line 466, in execute
    rec.execute(self)
    ~~~~~~~~~~~^^^^^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/unitofwork.py", line 642, in execute
    util.preloaded.orm_persistence.save_obj(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        self.mapper,
        ^^^^^^^^^^^^
        uow.states_for_mapper_hierarchy(self.mapper, False, False),
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        uow,
        ^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/persistence.py", line 93, in save_obj
    _emit_insert_statements(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        base_mapper,
        ^^^^^^^^^^^^
    ...<3 lines>...
        insert,
        ^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/persistence.py", line 1233, in _emit_insert_statements
    result = connection.execute(
        statement,
        params,
        execution_options=execution_options,
    )
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1418, in execute
    return meth(
        self,
        distilled_parameters,
        execution_options or NO_OPTIONS,
    )
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/sql/elements.py", line 515, in _execute_on_connection
    return connection._execute_clauseelement(
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        self, distilled_params, execution_options
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1640, in _execute_clauseelement
    ret = self._execute_context(
        dialect,
    ...<8 lines>...
        cache_hit=cache_hit,
    )
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
    return self._exec_single_context(
           ~~~~~~~~~~~~~~~~~~~~~~~~~^
        dialect, context, statement, parameters
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
    self._handle_dbapi_exception(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        e, str_statement, effective_parameters, cursor, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        cursor, str_statement, effective_parameters, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/default.py", line 941, in do_execute
    cursor.execute(statement, parameters)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
sqlalchemy.exc.IntegrityError: (psycopg2.errors.NotNullViolation) null value in column "category_id" violates not-null constraint
DETAIL:  Failing row contains (ddddd, null, null, general, null, 4444.00, 0, 0, 0, t, null, null, null, 4f4db699-0b10-4765-bcc2-306527f7c39f, 2026-06-05 06:24:36.735544-04, 2026-06-05 06:24:36.735544-04, f, 684cf178-7499-4b6d-b093-0e30b56b2877).

[SQL: INSERT INTO items (name, sku, "desc", dept, c_price, s_price, initial_stock, in_stock, disc, status, attributes, photos, category_id, user_id, id, deleted) VALUES (%(name)s, %(sku)s, %(desc)s, %(dept)s, %(c_price)s, %(s_price)s, %(initial_stock)s, %(in_stock)s, %(disc)s, %(status)s, %(attributes)s::JSON, %(photos)s::JSON, %(category_id)s::UUID, %(user_id)s::UUID, %(id)s::UUID, %(deleted)s) RETURNING items.created_at, items.updated_at]
[parameters: {'name': 'ddddd', 'sku': None, 'desc': None, 'dept': 'general', 'c_price': None, 's_price': 4444.0, 'initial_stock': 0, 'in_stock': 0, 'disc': 0, 'status': True, 'attributes': 'null', 'photos': 'null', 'category_id': None, 'user_id': UUID('684cf178-7499-4b6d-b093-0e30b56b2877'), 'id': UUID('4f4db699-0b10-4765-bcc2-306527f7c39f'), 'deleted': False}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)

2026-06-05 06:26:34 | ERROR    | main | [075eab13] POST /api/v1/items — IntegrityError: (psycopg2.errors.NotNullViolation) null value in column "category_id" violates not-null constraint
DETAIL:  Failing row contains (Coke, null, null, general, null, 500.00, 0, 0, 0, t, null, null, null, 17de8d32-3953-4d0f-abeb-ad78737c843d, 2026-06-05 06:26:34.133709-04, 2026-06-05 06:26:34.133709-04, f, 684cf178-7499-4b6d-b093-0e30b56b2877).

[SQL: INSERT INTO items (name, sku, "desc", dept, c_price, s_price, initial_stock, in_stock, disc, status, attributes, photos, category_id, user_id, id, deleted) VALUES (%(name)s, %(sku)s, %(desc)s, %(dept)s, %(c_price)s, %(s_price)s, %(initial_stock)s, %(in_stock)s, %(disc)s, %(status)s, %(attributes)s::JSON, %(photos)s::JSON, %(category_id)s::UUID, %(user_id)s::UUID, %(id)s::UUID, %(deleted)s) RETURNING items.created_at, items.updated_at]
[parameters: {'name': 'Coke', 'sku': None, 'desc': None, 'dept': 'general', 'c_price': None, 's_price': 500.0, 'initial_stock': 0, 'in_stock': 0, 'disc': 0, 'status': True, 'attributes': 'null', 'photos': 'null', 'category_id': None, 'user_id': UUID('684cf178-7499-4b6d-b093-0e30b56b2877'), 'id': UUID('17de8d32-3953-4d0f-abeb-ad78737c843d'), 'deleted': False}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-05 06:26:34 | ERROR    | main | Traceback (most recent call last):
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        cursor, str_statement, effective_parameters, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/default.py", line 941, in do_execute
    cursor.execute(statement, parameters)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
psycopg2.errors.NotNullViolation: null value in column "category_id" violates not-null constraint
DETAIL:  Failing row contains (Coke, null, null, general, null, 500.00, 0, 0, 0, t, null, null, null, 17de8d32-3953-4d0f-abeb-ad78737c843d, 2026-06-05 06:26:34.133709-04, 2026-06-05 06:26:34.133709-04, f, 684cf178-7499-4b6d-b093-0e30b56b2877).


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/errors.py", line 165, in __call__
    await self.app(scope, receive, _send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/gzip.py", line 20, in __call__
    await responder(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/gzip.py", line 39, in __call__
    await self.app(scope, receive, self.send_with_gzip)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/cors.py", line 93, in __call__
    await self.simple_response(scope, receive, send, request_headers=headers)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/cors.py", line 144, in simple_response
    await self.app(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app
    raise exc
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app
    await app(scope, receive, sender)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 715, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 735, in app
    await route.handle(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 288, in handle
    await self.app(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 76, in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app
    raise exc
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app
    await app(scope, receive, sender)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 73, in app
    response = await f(request)
               ^^^^^^^^^^^^^^^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/fastapi/routing.py", line 301, in app
    raw_response = await run_endpoint_function(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<3 lines>...
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
    return await dependant.call(**values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/simpdinr/inventory-api.simplylovely.ng/app/api/v1/items.py", line 37, in create_item
    item = inventory_service.create_item(db, data=payload, user_id=current_user.id)
  File "/home/simpdinr/inventory-api.simplylovely.ng/app/services/inventory_service.py", line 231, in create_item
    db.flush()
    ~~~~~~~~^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 4352, in flush
    self._flush(objects)
    ~~~~~~~~~~~^^^^^^^^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 4487, in _flush
    with util.safe_reraise():
         ~~~~~~~~~~~~~~~~~^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 4448, in _flush
    flush_context.execute()
    ~~~~~~~~~~~~~~~~~~~~~^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/unitofwork.py", line 466, in execute
    rec.execute(self)
    ~~~~~~~~~~~^^^^^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/unitofwork.py", line 642, in execute
    util.preloaded.orm_persistence.save_obj(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        self.mapper,
        ^^^^^^^^^^^^
        uow.states_for_mapper_hierarchy(self.mapper, False, False),
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        uow,
        ^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/persistence.py", line 93, in save_obj
    _emit_insert_statements(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        base_mapper,
        ^^^^^^^^^^^^
    ...<3 lines>...
        insert,
        ^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/persistence.py", line 1233, in _emit_insert_statements
    result = connection.execute(
        statement,
        params,
        execution_options=execution_options,
    )
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1418, in execute
    return meth(
        self,
        distilled_parameters,
        execution_options or NO_OPTIONS,
    )
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/sql/elements.py", line 515, in _execute_on_connection
    return connection._execute_clauseelement(
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        self, distilled_params, execution_options
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1640, in _execute_clauseelement
    ret = self._execute_context(
        dialect,
    ...<8 lines>...
        cache_hit=cache_hit,
    )
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
    return self._exec_single_context(
           ~~~~~~~~~~~~~~~~~~~~~~~~~^
        dialect, context, statement, parameters
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
    self._handle_dbapi_exception(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        e, str_statement, effective_parameters, cursor, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        cursor, str_statement, effective_parameters, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/default.py", line 941, in do_execute
    cursor.execute(statement, parameters)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
sqlalchemy.exc.IntegrityError: (psycopg2.errors.NotNullViolation) null value in column "category_id" violates not-null constraint
DETAIL:  Failing row contains (Coke, null, null, general, null, 500.00, 0, 0, 0, t, null, null, null, 17de8d32-3953-4d0f-abeb-ad78737c843d, 2026-06-05 06:26:34.133709-04, 2026-06-05 06:26:34.133709-04, f, 684cf178-7499-4b6d-b093-0e30b56b2877).

[SQL: INSERT INTO items (name, sku, "desc", dept, c_price, s_price, initial_stock, in_stock, disc, status, attributes, photos, category_id, user_id, id, deleted) VALUES (%(name)s, %(sku)s, %(desc)s, %(dept)s, %(c_price)s, %(s_price)s, %(initial_stock)s, %(in_stock)s, %(disc)s, %(status)s, %(attributes)s::JSON, %(photos)s::JSON, %(category_id)s::UUID, %(user_id)s::UUID, %(id)s::UUID, %(deleted)s) RETURNING items.created_at, items.updated_at]
[parameters: {'name': 'Coke', 'sku': None, 'desc': None, 'dept': 'general', 'c_price': None, 's_price': 500.0, 'initial_stock': 0, 'in_stock': 0, 'disc': 0, 'status': True, 'attributes': 'null', 'photos': 'null', 'category_id': None, 'user_id': UUID('684cf178-7499-4b6d-b093-0e30b56b2877'), 'id': UUID('17de8d32-3953-4d0f-abeb-ad78737c843d'), 'deleted': False}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)

2026-06-05 06:26:55 | ERROR    | main | [2a73a550] POST /api/v1/items — IntegrityError: (psycopg2.errors.NotNullViolation) null value in column "category_id" violates not-null constraint
DETAIL:  Failing row contains (Coke, null, null, general, null, 500.00, 0, 0, 0, t, null, null, null, 55d4298c-c92e-476a-af6c-a283bac9dc09, 2026-06-05 06:26:55.944477-04, 2026-06-05 06:26:55.944477-04, f, 684cf178-7499-4b6d-b093-0e30b56b2877).

[SQL: INSERT INTO items (name, sku, "desc", dept, c_price, s_price, initial_stock, in_stock, disc, status, attributes, photos, category_id, user_id, id, deleted) VALUES (%(name)s, %(sku)s, %(desc)s, %(dept)s, %(c_price)s, %(s_price)s, %(initial_stock)s, %(in_stock)s, %(disc)s, %(status)s, %(attributes)s::JSON, %(photos)s::JSON, %(category_id)s::UUID, %(user_id)s::UUID, %(id)s::UUID, %(deleted)s) RETURNING items.created_at, items.updated_at]
[parameters: {'name': 'Coke', 'sku': None, 'desc': None, 'dept': 'general', 'c_price': None, 's_price': 500.0, 'initial_stock': 0, 'in_stock': 0, 'disc': 0, 'status': True, 'attributes': 'null', 'photos': 'null', 'category_id': None, 'user_id': UUID('684cf178-7499-4b6d-b093-0e30b56b2877'), 'id': UUID('55d4298c-c92e-476a-af6c-a283bac9dc09'), 'deleted': False}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-05 06:26:55 | ERROR    | main | Traceback (most recent call last):
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        cursor, str_statement, effective_parameters, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/default.py", line 941, in do_execute
    cursor.execute(statement, parameters)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
psycopg2.errors.NotNullViolation: null value in column "category_id" violates not-null constraint
DETAIL:  Failing row contains (Coke, null, null, general, null, 500.00, 0, 0, 0, t, null, null, null, 55d4298c-c92e-476a-af6c-a283bac9dc09, 2026-06-05 06:26:55.944477-04, 2026-06-05 06:26:55.944477-04, f, 684cf178-7499-4b6d-b093-0e30b56b2877).


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/errors.py", line 165, in __call__
    await self.app(scope, receive, _send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/gzip.py", line 20, in __call__
    await responder(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/gzip.py", line 39, in __call__
    await self.app(scope, receive, self.send_with_gzip)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/cors.py", line 93, in __call__
    await self.simple_response(scope, receive, send, request_headers=headers)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/cors.py", line 144, in simple_response
    await self.app(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app
    raise exc
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app
    await app(scope, receive, sender)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 715, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 735, in app
    await route.handle(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 288, in handle
    await self.app(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 76, in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app
    raise exc
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app
    await app(scope, receive, sender)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 73, in app
    response = await f(request)
               ^^^^^^^^^^^^^^^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/fastapi/routing.py", line 301, in app
    raw_response = await run_endpoint_function(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<3 lines>...
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
    return await dependant.call(**values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/simpdinr/inventory-api.simplylovely.ng/app/api/v1/items.py", line 37, in create_item
    item = inventory_service.create_item(db, data=payload, user_id=current_user.id)
  File "/home/simpdinr/inventory-api.simplylovely.ng/app/services/inventory_service.py", line 231, in create_item
    db.flush()
    ~~~~~~~~^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 4352, in flush
    self._flush(objects)
    ~~~~~~~~~~~^^^^^^^^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 4487, in _flush
    with util.safe_reraise():
         ~~~~~~~~~~~~~~~~~^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 4448, in _flush
    flush_context.execute()
    ~~~~~~~~~~~~~~~~~~~~~^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/unitofwork.py", line 466, in execute
    rec.execute(self)
    ~~~~~~~~~~~^^^^^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/unitofwork.py", line 642, in execute
    util.preloaded.orm_persistence.save_obj(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        self.mapper,
        ^^^^^^^^^^^^
        uow.states_for_mapper_hierarchy(self.mapper, False, False),
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        uow,
        ^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/persistence.py", line 93, in save_obj
    _emit_insert_statements(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        base_mapper,
        ^^^^^^^^^^^^
    ...<3 lines>...
        insert,
        ^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/persistence.py", line 1233, in _emit_insert_statements
    result = connection.execute(
        statement,
        params,
        execution_options=execution_options,
    )
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1418, in execute
    return meth(
        self,
        distilled_parameters,
        execution_options or NO_OPTIONS,
    )
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/sql/elements.py", line 515, in _execute_on_connection
    return connection._execute_clauseelement(
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        self, distilled_params, execution_options
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1640, in _execute_clauseelement
    ret = self._execute_context(
        dialect,
    ...<8 lines>...
        cache_hit=cache_hit,
    )
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
    return self._exec_single_context(
           ~~~~~~~~~~~~~~~~~~~~~~~~~^
        dialect, context, statement, parameters
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
    self._handle_dbapi_exception(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        e, str_statement, effective_parameters, cursor, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        cursor, str_statement, effective_parameters, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/default.py", line 941, in do_execute
    cursor.execute(statement, parameters)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
sqlalchemy.exc.IntegrityError: (psycopg2.errors.NotNullViolation) null value in column "category_id" violates not-null constraint
DETAIL:  Failing row contains (Coke, null, null, general, null, 500.00, 0, 0, 0, t, null, null, null, 55d4298c-c92e-476a-af6c-a283bac9dc09, 2026-06-05 06:26:55.944477-04, 2026-06-05 06:26:55.944477-04, f, 684cf178-7499-4b6d-b093-0e30b56b2877).

[SQL: INSERT INTO items (name, sku, "desc", dept, c_price, s_price, initial_stock, in_stock, disc, status, attributes, photos, category_id, user_id, id, deleted) VALUES (%(name)s, %(sku)s, %(desc)s, %(dept)s, %(c_price)s, %(s_price)s, %(initial_stock)s, %(in_stock)s, %(disc)s, %(status)s, %(attributes)s::JSON, %(photos)s::JSON, %(category_id)s::UUID, %(user_id)s::UUID, %(id)s::UUID, %(deleted)s) RETURNING items.created_at, items.updated_at]
[parameters: {'name': 'Coke', 'sku': None, 'desc': None, 'dept': 'general', 'c_price': None, 's_price': 500.0, 'initial_stock': 0, 'in_stock': 0, 'disc': 0, 'status': True, 'attributes': 'null', 'photos': 'null', 'category_id': None, 'user_id': UUID('684cf178-7499-4b6d-b093-0e30b56b2877'), 'id': UUID('55d4298c-c92e-476a-af6c-a283bac9dc09'), 'deleted': False}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)

2026-06-05 06:37:10 | ERROR    | main | [3cc44d3a] POST /api/v1/items — IntegrityError: (psycopg2.errors.NotNullViolation) null value in column "category_id" violates not-null constraint
DETAIL:  Failing row contains (Fanta, null, null, general, null, 500.00, 0, 0, 0, t, null, null, null, d04612ec-2a58-47b8-b299-d95c0363314b, 2026-06-05 06:37:10.439841-04, 2026-06-05 06:37:10.439841-04, f, 684cf178-7499-4b6d-b093-0e30b56b2877).

[SQL: INSERT INTO items (name, sku, "desc", dept, c_price, s_price, initial_stock, in_stock, disc, status, attributes, photos, category_id, user_id, id, deleted) VALUES (%(name)s, %(sku)s, %(desc)s, %(dept)s, %(c_price)s, %(s_price)s, %(initial_stock)s, %(in_stock)s, %(disc)s, %(status)s, %(attributes)s::JSON, %(photos)s::JSON, %(category_id)s::UUID, %(user_id)s::UUID, %(id)s::UUID, %(deleted)s) RETURNING items.created_at, items.updated_at]
[parameters: {'name': 'Fanta', 'sku': None, 'desc': None, 'dept': 'general', 'c_price': None, 's_price': 500.0, 'initial_stock': 0, 'in_stock': 0, 'disc': 0, 'status': True, 'attributes': 'null', 'photos': 'null', 'category_id': None, 'user_id': UUID('684cf178-7499-4b6d-b093-0e30b56b2877'), 'id': UUID('d04612ec-2a58-47b8-b299-d95c0363314b'), 'deleted': False}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-05 06:37:10 | ERROR    | main | Traceback (most recent call last):
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        cursor, str_statement, effective_parameters, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/default.py", line 941, in do_execute
    cursor.execute(statement, parameters)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
psycopg2.errors.NotNullViolation: null value in column "category_id" violates not-null constraint
DETAIL:  Failing row contains (Fanta, null, null, general, null, 500.00, 0, 0, 0, t, null, null, null, d04612ec-2a58-47b8-b299-d95c0363314b, 2026-06-05 06:37:10.439841-04, 2026-06-05 06:37:10.439841-04, f, 684cf178-7499-4b6d-b093-0e30b56b2877).


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/errors.py", line 165, in __call__
    await self.app(scope, receive, _send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/gzip.py", line 20, in __call__
    await responder(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/gzip.py", line 39, in __call__
    await self.app(scope, receive, self.send_with_gzip)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/cors.py", line 93, in __call__
    await self.simple_response(scope, receive, send, request_headers=headers)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/cors.py", line 144, in simple_response
    await self.app(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app
    raise exc
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app
    await app(scope, receive, sender)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 715, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 735, in app
    await route.handle(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 288, in handle
    await self.app(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 76, in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app
    raise exc
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app
    await app(scope, receive, sender)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 73, in app
    response = await f(request)
               ^^^^^^^^^^^^^^^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/fastapi/routing.py", line 301, in app
    raw_response = await run_endpoint_function(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<3 lines>...
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
    return await dependant.call(**values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/simpdinr/inventory-api.simplylovely.ng/app/api/v1/items.py", line 37, in create_item
    item = inventory_service.create_item(db, data=payload, user_id=current_user.id)
  File "/home/simpdinr/inventory-api.simplylovely.ng/app/services/inventory_service.py", line 231, in create_item
    db.flush()
    ~~~~~~~~^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 4352, in flush
    self._flush(objects)
    ~~~~~~~~~~~^^^^^^^^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 4487, in _flush
    with util.safe_reraise():
         ~~~~~~~~~~~~~~~~~^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 4448, in _flush
    flush_context.execute()
    ~~~~~~~~~~~~~~~~~~~~~^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/unitofwork.py", line 466, in execute
    rec.execute(self)
    ~~~~~~~~~~~^^^^^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/unitofwork.py", line 642, in execute
    util.preloaded.orm_persistence.save_obj(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        self.mapper,
        ^^^^^^^^^^^^
        uow.states_for_mapper_hierarchy(self.mapper, False, False),
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        uow,
        ^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/persistence.py", line 93, in save_obj
    _emit_insert_statements(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        base_mapper,
        ^^^^^^^^^^^^
    ...<3 lines>...
        insert,
        ^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/persistence.py", line 1233, in _emit_insert_statements
    result = connection.execute(
        statement,
        params,
        execution_options=execution_options,
    )
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1418, in execute
    return meth(
        self,
        distilled_parameters,
        execution_options or NO_OPTIONS,
    )
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/sql/elements.py", line 515, in _execute_on_connection
    return connection._execute_clauseelement(
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        self, distilled_params, execution_options
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1640, in _execute_clauseelement
    ret = self._execute_context(
        dialect,
    ...<8 lines>...
        cache_hit=cache_hit,
    )
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
    return self._exec_single_context(
           ~~~~~~~~~~~~~~~~~~~~~~~~~^
        dialect, context, statement, parameters
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
    self._handle_dbapi_exception(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        e, str_statement, effective_parameters, cursor, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        cursor, str_statement, effective_parameters, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/default.py", line 941, in do_execute
    cursor.execute(statement, parameters)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
sqlalchemy.exc.IntegrityError: (psycopg2.errors.NotNullViolation) null value in column "category_id" violates not-null constraint
DETAIL:  Failing row contains (Fanta, null, null, general, null, 500.00, 0, 0, 0, t, null, null, null, d04612ec-2a58-47b8-b299-d95c0363314b, 2026-06-05 06:37:10.439841-04, 2026-06-05 06:37:10.439841-04, f, 684cf178-7499-4b6d-b093-0e30b56b2877).

[SQL: INSERT INTO items (name, sku, "desc", dept, c_price, s_price, initial_stock, in_stock, disc, status, attributes, photos, category_id, user_id, id, deleted) VALUES (%(name)s, %(sku)s, %(desc)s, %(dept)s, %(c_price)s, %(s_price)s, %(initial_stock)s, %(in_stock)s, %(disc)s, %(status)s, %(attributes)s::JSON, %(photos)s::JSON, %(category_id)s::UUID, %(user_id)s::UUID, %(id)s::UUID, %(deleted)s) RETURNING items.created_at, items.updated_at]
[parameters: {'name': 'Fanta', 'sku': None, 'desc': None, 'dept': 'general', 'c_price': None, 's_price': 500.0, 'initial_stock': 0, 'in_stock': 0, 'disc': 0, 'status': True, 'attributes': 'null', 'photos': 'null', 'category_id': None, 'user_id': UUID('684cf178-7499-4b6d-b093-0e30b56b2877'), 'id': UUID('d04612ec-2a58-47b8-b299-d95c0363314b'), 'deleted': False}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)

2026-06-05 09:30:37 | ERROR    | main | [715c2f55] POST /api/v1/items — IntegrityError: (psycopg2.errors.NotNullViolation) null value in column "category_id" violates not-null constraint
DETAIL:  Failing row contains (Fanta, null, null, general, null, 500.00, 0, 0, 0, t, null, null, null, 2c360a51-a3b3-424d-96e1-7c4d7bcc5ac0, 2026-06-05 09:30:37.316732-04, 2026-06-05 09:30:37.316732-04, f, 684cf178-7499-4b6d-b093-0e30b56b2877).

[SQL: INSERT INTO items (name, sku, "desc", dept, c_price, s_price, initial_stock, in_stock, disc, status, attributes, photos, category_id, user_id, id, deleted) VALUES (%(name)s, %(sku)s, %(desc)s, %(dept)s, %(c_price)s, %(s_price)s, %(initial_stock)s, %(in_stock)s, %(disc)s, %(status)s, %(attributes)s::JSON, %(photos)s::JSON, %(category_id)s::UUID, %(user_id)s::UUID, %(id)s::UUID, %(deleted)s) RETURNING items.created_at, items.updated_at]
[parameters: {'name': 'Fanta', 'sku': None, 'desc': None, 'dept': 'general', 'c_price': None, 's_price': 500.0, 'initial_stock': 0, 'in_stock': 0, 'disc': 0, 'status': True, 'attributes': 'null', 'photos': 'null', 'category_id': None, 'user_id': UUID('684cf178-7499-4b6d-b093-0e30b56b2877'), 'id': UUID('2c360a51-a3b3-424d-96e1-7c4d7bcc5ac0'), 'deleted': False}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-05 09:30:37 | ERROR    | main | Traceback (most recent call last):
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        cursor, str_statement, effective_parameters, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/default.py", line 941, in do_execute
    cursor.execute(statement, parameters)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
psycopg2.errors.NotNullViolation: null value in column "category_id" violates not-null constraint
DETAIL:  Failing row contains (Fanta, null, null, general, null, 500.00, 0, 0, 0, t, null, null, null, 2c360a51-a3b3-424d-96e1-7c4d7bcc5ac0, 2026-06-05 09:30:37.316732-04, 2026-06-05 09:30:37.316732-04, f, 684cf178-7499-4b6d-b093-0e30b56b2877).


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/errors.py", line 165, in __call__
    await self.app(scope, receive, _send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/gzip.py", line 20, in __call__
    await responder(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/gzip.py", line 39, in __call__
    await self.app(scope, receive, self.send_with_gzip)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/cors.py", line 93, in __call__
    await self.simple_response(scope, receive, send, request_headers=headers)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/cors.py", line 144, in simple_response
    await self.app(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app
    raise exc
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app
    await app(scope, receive, sender)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 715, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 735, in app
    await route.handle(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 288, in handle
    await self.app(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 76, in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app
    raise exc
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app
    await app(scope, receive, sender)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 73, in app
    response = await f(request)
               ^^^^^^^^^^^^^^^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/fastapi/routing.py", line 301, in app
    raw_response = await run_endpoint_function(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<3 lines>...
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
    return await dependant.call(**values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/simpdinr/inventory-api.simplylovely.ng/app/api/v1/items.py", line 37, in create_item
    item = inventory_service.create_item(db, data=payload, user_id=current_user.id)
  File "/home/simpdinr/inventory-api.simplylovely.ng/app/services/inventory_service.py", line 231, in create_item
    db.flush()
    ~~~~~~~~^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 4352, in flush
    self._flush(objects)
    ~~~~~~~~~~~^^^^^^^^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 4487, in _flush
    with util.safe_reraise():
         ~~~~~~~~~~~~~~~~~^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 4448, in _flush
    flush_context.execute()
    ~~~~~~~~~~~~~~~~~~~~~^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/unitofwork.py", line 466, in execute
    rec.execute(self)
    ~~~~~~~~~~~^^^^^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/unitofwork.py", line 642, in execute
    util.preloaded.orm_persistence.save_obj(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        self.mapper,
        ^^^^^^^^^^^^
        uow.states_for_mapper_hierarchy(self.mapper, False, False),
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        uow,
        ^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/persistence.py", line 93, in save_obj
    _emit_insert_statements(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        base_mapper,
        ^^^^^^^^^^^^
    ...<3 lines>...
        insert,
        ^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/persistence.py", line 1233, in _emit_insert_statements
    result = connection.execute(
        statement,
        params,
        execution_options=execution_options,
    )
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1418, in execute
    return meth(
        self,
        distilled_parameters,
        execution_options or NO_OPTIONS,
    )
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/sql/elements.py", line 515, in _execute_on_connection
    return connection._execute_clauseelement(
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        self, distilled_params, execution_options
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1640, in _execute_clauseelement
    ret = self._execute_context(
        dialect,
    ...<8 lines>...
        cache_hit=cache_hit,
    )
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
    return self._exec_single_context(
           ~~~~~~~~~~~~~~~~~~~~~~~~~^
        dialect, context, statement, parameters
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
    self._handle_dbapi_exception(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        e, str_statement, effective_parameters, cursor, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        cursor, str_statement, effective_parameters, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/default.py", line 941, in do_execute
    cursor.execute(statement, parameters)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
sqlalchemy.exc.IntegrityError: (psycopg2.errors.NotNullViolation) null value in column "category_id" violates not-null constraint
DETAIL:  Failing row contains (Fanta, null, null, general, null, 500.00, 0, 0, 0, t, null, null, null, 2c360a51-a3b3-424d-96e1-7c4d7bcc5ac0, 2026-06-05 09:30:37.316732-04, 2026-06-05 09:30:37.316732-04, f, 684cf178-7499-4b6d-b093-0e30b56b2877).

[SQL: INSERT INTO items (name, sku, "desc", dept, c_price, s_price, initial_stock, in_stock, disc, status, attributes, photos, category_id, user_id, id, deleted) VALUES (%(name)s, %(sku)s, %(desc)s, %(dept)s, %(c_price)s, %(s_price)s, %(initial_stock)s, %(in_stock)s, %(disc)s, %(status)s, %(attributes)s::JSON, %(photos)s::JSON, %(category_id)s::UUID, %(user_id)s::UUID, %(id)s::UUID, %(deleted)s) RETURNING items.created_at, items.updated_at]
[parameters: {'name': 'Fanta', 'sku': None, 'desc': None, 'dept': 'general', 'c_price': None, 's_price': 500.0, 'initial_stock': 0, 'in_stock': 0, 'disc': 0, 'status': True, 'attributes': 'null', 'photos': 'null', 'category_id': None, 'user_id': UUID('684cf178-7499-4b6d-b093-0e30b56b2877'), 'id': UUID('2c360a51-a3b3-424d-96e1-7c4d7bcc5ac0'), 'deleted': False}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)

2026-06-06 02:40:19 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-06 02:40:21 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-06 02:40:21 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-06 02:40:21 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-06 02:40:21 | INFO     | main | Default roles seeded.
2026-06-06 02:40:21 | INFO     | main | Default roles seeded.
2026-06-06 02:40:21 | INFO     | main | Default roles seeded.
2026-06-06 02:40:21 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-06 02:40:21 | INFO     | main | Default roles seeded.
2026-06-06 02:55:43 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-06 02:55:44 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-06 02:55:44 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-06 02:55:44 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-06 02:55:44 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-06 02:55:44 | INFO     | main | Default roles seeded.
2026-06-06 02:55:44 | INFO     | main | Default roles seeded.
2026-06-06 02:55:44 | INFO     | main | Default roles seeded.
2026-06-06 02:55:44 | INFO     | main | Default roles seeded.
2026-06-06 03:40:42 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-06 03:40:43 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-06 03:40:43 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-06 03:40:44 | INFO     | main | Default roles seeded.
2026-06-06 03:40:44 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-06 03:40:44 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-06 03:40:44 | INFO     | main | Default roles seeded.
2026-06-06 03:40:44 | INFO     | main | Default roles seeded.
2026-06-06 03:40:44 | INFO     | main | Default roles seeded.
2026-06-06 03:55:20 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-06 03:55:21 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-06 03:55:21 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-06 03:55:21 | INFO     | main | Default roles seeded.
2026-06-06 03:55:21 | INFO     | main | Default roles seeded.
2026-06-06 03:55:21 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-06 03:55:21 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-06 03:55:21 | INFO     | main | Default roles seeded.
2026-06-06 03:55:21 | INFO     | main | Default roles seeded.
2026-06-06 05:49:49 | ERROR    | main | [b47c8112] POST /api/v1/items — IntegrityError: (psycopg2.errors.NotNullViolation) null value in column "category_id" violates not-null constraint
DETAIL:  Failing row contains (Malta Guinness, null, null, general, null, 800.00, 0, 0, 0, t, null, null, null, 4cf2e274-7aa6-438f-bc0a-75d783ed4942, 2026-06-06 05:49:49.925152-04, 2026-06-06 05:49:49.925152-04, f, 684cf178-7499-4b6d-b093-0e30b56b2877).

[SQL: INSERT INTO items (name, sku, "desc", dept, c_price, s_price, initial_stock, in_stock, disc, status, attributes, photos, category_id, user_id, id, deleted) VALUES (%(name)s, %(sku)s, %(desc)s, %(dept)s, %(c_price)s, %(s_price)s, %(initial_stock)s, %(in_stock)s, %(disc)s, %(status)s, %(attributes)s::JSON, %(photos)s::JSON, %(category_id)s::UUID, %(user_id)s::UUID, %(id)s::UUID, %(deleted)s) RETURNING items.created_at, items.updated_at]
[parameters: {'name': 'Malta Guinness', 'sku': None, 'desc': None, 'dept': 'general', 'c_price': None, 's_price': 800.0, 'initial_stock': 0, 'in_stock': 0, 'disc': 0, 'status': True, 'attributes': 'null', 'photos': 'null', 'category_id': None, 'user_id': UUID('684cf178-7499-4b6d-b093-0e30b56b2877'), 'id': UUID('4cf2e274-7aa6-438f-bc0a-75d783ed4942'), 'deleted': False}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-06 05:49:49 | ERROR    | main | Traceback (most recent call last):
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        cursor, str_statement, effective_parameters, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/default.py", line 941, in do_execute
    cursor.execute(statement, parameters)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
psycopg2.errors.NotNullViolation: null value in column "category_id" violates not-null constraint
DETAIL:  Failing row contains (Malta Guinness, null, null, general, null, 800.00, 0, 0, 0, t, null, null, null, 4cf2e274-7aa6-438f-bc0a-75d783ed4942, 2026-06-06 05:49:49.925152-04, 2026-06-06 05:49:49.925152-04, f, 684cf178-7499-4b6d-b093-0e30b56b2877).


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/errors.py", line 165, in __call__
    await self.app(scope, receive, _send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/gzip.py", line 20, in __call__
    await responder(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/gzip.py", line 39, in __call__
    await self.app(scope, receive, self.send_with_gzip)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/cors.py", line 93, in __call__
    await self.simple_response(scope, receive, send, request_headers=headers)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/cors.py", line 144, in simple_response
    await self.app(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app
    raise exc
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app
    await app(scope, receive, sender)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 715, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 735, in app
    await route.handle(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 288, in handle
    await self.app(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 76, in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 62, in wrapped_app
    raise exc
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/_exception_handler.py", line 51, in wrapped_app
    await app(scope, receive, sender)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/starlette/routing.py", line 73, in app
    response = await f(request)
               ^^^^^^^^^^^^^^^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/fastapi/routing.py", line 301, in app
    raw_response = await run_endpoint_function(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<3 lines>...
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib/python3.13/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
    return await dependant.call(**values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/simpdinr/inventory-api.simplylovely.ng/app/api/v1/items.py", line 37, in create_item
    item = inventory_service.create_item(db, data=payload, user_id=current_user.id)
  File "/home/simpdinr/inventory-api.simplylovely.ng/app/services/inventory_service.py", line 231, in create_item
    db.flush()
    ~~~~~~~~^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 4352, in flush
    self._flush(objects)
    ~~~~~~~~~~~^^^^^^^^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 4487, in _flush
    with util.safe_reraise():
         ~~~~~~~~~~~~~~~~~^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/session.py", line 4448, in _flush
    flush_context.execute()
    ~~~~~~~~~~~~~~~~~~~~~^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/unitofwork.py", line 466, in execute
    rec.execute(self)
    ~~~~~~~~~~~^^^^^^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/unitofwork.py", line 642, in execute
    util.preloaded.orm_persistence.save_obj(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        self.mapper,
        ^^^^^^^^^^^^
        uow.states_for_mapper_hierarchy(self.mapper, False, False),
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        uow,
        ^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/persistence.py", line 93, in save_obj
    _emit_insert_statements(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        base_mapper,
        ^^^^^^^^^^^^
    ...<3 lines>...
        insert,
        ^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/orm/persistence.py", line 1233, in _emit_insert_statements
    result = connection.execute(
        statement,
        params,
        execution_options=execution_options,
    )
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1418, in execute
    return meth(
        self,
        distilled_parameters,
        execution_options or NO_OPTIONS,
    )
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/sql/elements.py", line 515, in _execute_on_connection
    return connection._execute_clauseelement(
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        self, distilled_params, execution_options
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1640, in _execute_clauseelement
    ret = self._execute_context(
        dialect,
    ...<8 lines>...
        cache_hit=cache_hit,
    )
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
    return self._exec_single_context(
           ~~~~~~~~~~~~~~~~~~~~~~~~~^
        dialect, context, statement, parameters
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
    self._handle_dbapi_exception(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        e, str_statement, effective_parameters, cursor, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        cursor, str_statement, effective_parameters, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/simpdinr/virtualenv/inventory-api.simplylovely.ng/3.13/lib64/python3.13/site-packages/sqlalchemy/engine/default.py", line 941, in do_execute
    cursor.execute(statement, parameters)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
sqlalchemy.exc.IntegrityError: (psycopg2.errors.NotNullViolation) null value in column "category_id" violates not-null constraint
DETAIL:  Failing row contains (Malta Guinness, null, null, general, null, 800.00, 0, 0, 0, t, null, null, null, 4cf2e274-7aa6-438f-bc0a-75d783ed4942, 2026-06-06 05:49:49.925152-04, 2026-06-06 05:49:49.925152-04, f, 684cf178-7499-4b6d-b093-0e30b56b2877).

[SQL: INSERT INTO items (name, sku, "desc", dept, c_price, s_price, initial_stock, in_stock, disc, status, attributes, photos, category_id, user_id, id, deleted) VALUES (%(name)s, %(sku)s, %(desc)s, %(dept)s, %(c_price)s, %(s_price)s, %(initial_stock)s, %(in_stock)s, %(disc)s, %(status)s, %(attributes)s::JSON, %(photos)s::JSON, %(category_id)s::UUID, %(user_id)s::UUID, %(id)s::UUID, %(deleted)s) RETURNING items.created_at, items.updated_at]
[parameters: {'name': 'Malta Guinness', 'sku': None, 'desc': None, 'dept': 'general', 'c_price': None, 's_price': 800.0, 'initial_stock': 0, 'in_stock': 0, 'disc': 0, 'status': True, 'attributes': 'null', 'photos': 'null', 'category_id': None, 'user_id': UUID('684cf178-7499-4b6d-b093-0e30b56b2877'), 'id': UUID('4cf2e274-7aa6-438f-bc0a-75d783ed4942'), 'deleted': False}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)

2026-06-07 02:40:33 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-07 02:40:35 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-07 02:40:35 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-07 02:40:35 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-07 02:40:35 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-07 02:40:35 | INFO     | main | Default roles seeded.
2026-06-07 02:40:35 | INFO     | main | Default roles seeded.
2026-06-07 02:40:35 | INFO     | main | Default roles seeded.
2026-06-07 02:40:35 | INFO     | main | Default roles seeded.
2026-06-07 02:55:42 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-07 02:55:43 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-07 02:55:43 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-07 02:55:43 | INFO     | main | Default roles seeded.
2026-06-07 02:55:43 | INFO     | main | Default roles seeded.
2026-06-07 02:55:43 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-07 02:55:43 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-07 02:55:43 | INFO     | main | Default roles seeded.
2026-06-07 02:55:43 | INFO     | main | Default roles seeded.
2026-06-07 03:40:44 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-07 03:40:45 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-07 03:40:45 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-07 03:40:46 | INFO     | main | Default roles seeded.
2026-06-07 03:40:46 | INFO     | main | Default roles seeded.
2026-06-07 03:40:46 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-07 03:40:46 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-07 03:40:46 | INFO     | main | Default roles seeded.
2026-06-07 03:40:46 | INFO     | main | Default roles seeded.
2026-06-07 03:56:04 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-07 03:56:04 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-07 03:56:04 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-07 03:56:05 | INFO     | main | Default roles seeded.
2026-06-07 03:56:05 | INFO     | main | Default roles seeded.
2026-06-07 03:56:05 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-07 03:56:05 | INFO     | main | Default roles seeded.
2026-06-07 03:56:05 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-07 03:56:05 | INFO     | main | Default roles seeded.
2026-06-08 02:41:00 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-08 02:41:01 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-08 02:41:01 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-08 02:41:01 | INFO     | main | Default roles seeded.
2026-06-08 02:41:01 | INFO     | main | Default roles seeded.
2026-06-08 02:41:01 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-08 02:41:01 | INFO     | main | Default roles seeded.
2026-06-08 02:41:01 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-08 02:41:01 | INFO     | main | Default roles seeded.
2026-06-08 02:55:21 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-08 02:55:22 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-08 02:55:22 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-08 02:55:22 | INFO     | main | Default roles seeded.
2026-06-08 02:55:22 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-08 02:55:22 | INFO     | main | Default roles seeded.
2026-06-08 02:55:22 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-08 02:55:22 | INFO     | main | Default roles seeded.
2026-06-08 02:55:22 | INFO     | main | Default roles seeded.
2026-06-08 03:40:29 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-08 03:40:31 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-08 03:40:31 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-08 03:40:31 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-08 03:40:31 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-08 03:40:31 | INFO     | main | Default roles seeded.
2026-06-08 03:40:31 | INFO     | main | Default roles seeded.
2026-06-08 03:40:31 | INFO     | main | Default roles seeded.
2026-06-08 03:40:31 | INFO     | main | Default roles seeded.
2026-06-08 03:55:47 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-08 03:55:47 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-08 03:55:47 | INFO     | main | Default roles seeded.
2026-06-08 03:55:47 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-08 03:55:47 | INFO     | main | Default roles seeded.
2026-06-08 03:55:47 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-08 03:55:47 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-08 03:55:47 | INFO     | main | Default roles seeded.
2026-06-08 03:55:47 | INFO     | main | Default roles seeded.
2026-06-09 02:45:49 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-09 02:45:50 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-09 02:45:50 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-09 02:45:50 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-09 02:45:50 | INFO     | main | Default roles seeded.
2026-06-09 02:45:50 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-09 02:45:50 | INFO     | main | Default roles seeded.
2026-06-09 02:45:50 | INFO     | main | Default roles seeded.
2026-06-09 02:45:50 | INFO     | main | Default roles seeded.
2026-06-09 02:55:42 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-09 02:55:43 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-09 02:55:43 | INFO     | main | Default roles seeded.
2026-06-09 02:55:43 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-09 02:55:43 | INFO     | main | Default roles seeded.
2026-06-09 02:55:43 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-09 02:55:43 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-09 02:55:43 | INFO     | main | Default roles seeded.
2026-06-09 02:55:43 | INFO     | main | Default roles seeded.
2026-06-09 03:25:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-09 03:25:48 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-09 03:25:48 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-09 03:25:48 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-09 03:25:48 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-09 03:25:48 | INFO     | main | Default roles seeded.
2026-06-09 03:25:48 | INFO     | main | Default roles seeded.
2026-06-09 03:25:48 | INFO     | main | Default roles seeded.
2026-06-09 03:25:48 | INFO     | main | Default roles seeded.
2026-06-09 03:40:48 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-09 03:40:49 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-09 03:40:49 | INFO     | main | Default roles seeded.
2026-06-09 03:40:49 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-09 03:40:49 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-09 03:40:49 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-09 03:40:49 | INFO     | main | Default roles seeded.
2026-06-09 03:40:49 | INFO     | main | Default roles seeded.
2026-06-09 03:40:49 | INFO     | main | Default roles seeded.
2026-06-09 03:55:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-09 03:55:47 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-09 03:55:47 | INFO     | main | Default roles seeded.
2026-06-09 03:55:47 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-09 03:55:47 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-09 03:55:47 | INFO     | main | Default roles seeded.
2026-06-09 03:55:47 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-09 03:55:47 | INFO     | main | Default roles seeded.
2026-06-09 03:55:47 | INFO     | main | Default roles seeded.
2026-06-10 02:40:26 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-10 02:40:27 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-10 02:40:27 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-10 02:40:27 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-10 02:40:27 | INFO     | main | Default roles seeded.
2026-06-10 02:40:27 | INFO     | main | Default roles seeded.
2026-06-10 02:40:27 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-10 02:40:27 | INFO     | main | Default roles seeded.
2026-06-10 02:40:27 | INFO     | main | Default roles seeded.
2026-06-10 02:55:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-10 02:55:54 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-10 02:55:54 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-10 02:55:54 | INFO     | main | Default roles seeded.
2026-06-10 02:55:54 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-10 02:55:55 | INFO     | main | Default roles seeded.
2026-06-10 02:55:55 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-10 02:55:55 | INFO     | main | Default roles seeded.
2026-06-10 02:55:55 | INFO     | main | Default roles seeded.
2026-06-10 03:40:35 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-10 03:40:37 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-10 03:40:37 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-10 03:40:37 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-10 03:40:37 | INFO     | main | Default roles seeded.
2026-06-10 03:40:37 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-10 03:40:37 | INFO     | main | Default roles seeded.
2026-06-10 03:40:37 | INFO     | main | Default roles seeded.
2026-06-10 03:40:37 | INFO     | main | Default roles seeded.
2026-06-10 03:55:52 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-10 03:55:53 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-10 03:55:53 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-10 03:55:53 | INFO     | main | Default roles seeded.
2026-06-10 03:55:53 | INFO     | main | Default roles seeded.
2026-06-10 03:55:53 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-10 03:55:53 | INFO     | main | Default roles seeded.
2026-06-10 03:55:53 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-10 03:55:53 | INFO     | main | Default roles seeded.
2026-06-11 02:40:39 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-11 02:40:40 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 02:40:40 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 02:40:40 | INFO     | main | Default roles seeded.
2026-06-11 02:40:40 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 02:40:40 | INFO     | main | Default roles seeded.
2026-06-11 02:40:40 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 02:40:40 | INFO     | main | Default roles seeded.
2026-06-11 02:40:40 | INFO     | main | Default roles seeded.
2026-06-11 02:55:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-11 02:55:54 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 02:55:54 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 02:55:54 | INFO     | main | Default roles seeded.
2026-06-11 02:55:54 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 02:55:54 | INFO     | main | Default roles seeded.
2026-06-11 02:55:54 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 02:55:54 | INFO     | main | Default roles seeded.
2026-06-11 02:55:54 | INFO     | main | Default roles seeded.
2026-06-11 03:41:03 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-11 03:41:05 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 03:41:05 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 03:41:05 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 03:41:05 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 03:41:05 | INFO     | main | Default roles seeded.
2026-06-11 03:41:05 | INFO     | main | Default roles seeded.
2026-06-11 03:41:05 | INFO     | main | Default roles seeded.
2026-06-11 03:41:05 | INFO     | main | Default roles seeded.
2026-06-11 03:55:31 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-11 03:55:32 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 03:55:32 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 03:55:32 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 03:55:32 | INFO     | main | Default roles seeded.
2026-06-11 03:55:32 | INFO     | main | Default roles seeded.
2026-06-11 03:55:32 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 03:55:32 | INFO     | main | Default roles seeded.
2026-06-11 03:55:32 | INFO     | main | Default roles seeded.
2026-06-11 06:05:26 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-11 06:05:27 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 06:05:27 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 06:05:27 | INFO     | main | Default roles seeded.
2026-06-11 06:05:27 | INFO     | main | Default roles seeded.
2026-06-11 06:05:27 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 06:05:27 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 06:05:27 | INFO     | main | Default roles seeded.
2026-06-11 06:05:27 | INFO     | main | Default roles seeded.
2026-06-11 09:56:00 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng']
2026-06-11 09:56:02 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 09:56:02 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 09:56:02 | INFO     | main | Default roles seeded.
2026-06-11 09:56:02 | INFO     | main | Default roles seeded.
2026-06-11 09:56:02 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 09:56:02 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 09:56:02 | INFO     | main | Default roles seeded.
2026-06-11 09:56:02 | INFO     | main | Default roles seeded.
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:15:33 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:15:36 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:15:37 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:15:40 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:15:42 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:15:45 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:15:47 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:15:50 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:15:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:15:55 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:15:58 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:16:00 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:16:03 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:16:05 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:16:08 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:16:10 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:16:13 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:16:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:16:17 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:16:20 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:16:22 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:16:24 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:16:27 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:16:29 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:16:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:16:34 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:16:37 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:16:39 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:16:42 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:16:44 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:16:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:16:49 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:16:51 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:16:54 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:16:56 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:16:59 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:17:01 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:17:04 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:17:06 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:17:09 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:17:11 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:17:14 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:17:16 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:17:19 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:17:21 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:17:24 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:17:26 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:17:28 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:17:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:17:34 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:17:37 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:17:39 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:17:41 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:17:44 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:17:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:17:48 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:17:51 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:17:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:17:56 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:17:58 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:18:01 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:18:03 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:18:06 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:18:08 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:18:11 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:18:13 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:18:16 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:18:18 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:18:21 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:18:24 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:18:26 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:18:29 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:18:31 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:18:34 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:18:36 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:18:39 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:18:41 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:18:43 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:18:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:18:48 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:18:50 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:18:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:18:55 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:18:58 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:19:00 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:19:02 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:19:05 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:19:07 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:19:10 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:19:12 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:19:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:19:17 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:19:20 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:19:22 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:19:25 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:19:27 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:19:30 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:19:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:19:34 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:19:37 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:19:39 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:19:42 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:19:44 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:19:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:19:49 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:19:51 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:19:54 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:19:56 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:19:59 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:20:02 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:20:04 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:20:07 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:20:10 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:20:12 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:20:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:20:17 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:20:20 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:20:22 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:20:25 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:20:27 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:20:29 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:20:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:20:34 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:20:37 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:20:39 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:20:41 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:20:44 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:20:47 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:20:49 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:20:52 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:20:54 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:20:57 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:20:59 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:21:02 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:21:04 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:21:07 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:21:09 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:21:12 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:21:14 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:21:17 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:21:19 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:21:21 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:21:24 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:21:26 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:21:29 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:21:31 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:21:34 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:21:36 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:21:39 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:21:41 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:21:43 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:21:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:21:48 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:21:51 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:21:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:21:56 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:21:58 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:22:01 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:22:03 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:22:05 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:22:08 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:22:10 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:22:12 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:22:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:22:17 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:22:20 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:22:22 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:22:25 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:22:28 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:22:30 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:22:33 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:22:35 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:22:38 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:22:40 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:22:43 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:22:45 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:22:48 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:22:50 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:22:52 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:22:55 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:22:57 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:22:59 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:23:02 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:23:05 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:23:07 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:23:09 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:23:12 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:23:14 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:23:17 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:23:20 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:23:22 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:23:25 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:23:27 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:23:30 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:23:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:23:35 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:23:37 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:23:40 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:23:42 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:23:45 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:23:48 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:23:50 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:23:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:23:56 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:23:59 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:24:01 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:24:04 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:24:06 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:24:09 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:24:12 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:24:14 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:24:17 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:24:20 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:24:22 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:24:25 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:24:27 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:24:30 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:24:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:24:35 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:24:37 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:24:40 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:24:42 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:24:45 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:24:47 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:24:50 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:24:52 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:24:55 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:24:57 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:25:00 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:25:02 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:25:05 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:25:07 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:25:10 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:25:13 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:25:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:25:18 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:25:21 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:25:23 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:25:26 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:25:28 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:25:31 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:25:33 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:25:36 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:25:38 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:25:41 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:25:43 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:25:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:25:48 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:25:51 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:25:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:25:56 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:25:58 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:26:01 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:26:03 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:26:05 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:26:08 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:26:10 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:26:13 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:26:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:26:18 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:26:20 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:26:23 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:26:25 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:26:28 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:26:30 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:26:33 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:26:35 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:26:38 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:26:40 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:26:43 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:26:45 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:26:48 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:26:50 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:26:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:26:55 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:26:58 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:27:00 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:27:03 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:27:05 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:27:07 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:27:10 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:27:12 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:27:14 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:27:17 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:27:19 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:27:22 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:27:24 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:27:27 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:27:29 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:27:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:27:34 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:27:36 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:27:39 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:27:41 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:27:44 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:27:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:27:48 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:27:51 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:27:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:27:56 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:27:58 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:28:01 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:28:03 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:28:06 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:28:08 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:28:11 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:28:13 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:28:16 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:28:18 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:28:20 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:28:23 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:28:25 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:28:28 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:28:31 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:28:34 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:28:36 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:28:39 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:28:41 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:28:44 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:28:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:28:48 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:28:51 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:28:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:28:55 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:28:58 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:29:00 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:29:02 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:29:05 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:29:07 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:29:10 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:29:12 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:29:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:29:17 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:29:19 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:29:22 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:29:25 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:29:27 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:29:30 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:29:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:29:34 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:29:37 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:29:39 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:29:42 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:29:44 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:29:47 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:29:49 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:29:51 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:29:54 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:29:56 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:29:58 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:30:01 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:30:03 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:30:06 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:30:09 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:30:12 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:30:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:30:17 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:30:20 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:30:22 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:30:25 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:30:28 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:30:30 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:30:33 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:30:36 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:30:38 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:30:41 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:30:44 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:30:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:30:49 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:30:52 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:30:55 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:30:57 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:31:00 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:31:03 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:31:05 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:31:08 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:31:10 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:31:13 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:31:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:31:18 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:31:20 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:31:23 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:31:25 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:31:27 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:31:30 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:31:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:31:34 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:31:37 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:31:39 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:31:42 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:31:44 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:31:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:31:49 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:31:51 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:31:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:31:56 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:31:58 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:32:00 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:32:03 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:32:05 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:32:08 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:32:10 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:32:13 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:32:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:32:17 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:32:20 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:32:22 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:32:25 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:32:27 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:32:30 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:32:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:32:35 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:32:37 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:32:40 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:32:42 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:32:45 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:32:47 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:32:49 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:32:52 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:32:54 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:32:56 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:32:59 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:33:01 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:33:03 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:33:06 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:33:08 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:33:10 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:33:13 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:33:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:33:18 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:33:20 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:33:22 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:33:25 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:33:27 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:33:29 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:33:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:33:34 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:33:36 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:33:38 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:33:41 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:33:43 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:33:45 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:33:48 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:33:50 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:33:52 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:33:55 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:33:57 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:33:59 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:34:02 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:34:04 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:34:06 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:34:09 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:34:11 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:34:13 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:34:16 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:34:18 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:34:21 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:34:23 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:34:25 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:34:28 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:34:30 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:34:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:34:34 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:34:37 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:34:39 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:34:42 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:34:44 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:34:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:34:49 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:34:52 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:34:54 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:34:57 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:34:59 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:35:02 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:35:04 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:35:07 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:35:09 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:35:12 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:35:14 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:35:17 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:35:19 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:35:22 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:35:24 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:35:27 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:35:29 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:35:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:35:34 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:35:37 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:35:40 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:35:42 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:35:45 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:35:47 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:35:50 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:35:52 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:35:55 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:35:57 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:36:00 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:36:02 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:36:05 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:36:07 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:36:10 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:36:12 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:36:14 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:36:17 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:36:19 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:36:22 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:36:24 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:36:27 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:36:29 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:36:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:36:34 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:36:36 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:36:39 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:36:41 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:36:44 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:36:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:36:48 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:36:51 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:36:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:36:56 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:36:58 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:37:01 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:37:03 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:37:05 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:37:08 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:37:10 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:37:13 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:37:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:37:18 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:37:20 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:37:23 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:37:25 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:37:27 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:37:29 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:37:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:37:34 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:37:36 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:37:39 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:37:41 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:37:44 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:37:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:37:48 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:37:51 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:37:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:37:55 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:37:58 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:38:00 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:38:02 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:38:05 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:38:07 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:38:10 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:38:12 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:38:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:38:17 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:38:20 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:38:22 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:38:25 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:38:27 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:38:30 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:38:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:38:34 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:38:37 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:38:39 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:38:41 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:38:44 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:38:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:38:48 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:38:51 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:38:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:38:55 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:38:58 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:39:00 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:39:02 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:39:05 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:39:08 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:39:10 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:39:13 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:39:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:39:17 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:39:20 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:39:22 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:39:25 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:39:27 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:39:30 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:39:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:39:35 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:39:37 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:39:40 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:39:42 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:39:45 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:39:47 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:39:50 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:39:52 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:39:55 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:39:57 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:40:00 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:40:02 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:40:05 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:40:08 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:40:11 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:40:14 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:40:16 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:40:19 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:40:22 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:40:25 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:40:27 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:40:30 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:40:33 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:40:36 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:40:38 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:40:41 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:40:44 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:40:47 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:40:49 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:40:52 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:40:55 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:40:58 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:41:00 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:41:03 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:41:06 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:41:08 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:41:11 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:41:14 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:41:16 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:41:18 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:41:21 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:41:23 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:41:26 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:41:28 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:41:31 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:41:33 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:41:36 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:41:38 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:41:41 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:41:43 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:41:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:41:48 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:41:51 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:41:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:41:56 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:41:59 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:42:01 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:42:04 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:42:07 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:42:09 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:42:12 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:42:14 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:42:16 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:42:19 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:42:21 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:42:24 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:42:26 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:42:28 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:42:31 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:42:33 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:42:36 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:42:38 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:42:41 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:42:43 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:42:45 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:42:48 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:42:50 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:42:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:42:55 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:42:58 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:43:00 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:43:03 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:43:05 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:43:07 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:43:10 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:43:13 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:43:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:43:18 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:43:20 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:43:22 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:43:25 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:43:27 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:43:30 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:43:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:43:35 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:43:38 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:43:40 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:43:43 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:43:45 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:43:47 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:43:50 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:43:52 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:43:55 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:43:58 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:44:00 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:44:03 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:44:05 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:44:08 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:44:10 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:44:13 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:44:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:44:18 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:44:20 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:44:22 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:44:25 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:44:28 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:44:31 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:44:33 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:44:36 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:44:38 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:44:41 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:44:44 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:44:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:44:48 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:44:51 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:44:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:44:56 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:44:58 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:45:00 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:45:03 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:45:05 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:45:08 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:45:10 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:45:13 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:45:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:45:18 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:45:20 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:45:23 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:45:25 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:45:28 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:45:30 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:45:33 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:45:36 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:45:38 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:45:41 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:45:45 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:45:49 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:45:54 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:45:58 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:46:02 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:46:06 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:46:10 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:46:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:46:19 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:46:23 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:46:27 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:46:31 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:46:35 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:46:39 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:46:43 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:46:47 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:46:51 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:46:55 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:46:59 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:47:03 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:47:07 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:47:11 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:47:14 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:47:18 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:47:22 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:47:26 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:47:30 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:47:35 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:47:39 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:47:42 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:47:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:47:50 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:47:54 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:47:58 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:48:02 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:48:06 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:48:10 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:48:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:48:18 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:48:22 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:48:26 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:48:30 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:48:34 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:48:40 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:48:44 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:48:48 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:48:51 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:48:55 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:48:59 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:49:02 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:49:06 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:49:10 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:49:14 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:49:18 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:49:21 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:49:25 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:49:28 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:49:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:49:36 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:49:39 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:49:43 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:49:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:49:50 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:49:54 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:49:57 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:50:01 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:50:05 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:50:09 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:50:13 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:50:17 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:50:21 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:50:25 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:50:29 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:50:33 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:50:37 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:50:40 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:50:45 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:50:48 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:50:52 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:50:56 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:51:01 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:51:06 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:51:10 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:51:14 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:51:18 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:51:22 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:51:25 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:51:29 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:51:33 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:51:37 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:51:40 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:51:45 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:51:49 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:51:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:51:57 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:52:01 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:52:04 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:52:08 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:52:12 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:52:16 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:52:21 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:52:26 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:52:31 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:52:35 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:52:38 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:52:42 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:52:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:52:50 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:52:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:52:57 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:53:01 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:53:06 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:53:10 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:53:14 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:53:18 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:53:22 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:53:26 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:53:30 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:53:34 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:53:38 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:53:42 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:53:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:53:50 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:53:54 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:53:57 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:54:01 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:54:06 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:54:10 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:54:14 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:54:18 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:54:22 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:54:26 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:54:29 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:54:33 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:54:37 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:54:41 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:54:45 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:54:49 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:54:52 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:54:56 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:55:00 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:55:04 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:55:08 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:55:12 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:55:16 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:55:21 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:55:25 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:55:29 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:55:33 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:55:37 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:55:41 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:55:45 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:55:49 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:55:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:55:58 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:56:02 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:56:06 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:56:10 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:56:14 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:56:18 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:56:22 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:56:26 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:56:30 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:56:33 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:56:37 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:56:41 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:56:45 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:56:49 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:56:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:56:57 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:57:00 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:57:04 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:57:07 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:57:11 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:57:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:57:19 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:57:23 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:57:27 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:57:31 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:57:35 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:57:39 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:57:43 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:57:47 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:57:50 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:57:54 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:57:58 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:58:02 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:58:06 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:58:10 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:58:14 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:58:17 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:58:21 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:58:25 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:58:29 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:58:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:58:36 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:58:40 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:58:44 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:58:48 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:58:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:58:57 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:59:01 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:59:04 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 22:59:08 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:59:12 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:59:16 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:59:19 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:59:23 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:59:27 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:59:31 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:59:34 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:59:38 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:59:42 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:59:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:59:49 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:59:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 22:59:57 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:00:00 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:00:05 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:00:09 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:00:14 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:00:18 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:00:22 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:00:27 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:00:31 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:00:35 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:00:39 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:00:43 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:00:47 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:00:51 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:00:55 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:00:59 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:01:03 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:01:08 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:01:11 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:01:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:01:19 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:01:23 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:01:27 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:01:31 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:01:35 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:01:39 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:01:43 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:01:47 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:01:51 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:01:54 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:01:58 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:02:02 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:02:05 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:02:09 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:02:13 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:02:17 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:02:21 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:02:25 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:02:29 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:02:33 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:02:37 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:02:41 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:02:44 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:02:48 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:02:52 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:02:56 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:02:59 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:03:03 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:03:07 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:03:11 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:03:16 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:03:21 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:03:26 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:03:30 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:03:33 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:03:37 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:03:41 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:03:45 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:03:48 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:03:52 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:03:56 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:04:00 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:04:04 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:04:07 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:04:11 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:04:16 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:04:20 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:04:23 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:04:27 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:04:31 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:04:34 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:04:38 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:04:42 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:04:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:04:50 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:04:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:04:57 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:05:01 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:05:07 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:05:11 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:05:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:05:19 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:05:23 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:05:27 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:05:31 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:05:37 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:05:41 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:05:45 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:05:49 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:05:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:05:57 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:06:01 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:06:06 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:06:11 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:06:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:06:19 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:06:22 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:06:26 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:06:30 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:06:33 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:06:37 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:06:42 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:06:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:06:50 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:06:54 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:06:57 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:07:01 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:07:04 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:07:08 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:07:12 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:07:16 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:07:20 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:07:24 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:07:28 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:07:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:07:35 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:07:39 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:07:43 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:07:47 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:07:51 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:07:55 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:07:59 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:08:03 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:08:07 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:08:10 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:08:14 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:08:18 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:08:22 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:08:26 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:08:30 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:08:34 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:08:38 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:08:41 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:08:45 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:08:49 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:08:52 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:08:56 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:09:00 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:09:04 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:09:08 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:09:12 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:09:16 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:09:20 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:09:24 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:09:28 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:09:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:09:36 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:09:39 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:09:43 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:09:47 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:09:51 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:09:55 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:09:59 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:10:03 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:10:07 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:10:11 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:10:16 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:10:20 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:10:24 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:10:28 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:10:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:10:36 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:10:40 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:10:44 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:10:49 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:10:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:10:57 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:11:01 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:11:05 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:11:09 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:11:13 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:11:17 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:11:21 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:11:26 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:11:30 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:11:34 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:11:38 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:11:42 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:11:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:11:50 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:11:54 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:11:58 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:12:02 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:12:06 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:12:11 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:12:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:12:18 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:12:23 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:12:27 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:12:31 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:12:35 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:12:40 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:12:44 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:12:48 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:12:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:12:57 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:13:01 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:13:05 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:13:09 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:13:13 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:13:17 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:13:21 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:13:25 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:13:29 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:13:33 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:13:38 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:13:42 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:13:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:13:50 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:13:54 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:13:59 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:14:03 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:14:07 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:14:11 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:14:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:14:19 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:14:24 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:14:28 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:14:31 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:14:35 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:14:39 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:14:43 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:14:47 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:14:52 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:14:56 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:15:00 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:15:05 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:15:10 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:15:14 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:15:19 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:15:23 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:15:27 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:15:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:15:36 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:15:40 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:15:45 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:15:49 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:15:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:15:58 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:16:02 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:16:06 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:16:10 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:16:14 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:16:18 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:16:22 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:16:26 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:16:30 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:16:34 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:16:38 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:16:42 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:16:47 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:16:50 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:16:55 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:16:59 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:17:03 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:17:07 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:17:11 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:17:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:17:19 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:17:23 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:17:26 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:17:30 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:17:35 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:17:39 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:17:42 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:17:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:17:50 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:17:54 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:17:59 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:18:05 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}2026-06-11 23:18:09 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']

Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:18:12 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:18:16 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:18:20 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:18:24 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:18:28 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:18:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:18:36 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:18:40 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:18:44 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:18:48 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:18:52 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:18:55 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:18:59 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:19:03 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:19:07 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:19:11 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:19:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:19:19 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:19:23 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:19:27 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:19:31 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:19:35 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:19:39 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:19:43 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:19:47 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:19:51 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:19:55 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:19:59 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:20:04 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:20:08 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:20:13 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:20:17 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:20:21 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:20:26 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:20:30 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:20:34 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:20:38 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:20:42 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:20:47 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:20:51 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:20:55 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:20:59 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:21:03 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:21:07 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:21:11 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:21:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:21:19 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:21:23 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:21:27 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:21:31 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:21:35 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:21:39 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:21:43 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:21:48 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:21:52 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:21:56 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:22:00 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:22:04 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}2026-06-11 23:22:08 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']

2026-06-11 23:22:12 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:22:17 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:22:20 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:22:25 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:22:29 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:22:33 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:22:40 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:22:44 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:22:48 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:22:52 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:22:56 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:23:00 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:23:04 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:23:08 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:23:12 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:23:16 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:23:19 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:23:22 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:23:26 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:23:30 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:23:34 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:23:38 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:23:42 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:23:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:23:51 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:23:55 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:23:59 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:24:03 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:24:07 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:24:11 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:24:15 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:24:19 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:24:23 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:24:27 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:24:31 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:24:34 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:24:38 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:24:43 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:24:46 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:24:50 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:24:54 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:24:58 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:25:04 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:25:08 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:25:12 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:25:16 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:25:21 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:25:28 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:25:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:25:36 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:25:40 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:25:44 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:25:48 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:25:53 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:25:54 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 23:25:55 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 23:25:55 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 23:25:55 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 23:25:55 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, 61d4b509-276b-4e89-abf0-96b50484f418, 2026-06-11 23:25:55.739306-04, 2026-06-11 23:25:55.739306-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'parent_id__0': None, 'desc__0': 'Snacks and beverages', 'deleted__0': False, 'dept__0': 'general', 'user_id__0': None, 'id__0': UUID('61d4b509-276b-4e89-abf0-96b50484f418'), 'organization_id__0': None, 'name__0': 'Snacks & Beverages', 'parent_id__1': None, 'desc__1': 'Electronic items', 'deleted__1': False, 'dept__1': 'general', 'user_id__1': None, 'id__1': UUID('e146be1d-f26b-4153-8a47-8415d78fc6f0'), 'organization_id__1': None, 'name__1': 'Accessories & Electronics', 'parent_id__2': None, 'desc__2': 'Clothing and apparel', 'deleted__2': False, 'dept__2': 'general', 'user_id__2': None, 'id__2': UUID('a5a8f137-ccab-4c47-b23b-409d37aa959b'), 'organization_id__2': None, 'name__2': 'Laundry, Clothing & Apparel'}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-11 23:25:56 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, a0cb140c-c662-4a5f-bb6a-95a2eb222ba8, 2026-06-11 23:25:55.93389-04, 2026-06-11 23:25:55.93389-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'parent_id__0': None, 'desc__0': 'Snacks and beverages', 'deleted__0': False, 'dept__0': 'general', 'user_id__0': None, 'id__0': UUID('a0cb140c-c662-4a5f-bb6a-95a2eb222ba8'), 'organization_id__0': None, 'name__0': 'Snacks & Beverages', 'parent_id__1': None, 'desc__1': 'Electronic items', 'deleted__1': False, 'dept__1': 'general', 'user_id__1': None, 'id__1': UUID('4551f260-eb03-4388-b29b-a0a0440e1023'), 'organization_id__1': None, 'name__1': 'Accessories & Electronics', 'parent_id__2': None, 'desc__2': 'Clothing and apparel', 'deleted__2': False, 'dept__2': 'general', 'user_id__2': None, 'id__2': UUID('78682ccc-3282-48d9-a090-a97fa3d30df8'), 'organization_id__2': None, 'name__2': 'Laundry, Clothing & Apparel'}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-11 23:25:56 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, 280a1c6e-2357-4b27-be92-60cba951e2fb, 2026-06-11 23:25:55.950678-04, 2026-06-11 23:25:55.950678-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'parent_id__0': None, 'desc__0': 'Snacks and beverages', 'deleted__0': False, 'dept__0': 'general', 'user_id__0': None, 'id__0': UUID('280a1c6e-2357-4b27-be92-60cba951e2fb'), 'organization_id__0': None, 'name__0': 'Snacks & Beverages', 'parent_id__1': None, 'desc__1': 'Electronic items', 'deleted__1': False, 'dept__1': 'general', 'user_id__1': None, 'id__1': UUID('cef2a0c0-97de-4f74-8df7-c00a93a60ec6'), 'organization_id__1': None, 'name__1': 'Accessories & Electronics', 'parent_id__2': None, 'desc__2': 'Clothing and apparel', 'deleted__2': False, 'dept__2': 'general', 'user_id__2': None, 'id__2': UUID('fa5556aa-6cfe-4c55-bfe7-8223230714c4'), 'organization_id__2': None, 'name__2': 'Laundry, Clothing & Apparel'}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-11 23:25:56 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, 585d4ba8-072c-430d-b290-d570930aa06f, 2026-06-11 23:25:56.0993-04, 2026-06-11 23:25:56.0993-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'parent_id__0': None, 'desc__0': 'Snacks and beverages', 'deleted__0': False, 'dept__0': 'general', 'user_id__0': None, 'id__0': UUID('585d4ba8-072c-430d-b290-d570930aa06f'), 'organization_id__0': None, 'name__0': 'Snacks & Beverages', 'parent_id__1': None, 'desc__1': 'Electronic items', 'deleted__1': False, 'dept__1': 'general', 'user_id__1': None, 'id__1': UUID('d41c4806-f540-424e-89ea-e59f1acc03db'), 'organization_id__1': None, 'name__1': 'Accessories & Electronics', 'parent_id__2': None, 'desc__2': 'Clothing and apparel', 'deleted__2': False, 'dept__2': 'general', 'user_id__2': None, 'id__2': UUID('60295b22-4d17-4b05-8bca-cba3c3ca2fac'), 'organization_id__2': None, 'name__2': 'Laundry, Clothing & Apparel'}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-11 23:26:42 | INFO     | main | Shutdown complete.
2026-06-11 23:26:42 | INFO     | main | Shutdown complete.
2026-06-11 23:26:42 | INFO     | main | Shutdown complete.
2026-06-11 23:26:42 | INFO     | main | Shutdown complete.
2026-06-11 23:26:49 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'redis://localhost:6379/0'}
2026-06-11 23:26:50 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 23:26:51 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 23:26:51 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 23:26:51 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 23:26:51 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, 366af7b8-db25-4936-8652-e1966a1010c3, 2026-06-11 23:26:51.640242-04, 2026-06-11 23:26:51.640242-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'name__0': 'Snacks & Beverages', 'id__0': UUID('366af7b8-db25-4936-8652-e1966a1010c3'), 'deleted__0': False, 'user_id__0': None, 'dept__0': 'general', 'parent_id__0': None, 'desc__0': 'Snacks and beverages', 'organization_id__0': None, 'name__1': 'Accessories & Electronics', 'id__1': UUID('e0ec9811-ccc9-4b84-a8b7-1b1f26bea1ab'), 'deleted__1': False, 'user_id__1': None, 'dept__1': 'general', 'parent_id__1': None, 'desc__1': 'Electronic items', 'organization_id__1': None, 'name__2': 'Laundry, Clothing & Apparel', 'id__2': UUID('ed530651-6dd4-4756-a121-f12fb4f4ac89'), 'deleted__2': False, 'user_id__2': None, 'dept__2': 'general', 'parent_id__2': None, 'desc__2': 'Clothing and apparel', 'organization_id__2': None}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-11 23:26:51 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, 498f7e5f-d72c-4da2-8911-ed33b83ece86, 2026-06-11 23:26:51.833136-04, 2026-06-11 23:26:51.833136-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'name__0': 'Snacks & Beverages', 'id__0': UUID('498f7e5f-d72c-4da2-8911-ed33b83ece86'), 'deleted__0': False, 'user_id__0': None, 'dept__0': 'general', 'parent_id__0': None, 'desc__0': 'Snacks and beverages', 'organization_id__0': None, 'name__1': 'Accessories & Electronics', 'id__1': UUID('69425cde-50c2-4e7f-822e-8ebd621fbba4'), 'deleted__1': False, 'user_id__1': None, 'dept__1': 'general', 'parent_id__1': None, 'desc__1': 'Electronic items', 'organization_id__1': None, 'name__2': 'Laundry, Clothing & Apparel', 'id__2': UUID('2f355a8a-694f-42a7-8dfe-0e0b6345acac'), 'deleted__2': False, 'user_id__2': None, 'dept__2': 'general', 'parent_id__2': None, 'desc__2': 'Clothing and apparel', 'organization_id__2': None}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-11 23:26:52 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, 5b66cf55-bc9d-4147-ae19-dabe7366b2fe, 2026-06-11 23:26:51.949011-04, 2026-06-11 23:26:51.949011-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'name__0': 'Snacks & Beverages', 'id__0': UUID('5b66cf55-bc9d-4147-ae19-dabe7366b2fe'), 'deleted__0': False, 'user_id__0': None, 'dept__0': 'general', 'parent_id__0': None, 'desc__0': 'Snacks and beverages', 'organization_id__0': None, 'name__1': 'Accessories & Electronics', 'id__1': UUID('8b01d12e-518c-440d-bd18-5f82d5741414'), 'deleted__1': False, 'user_id__1': None, 'dept__1': 'general', 'parent_id__1': None, 'desc__1': 'Electronic items', 'organization_id__1': None, 'name__2': 'Laundry, Clothing & Apparel', 'id__2': UUID('f4633640-618a-4f5e-8d95-daedf01fb9c0'), 'deleted__2': False, 'user_id__2': None, 'dept__2': 'general', 'parent_id__2': None, 'desc__2': 'Clothing and apparel', 'organization_id__2': None}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-11 23:26:52 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, faf1db22-b476-48eb-a0f2-4fd6e0e97812, 2026-06-11 23:26:52.142299-04, 2026-06-11 23:26:52.142299-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'name__0': 'Snacks & Beverages', 'id__0': UUID('faf1db22-b476-48eb-a0f2-4fd6e0e97812'), 'deleted__0': False, 'user_id__0': None, 'dept__0': 'general', 'parent_id__0': None, 'desc__0': 'Snacks and beverages', 'organization_id__0': None, 'name__1': 'Accessories & Electronics', 'id__1': UUID('59f00eb0-67e2-4ef2-ac94-62481a71f240'), 'deleted__1': False, 'user_id__1': None, 'dept__1': 'general', 'parent_id__1': None, 'desc__1': 'Electronic items', 'organization_id__1': None, 'name__2': 'Laundry, Clothing & Apparel', 'id__2': UUID('a7e299d6-b2f5-46b5-9d2e-cea83e52ff39'), 'deleted__2': False, 'user_id__2': None, 'dept__2': 'general', 'parent_id__2': None, 'desc__2': 'Clothing and apparel', 'organization_id__2': None}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-11 23:31:41 | ERROR    | app.services.redis_service | Redis init failed: Error 111 connecting to localhost:6379. Connection refused.
2026-06-11 23:31:41 | ERROR    | app.api.deps.storage | Failed to create Redis instance: Error 111 connecting to localhost:6379. Connection refused.
2026-06-11 23:31:41 | INFO     | app.api.deps.storage | App will continue without Redis
2026-06-11 23:36:53 | INFO     | main | Shutdown complete.
2026-06-11 23:36:53 | INFO     | main | Shutdown complete.
2026-06-11 23:36:53 | INFO     | main | Shutdown complete.
2026-06-11 23:36:53 | INFO     | main | Shutdown complete.
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'rediss://default:AaF5AAIncDE2ZWFhNGQzNTY1N2U0ZWE2OGIwYThiYzNhMmIzZDkzOHAxNDEzMzc@well-dassie-41337.upstash.io:6379/0'}
2026-06-11 23:37:00 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:37:01 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 23:37:01 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 23:37:02 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 23:37:02 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 23:37:02 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, f8be4ea8-6c45-4260-bd57-00abd8347555, 2026-06-11 23:37:02.439842-04, 2026-06-11 23:37:02.439842-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'deleted__0': False, 'dept__0': 'general', 'user_id__0': None, 'id__0': UUID('f8be4ea8-6c45-4260-bd57-00abd8347555'), 'desc__0': 'Snacks and beverages', 'name__0': 'Snacks & Beverages', 'organization_id__0': None, 'parent_id__0': None, 'deleted__1': False, 'dept__1': 'general', 'user_id__1': None, 'id__1': UUID('715b8ad4-7b9c-42a9-a0ce-559f4a32206c'), 'desc__1': 'Electronic items', 'name__1': 'Accessories & Electronics', 'organization_id__1': None, 'parent_id__1': None, 'deleted__2': False, 'dept__2': 'general', 'user_id__2': None, 'id__2': UUID('9e8b398e-65a2-4ad2-a653-c6a369b38aba'), 'desc__2': 'Clothing and apparel', 'name__2': 'Laundry, Clothing & Apparel', 'organization_id__2': None, 'parent_id__2': None}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-11 23:37:02 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, f0e9dc0d-70d7-4663-88d0-e129fa93fb04, 2026-06-11 23:37:02.537871-04, 2026-06-11 23:37:02.537871-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'deleted__0': False, 'dept__0': 'general', 'user_id__0': None, 'id__0': UUID('f0e9dc0d-70d7-4663-88d0-e129fa93fb04'), 'desc__0': 'Snacks and beverages', 'name__0': 'Snacks & Beverages', 'organization_id__0': None, 'parent_id__0': None, 'deleted__1': False, 'dept__1': 'general', 'user_id__1': None, 'id__1': UUID('ec286c20-1182-4b26-a12a-26924db8eb59'), 'desc__1': 'Electronic items', 'name__1': 'Accessories & Electronics', 'organization_id__1': None, 'parent_id__1': None, 'deleted__2': False, 'dept__2': 'general', 'user_id__2': None, 'id__2': UUID('17746e84-af14-495c-8293-231b3e7a6b24'), 'desc__2': 'Clothing and apparel', 'name__2': 'Laundry, Clothing & Apparel', 'organization_id__2': None, 'parent_id__2': None}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-11 23:37:02 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, 7dfe0b7b-c9ae-410f-a87e-34c045cd69aa, 2026-06-11 23:37:02.62931-04, 2026-06-11 23:37:02.62931-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'deleted__0': False, 'dept__0': 'general', 'user_id__0': None, 'id__0': UUID('7dfe0b7b-c9ae-410f-a87e-34c045cd69aa'), 'desc__0': 'Snacks and beverages', 'name__0': 'Snacks & Beverages', 'organization_id__0': None, 'parent_id__0': None, 'deleted__1': False, 'dept__1': 'general', 'user_id__1': None, 'id__1': UUID('2aec767b-6e55-4d7a-be0d-812c16ca906d'), 'desc__1': 'Electronic items', 'name__1': 'Accessories & Electronics', 'organization_id__1': None, 'parent_id__1': None, 'deleted__2': False, 'dept__2': 'general', 'user_id__2': None, 'id__2': UUID('ed2f49e6-2958-4a6f-9ebe-1be073f719bd'), 'desc__2': 'Clothing and apparel', 'name__2': 'Laundry, Clothing & Apparel', 'organization_id__2': None, 'parent_id__2': None}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-11 23:37:02 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, 15632cf9-118f-46ff-9b66-a16feddcfbb3, 2026-06-11 23:37:02.634452-04, 2026-06-11 23:37:02.634452-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'deleted__0': False, 'dept__0': 'general', 'user_id__0': None, 'id__0': UUID('15632cf9-118f-46ff-9b66-a16feddcfbb3'), 'desc__0': 'Snacks and beverages', 'name__0': 'Snacks & Beverages', 'organization_id__0': None, 'parent_id__0': None, 'deleted__1': False, 'dept__1': 'general', 'user_id__1': None, 'id__1': UUID('e9d9c7af-e8c0-4040-8834-5bd06b09f406'), 'desc__1': 'Electronic items', 'name__1': 'Accessories & Electronics', 'organization_id__1': None, 'parent_id__1': None, 'deleted__2': False, 'dept__2': 'general', 'user_id__2': None, 'id__2': UUID('009b5081-13c3-449e-937f-544350545a61'), 'desc__2': 'Clothing and apparel', 'name__2': 'Laundry, Clothing & Apparel', 'organization_id__2': None, 'parent_id__2': None}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-11 23:37:14 | ERROR    | app.services.redis_service | Redis init failed: Error 111 connecting to well-dassie-41337.upstash.io:6379. Connection refused.
2026-06-11 23:37:14 | ERROR    | app.api.deps.storage | Failed to create Redis instance: Error 111 connecting to well-dassie-41337.upstash.io:6379. Connection refused.
2026-06-11 23:37:14 | INFO     | app.api.deps.storage | App will continue without Redis
2026-06-11 23:37:19 | ERROR    | app.services.redis_service | Redis init failed: Error 111 connecting to well-dassie-41337.upstash.io:6379. Connection refused.
2026-06-11 23:37:19 | ERROR    | app.api.deps.storage | Failed to create Redis instance: Error 111 connecting to well-dassie-41337.upstash.io:6379. Connection refused.
2026-06-11 23:37:19 | INFO     | app.api.deps.storage | App will continue without Redis
2026-06-11 23:38:22 | ERROR    | app.services.redis_service | Redis init failed: Error 111 connecting to well-dassie-41337.upstash.io:6379. Connection refused.
2026-06-11 23:38:22 | ERROR    | app.api.deps.storage | Failed to create Redis instance: Error 111 connecting to well-dassie-41337.upstash.io:6379. Connection refused.
2026-06-11 23:38:22 | INFO     | app.api.deps.storage | App will continue without Redis
2026-06-11 23:38:33 | ERROR    | app.services.redis_service | Redis init failed: Error 111 connecting to well-dassie-41337.upstash.io:6379. Connection refused.
2026-06-11 23:38:33 | ERROR    | app.api.deps.storage | Failed to create Redis instance: Error 111 connecting to well-dassie-41337.upstash.io:6379. Connection refused.
2026-06-11 23:38:33 | INFO     | app.api.deps.storage | App will continue without Redis
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'rediss://default:AaF5AAIncDE2ZWFhNGQzNTY1N2U0ZWE2OGIwYThiYzNhMmIzZDkzOHAxNDEzMzc@well-dassie-41337.upstash.io:6379/0'}
2026-06-11 23:56:02 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-11 23:56:03 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 23:56:03 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 23:56:03 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 23:56:03 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, de5238cb-f101-42a7-98da-0586a264fe8e, 2026-06-11 23:56:03.542215-04, 2026-06-11 23:56:03.542215-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'parent_id__0': None, 'user_id__0': None, 'id__0': UUID('de5238cb-f101-42a7-98da-0586a264fe8e'), 'organization_id__0': None, 'desc__0': 'Snacks and beverages', 'dept__0': 'general', 'name__0': 'Snacks & Beverages', 'deleted__0': False, 'parent_id__1': None, 'user_id__1': None, 'id__1': UUID('25903087-18d9-4524-a653-fde3c0fb95cb'), 'organization_id__1': None, 'desc__1': 'Electronic items', 'dept__1': 'general', 'name__1': 'Accessories & Electronics', 'deleted__1': False, 'parent_id__2': None, 'user_id__2': None, 'id__2': UUID('70c6676f-6a3b-4a56-9d0c-051caae1f09e'), 'organization_id__2': None, 'desc__2': 'Clothing and apparel', 'dept__2': 'general', 'name__2': 'Laundry, Clothing & Apparel', 'deleted__2': False}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-11 23:56:03 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-11 23:56:03 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, db7d237b-3da3-43e0-afd5-d821e306ae37, 2026-06-11 23:56:03.570486-04, 2026-06-11 23:56:03.570486-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'parent_id__0': None, 'user_id__0': None, 'id__0': UUID('db7d237b-3da3-43e0-afd5-d821e306ae37'), 'organization_id__0': None, 'desc__0': 'Snacks and beverages', 'dept__0': 'general', 'name__0': 'Snacks & Beverages', 'deleted__0': False, 'parent_id__1': None, 'user_id__1': None, 'id__1': UUID('9132973d-cb11-4a7f-bb17-5636230e8836'), 'organization_id__1': None, 'desc__1': 'Electronic items', 'dept__1': 'general', 'name__1': 'Accessories & Electronics', 'deleted__1': False, 'parent_id__2': None, 'user_id__2': None, 'id__2': UUID('b308b34b-3308-4d3c-95b4-39782de94c40'), 'organization_id__2': None, 'desc__2': 'Clothing and apparel', 'dept__2': 'general', 'name__2': 'Laundry, Clothing & Apparel', 'deleted__2': False}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-11 23:56:03 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, b019ea37-0ff1-4f09-bfa7-e71fc353cd4a, 2026-06-11 23:56:03.66885-04, 2026-06-11 23:56:03.66885-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'parent_id__0': None, 'user_id__0': None, 'id__0': UUID('b019ea37-0ff1-4f09-bfa7-e71fc353cd4a'), 'organization_id__0': None, 'desc__0': 'Snacks and beverages', 'dept__0': 'general', 'name__0': 'Snacks & Beverages', 'deleted__0': False, 'parent_id__1': None, 'user_id__1': None, 'id__1': UUID('237f28c5-f758-442d-a99d-5a18e64c9e11'), 'organization_id__1': None, 'desc__1': 'Electronic items', 'dept__1': 'general', 'name__1': 'Accessories & Electronics', 'deleted__1': False, 'parent_id__2': None, 'user_id__2': None, 'id__2': UUID('98d8ba9d-8865-437d-bfeb-ccbca62ac5d3'), 'organization_id__2': None, 'desc__2': 'Clothing and apparel', 'dept__2': 'general', 'name__2': 'Laundry, Clothing & Apparel', 'deleted__2': False}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-11 23:56:03 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, 7093c95b-b248-4c30-94e1-0f827bd0f34f, 2026-06-11 23:56:03.743301-04, 2026-06-11 23:56:03.743301-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'parent_id__0': None, 'user_id__0': None, 'id__0': UUID('7093c95b-b248-4c30-94e1-0f827bd0f34f'), 'organization_id__0': None, 'desc__0': 'Snacks and beverages', 'dept__0': 'general', 'name__0': 'Snacks & Beverages', 'deleted__0': False, 'parent_id__1': None, 'user_id__1': None, 'id__1': UUID('a3e0a3a3-0470-43e6-816b-6ef4c8995d40'), 'organization_id__1': None, 'desc__1': 'Electronic items', 'dept__1': 'general', 'name__1': 'Accessories & Electronics', 'deleted__1': False, 'parent_id__2': None, 'user_id__2': None, 'id__2': UUID('33e3f7d8-bf09-4bb3-a2fd-3056f489db2b'), 'organization_id__2': None, 'desc__2': 'Clothing and apparel', 'dept__2': 'general', 'name__2': 'Laundry, Clothing & Apparel', 'deleted__2': False}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'rediss://default:AaF5AAIncDE2ZWFhNGQzNTY1N2U0ZWE2OGIwYThiYzNhMmIzZDkzOHAxNDEzMzc@well-dassie-41337.upstash.io:6379/0'}
2026-06-12 02:40:52 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-12 02:40:53 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-12 02:40:54 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-12 02:40:54 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-12 02:40:54 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-12 02:40:54 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, a848a30e-9643-47f7-a711-109ed9e4daf3, 2026-06-12 02:40:54.187438-04, 2026-06-12 02:40:54.187438-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'parent_id__0': None, 'dept__0': 'general', 'organization_id__0': None, 'id__0': UUID('a848a30e-9643-47f7-a711-109ed9e4daf3'), 'user_id__0': None, 'desc__0': 'Snacks and beverages', 'name__0': 'Snacks & Beverages', 'deleted__0': False, 'parent_id__1': None, 'dept__1': 'general', 'organization_id__1': None, 'id__1': UUID('0b14dd01-46da-42a0-bf3e-5de37456a785'), 'user_id__1': None, 'desc__1': 'Electronic items', 'name__1': 'Accessories & Electronics', 'deleted__1': False, 'parent_id__2': None, 'dept__2': 'general', 'organization_id__2': None, 'id__2': UUID('f0bc0ab5-8495-4f64-8ec2-46c59019dab5'), 'user_id__2': None, 'desc__2': 'Clothing and apparel', 'name__2': 'Laundry, Clothing & Apparel', 'deleted__2': False}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-12 02:40:54 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, f19bf3c6-9564-4853-a05f-aa9a870f946f, 2026-06-12 02:40:54.260577-04, 2026-06-12 02:40:54.260577-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'parent_id__0': None, 'dept__0': 'general', 'organization_id__0': None, 'id__0': UUID('f19bf3c6-9564-4853-a05f-aa9a870f946f'), 'user_id__0': None, 'desc__0': 'Snacks and beverages', 'name__0': 'Snacks & Beverages', 'deleted__0': False, 'parent_id__1': None, 'dept__1': 'general', 'organization_id__1': None, 'id__1': UUID('2da1f15a-7d7f-4ee8-95fa-917975c74859'), 'user_id__1': None, 'desc__1': 'Electronic items', 'name__1': 'Accessories & Electronics', 'deleted__1': False, 'parent_id__2': None, 'dept__2': 'general', 'organization_id__2': None, 'id__2': UUID('97744186-56eb-4d37-ba1c-b48b8de360f4'), 'user_id__2': None, 'desc__2': 'Clothing and apparel', 'name__2': 'Laundry, Clothing & Apparel', 'deleted__2': False}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-12 02:40:54 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, 5ebc000b-79a3-4a8a-a25e-18fce1c30d75, 2026-06-12 02:40:54.175722-04, 2026-06-12 02:40:54.175722-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'parent_id__0': None, 'dept__0': 'general', 'organization_id__0': None, 'id__0': UUID('5ebc000b-79a3-4a8a-a25e-18fce1c30d75'), 'user_id__0': None, 'desc__0': 'Snacks and beverages', 'name__0': 'Snacks & Beverages', 'deleted__0': False, 'parent_id__1': None, 'dept__1': 'general', 'organization_id__1': None, 'id__1': UUID('6a4717a6-0cb8-426b-a042-d6fb95dc7d70'), 'user_id__1': None, 'desc__1': 'Electronic items', 'name__1': 'Accessories & Electronics', 'deleted__1': False, 'parent_id__2': None, 'dept__2': 'general', 'organization_id__2': None, 'id__2': UUID('340272f4-cc3a-461f-b044-b5a7364b828d'), 'user_id__2': None, 'desc__2': 'Clothing and apparel', 'name__2': 'Laundry, Clothing & Apparel', 'deleted__2': False}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-12 02:40:54 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, d3c7e414-facb-47d2-b429-15ee9c8420e6, 2026-06-12 02:40:54.273613-04, 2026-06-12 02:40:54.273613-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'parent_id__0': None, 'dept__0': 'general', 'organization_id__0': None, 'id__0': UUID('d3c7e414-facb-47d2-b429-15ee9c8420e6'), 'user_id__0': None, 'desc__0': 'Snacks and beverages', 'name__0': 'Snacks & Beverages', 'deleted__0': False, 'parent_id__1': None, 'dept__1': 'general', 'organization_id__1': None, 'id__1': UUID('c018f8e6-9821-4716-beca-49ea6684b680'), 'user_id__1': None, 'desc__1': 'Electronic items', 'name__1': 'Accessories & Electronics', 'deleted__1': False, 'parent_id__2': None, 'dept__2': 'general', 'organization_id__2': None, 'id__2': UUID('a1de59d4-f649-485c-a6f0-9a7c60ff6512'), 'user_id__2': None, 'desc__2': 'Clothing and apparel', 'name__2': 'Laundry, Clothing & Apparel', 'deleted__2': False}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'rediss://default:AaF5AAIncDE2ZWFhNGQzNTY1N2U0ZWE2OGIwYThiYzNhMmIzZDkzOHAxNDEzMzc@well-dassie-41337.upstash.io:6379/0'}
2026-06-12 02:55:16 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-12 02:55:18 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-12 02:55:18 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-12 02:55:18 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-12 02:55:18 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-12 02:55:18 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, 27d52c38-a921-4dc4-8977-0e68abe4749a, 2026-06-12 02:55:18.397639-04, 2026-06-12 02:55:18.397639-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'user_id__0': None, 'deleted__0': False, 'desc__0': 'Snacks and beverages', 'name__0': 'Snacks & Beverages', 'dept__0': 'general', 'organization_id__0': None, 'id__0': UUID('27d52c38-a921-4dc4-8977-0e68abe4749a'), 'parent_id__0': None, 'user_id__1': None, 'deleted__1': False, 'desc__1': 'Electronic items', 'name__1': 'Accessories & Electronics', 'dept__1': 'general', 'organization_id__1': None, 'id__1': UUID('4244924e-2c50-44eb-969e-cb9be4d12dc9'), 'parent_id__1': None, 'user_id__2': None, 'deleted__2': False, 'desc__2': 'Clothing and apparel', 'name__2': 'Laundry, Clothing & Apparel', 'dept__2': 'general', 'organization_id__2': None, 'id__2': UUID('acba8928-7827-4150-8def-de6bb19e3cc3'), 'parent_id__2': None}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-12 02:55:18 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, 9da664e4-3dd8-4b8c-9740-95cd940699f0, 2026-06-12 02:55:18.405119-04, 2026-06-12 02:55:18.405119-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'user_id__0': None, 'deleted__0': False, 'desc__0': 'Snacks and beverages', 'name__0': 'Snacks & Beverages', 'dept__0': 'general', 'organization_id__0': None, 'id__0': UUID('9da664e4-3dd8-4b8c-9740-95cd940699f0'), 'parent_id__0': None, 'user_id__1': None, 'deleted__1': False, 'desc__1': 'Electronic items', 'name__1': 'Accessories & Electronics', 'dept__1': 'general', 'organization_id__1': None, 'id__1': UUID('5dd3f7d6-0ed8-4528-a126-714e8cba7757'), 'parent_id__1': None, 'user_id__2': None, 'deleted__2': False, 'desc__2': 'Clothing and apparel', 'name__2': 'Laundry, Clothing & Apparel', 'dept__2': 'general', 'organization_id__2': None, 'id__2': UUID('3c29de38-6cf6-4ebf-9a5d-675dc3c1eda3'), 'parent_id__2': None}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-12 02:55:18 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, bdb44fb7-36ad-4793-b96f-0ed3145ca974, 2026-06-12 02:55:18.502125-04, 2026-06-12 02:55:18.502125-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'user_id__0': None, 'deleted__0': False, 'desc__0': 'Snacks and beverages', 'name__0': 'Snacks & Beverages', 'dept__0': 'general', 'organization_id__0': None, 'id__0': UUID('bdb44fb7-36ad-4793-b96f-0ed3145ca974'), 'parent_id__0': None, 'user_id__1': None, 'deleted__1': False, 'desc__1': 'Electronic items', 'name__1': 'Accessories & Electronics', 'dept__1': 'general', 'organization_id__1': None, 'id__1': UUID('e7afd282-1a0f-4aa4-aa26-385f5de0adb3'), 'parent_id__1': None, 'user_id__2': None, 'deleted__2': False, 'desc__2': 'Clothing and apparel', 'name__2': 'Laundry, Clothing & Apparel', 'dept__2': 'general', 'organization_id__2': None, 'id__2': UUID('36458fe6-0d69-4e55-ab64-2e345030b4b3'), 'parent_id__2': None}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-12 02:55:18 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, 3e37ff39-1a37-45a1-9877-3a941a35a72a, 2026-06-12 02:55:18.656785-04, 2026-06-12 02:55:18.656785-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'user_id__0': None, 'deleted__0': False, 'desc__0': 'Snacks and beverages', 'name__0': 'Snacks & Beverages', 'dept__0': 'general', 'organization_id__0': None, 'id__0': UUID('3e37ff39-1a37-45a1-9877-3a941a35a72a'), 'parent_id__0': None, 'user_id__1': None, 'deleted__1': False, 'desc__1': 'Electronic items', 'name__1': 'Accessories & Electronics', 'dept__1': 'general', 'organization_id__1': None, 'id__1': UUID('560f4a5f-fd8f-426f-ba2c-c6129f6e200b'), 'parent_id__1': None, 'user_id__2': None, 'deleted__2': False, 'desc__2': 'Clothing and apparel', 'name__2': 'Laundry, Clothing & Apparel', 'dept__2': 'general', 'organization_id__2': None, 'id__2': UUID('e5604a06-aa6a-41b4-ac0d-59dead8f4016'), 'parent_id__2': None}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'rediss://default:AaF5AAIncDE2ZWFhNGQzNTY1N2U0ZWE2OGIwYThiYzNhMmIzZDkzOHAxNDEzMzc@well-dassie-41337.upstash.io:6379/0'}
2026-06-12 03:40:40 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-12 03:40:42 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-12 03:40:42 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-12 03:40:42 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-12 03:40:42 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-12 03:40:42 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, 273a1214-0819-4e38-8f8e-13d698de3db4, 2026-06-12 03:40:42.660053-04, 2026-06-12 03:40:42.660053-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'name__0': 'Snacks & Beverages', 'organization_id__0': None, 'user_id__0': None, 'parent_id__0': None, 'deleted__0': False, 'desc__0': 'Snacks and beverages', 'dept__0': 'general', 'id__0': UUID('273a1214-0819-4e38-8f8e-13d698de3db4'), 'name__1': 'Accessories & Electronics', 'organization_id__1': None, 'user_id__1': None, 'parent_id__1': None, 'deleted__1': False, 'desc__1': 'Electronic items', 'dept__1': 'general', 'id__1': UUID('3ab56ba1-fc88-455a-88f8-b71c60f33111'), 'name__2': 'Laundry, Clothing & Apparel', 'organization_id__2': None, 'user_id__2': None, 'parent_id__2': None, 'deleted__2': False, 'desc__2': 'Clothing and apparel', 'dept__2': 'general', 'id__2': UUID('33008f27-c7a1-4fcf-b12e-c05a6bb48710')}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-12 03:40:42 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, c7269bd8-720e-4bce-8f11-949020a61bf2, 2026-06-12 03:40:42.660957-04, 2026-06-12 03:40:42.660957-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'name__0': 'Snacks & Beverages', 'organization_id__0': None, 'user_id__0': None, 'parent_id__0': None, 'deleted__0': False, 'desc__0': 'Snacks and beverages', 'dept__0': 'general', 'id__0': UUID('c7269bd8-720e-4bce-8f11-949020a61bf2'), 'name__1': 'Accessories & Electronics', 'organization_id__1': None, 'user_id__1': None, 'parent_id__1': None, 'deleted__1': False, 'desc__1': 'Electronic items', 'dept__1': 'general', 'id__1': UUID('769f46ba-16c6-496a-b463-21742103eac8'), 'name__2': 'Laundry, Clothing & Apparel', 'organization_id__2': None, 'user_id__2': None, 'parent_id__2': None, 'deleted__2': False, 'desc__2': 'Clothing and apparel', 'dept__2': 'general', 'id__2': UUID('aa05171e-9a85-4519-b129-b5cdc768f9a5')}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-12 03:40:42 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, 005d2dec-b2d2-444d-9e25-1319f92b70f9, 2026-06-12 03:40:42.669459-04, 2026-06-12 03:40:42.669459-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'name__0': 'Snacks & Beverages', 'organization_id__0': None, 'user_id__0': None, 'parent_id__0': None, 'deleted__0': False, 'desc__0': 'Snacks and beverages', 'dept__0': 'general', 'id__0': UUID('005d2dec-b2d2-444d-9e25-1319f92b70f9'), 'name__1': 'Accessories & Electronics', 'organization_id__1': None, 'user_id__1': None, 'parent_id__1': None, 'deleted__1': False, 'desc__1': 'Electronic items', 'dept__1': 'general', 'id__1': UUID('4f9d15ce-3dc8-40a2-b8f0-dac399a39cbd'), 'name__2': 'Laundry, Clothing & Apparel', 'organization_id__2': None, 'user_id__2': None, 'parent_id__2': None, 'deleted__2': False, 'desc__2': 'Clothing and apparel', 'dept__2': 'general', 'id__2': UUID('1e814321-41ad-46a3-aac0-bbac14cf9fb5')}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-12 03:40:42 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, 38fb4ca8-1527-43e5-aba7-4bad30e40c75, 2026-06-12 03:40:42.762177-04, 2026-06-12 03:40:42.762177-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'name__0': 'Snacks & Beverages', 'organization_id__0': None, 'user_id__0': None, 'parent_id__0': None, 'deleted__0': False, 'desc__0': 'Snacks and beverages', 'dept__0': 'general', 'id__0': UUID('38fb4ca8-1527-43e5-aba7-4bad30e40c75'), 'name__1': 'Accessories & Electronics', 'organization_id__1': None, 'user_id__1': None, 'parent_id__1': None, 'deleted__1': False, 'desc__1': 'Electronic items', 'dept__1': 'general', 'id__1': UUID('01405823-f9d6-4e71-b7ff-91d2450869df'), 'name__2': 'Laundry, Clothing & Apparel', 'organization_id__2': None, 'user_id__2': None, 'parent_id__2': None, 'deleted__2': False, 'desc__2': 'Clothing and apparel', 'dept__2': 'general', 'id__2': UUID('e320bb3a-dd1d-4a38-8aaf-73848eab12da')}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'rediss://default:AaF5AAIncDE2ZWFhNGQzNTY1N2U0ZWE2OGIwYThiYzNhMmIzZDkzOHAxNDEzMzc@well-dassie-41337.upstash.io:6379/0'}
2026-06-12 03:55:49 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-12 03:55:50 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-12 03:55:50 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-12 03:55:50 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-12 03:55:50 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-12 03:55:50 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, 35772ca5-49fe-4af1-bf29-b7183d437beb, 2026-06-12 03:55:50.347423-04, 2026-06-12 03:55:50.347423-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'organization_id__0': None, 'parent_id__0': None, 'deleted__0': False, 'dept__0': 'general', 'name__0': 'Snacks & Beverages', 'id__0': UUID('35772ca5-49fe-4af1-bf29-b7183d437beb'), 'user_id__0': None, 'desc__0': 'Snacks and beverages', 'organization_id__1': None, 'parent_id__1': None, 'deleted__1': False, 'dept__1': 'general', 'name__1': 'Accessories & Electronics', 'id__1': UUID('04b54840-3245-4bea-a203-54e4cab2640c'), 'user_id__1': None, 'desc__1': 'Electronic items', 'organization_id__2': None, 'parent_id__2': None, 'deleted__2': False, 'dept__2': 'general', 'name__2': 'Laundry, Clothing & Apparel', 'id__2': UUID('cd269419-8d68-4d48-98ab-7df42860be61'), 'user_id__2': None, 'desc__2': 'Clothing and apparel'}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-12 03:55:50 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, a8fc879b-5c1b-45ca-a7ac-3193be757b91, 2026-06-12 03:55:50.377188-04, 2026-06-12 03:55:50.377188-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'organization_id__0': None, 'parent_id__0': None, 'deleted__0': False, 'dept__0': 'general', 'name__0': 'Snacks & Beverages', 'id__0': UUID('a8fc879b-5c1b-45ca-a7ac-3193be757b91'), 'user_id__0': None, 'desc__0': 'Snacks and beverages', 'organization_id__1': None, 'parent_id__1': None, 'deleted__1': False, 'dept__1': 'general', 'name__1': 'Accessories & Electronics', 'id__1': UUID('0c125454-0304-474b-9a24-9c866215196c'), 'user_id__1': None, 'desc__1': 'Electronic items', 'organization_id__2': None, 'parent_id__2': None, 'deleted__2': False, 'dept__2': 'general', 'name__2': 'Laundry, Clothing & Apparel', 'id__2': UUID('64b5fcf3-10a4-4991-9c05-f001b538a3e2'), 'user_id__2': None, 'desc__2': 'Clothing and apparel'}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-12 03:55:50 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, b9e9fb86-2484-4425-bb58-56545740da1e, 2026-06-12 03:55:50.470828-04, 2026-06-12 03:55:50.470828-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'organization_id__0': None, 'parent_id__0': None, 'deleted__0': False, 'dept__0': 'general', 'name__0': 'Snacks & Beverages', 'id__0': UUID('b9e9fb86-2484-4425-bb58-56545740da1e'), 'user_id__0': None, 'desc__0': 'Snacks and beverages', 'organization_id__1': None, 'parent_id__1': None, 'deleted__1': False, 'dept__1': 'general', 'name__1': 'Accessories & Electronics', 'id__1': UUID('ac643ae1-d7f2-4647-8b93-d816c28493c3'), 'user_id__1': None, 'desc__1': 'Electronic items', 'organization_id__2': None, 'parent_id__2': None, 'deleted__2': False, 'dept__2': 'general', 'name__2': 'Laundry, Clothing & Apparel', 'id__2': UUID('d60e8b0c-e24a-4d76-a449-692f30f7cfb9'), 'user_id__2': None, 'desc__2': 'Clothing and apparel'}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-12 03:55:50 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, 5ec83a90-c871-4685-8d29-c487e6fd173e, 2026-06-12 03:55:50.472104-04, 2026-06-12 03:55:50.472104-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'organization_id__0': None, 'parent_id__0': None, 'deleted__0': False, 'dept__0': 'general', 'name__0': 'Snacks & Beverages', 'id__0': UUID('5ec83a90-c871-4685-8d29-c487e6fd173e'), 'user_id__0': None, 'desc__0': 'Snacks and beverages', 'organization_id__1': None, 'parent_id__1': None, 'deleted__1': False, 'dept__1': 'general', 'name__1': 'Accessories & Electronics', 'id__1': UUID('abde6fb8-5cad-489a-87d5-a865ea2334b5'), 'user_id__1': None, 'desc__1': 'Electronic items', 'organization_id__2': None, 'parent_id__2': None, 'deleted__2': False, 'dept__2': 'general', 'name__2': 'Laundry, Clothing & Apparel', 'id__2': UUID('d4358e8a-c59c-4e7d-b782-f11ac1c6cf55'), 'user_id__2': None, 'desc__2': 'Clothing and apparel'}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-12 05:10:40 | ERROR    | app.services.redis_service | Redis init failed: Error 111 connecting to well-dassie-41337.upstash.io:6379. Connection refused.
2026-06-12 05:10:40 | ERROR    | app.api.deps.storage | Failed to create Redis instance: Error 111 connecting to well-dassie-41337.upstash.io:6379. Connection refused.
2026-06-12 05:10:40 | INFO     | app.api.deps.storage | App will continue without Redis
2026-06-12 05:21:03 | ERROR    | app.services.redis_service | Redis init failed: Error 111 connecting to well-dassie-41337.upstash.io:6379. Connection refused.
2026-06-12 05:21:03 | ERROR    | app.api.deps.storage | Failed to create Redis instance: Error 111 connecting to well-dassie-41337.upstash.io:6379. Connection refused.
2026-06-12 05:21:03 | INFO     | app.api.deps.storage | App will continue without Redis
2026-06-13 02:40:45 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'rediss://default:AaF5AAIncDE2ZWFhNGQzNTY1N2U0ZWE2OGIwYThiYzNhMmIzZDkzOHAxNDEzMzc@well-dassie-41337.upstash.io:6379/0'}
2026-06-13 02:40:46 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-13 02:40:46 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-13 02:40:47 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-13 02:40:47 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-13 02:40:47 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, 19e57a2b-2982-4abd-9adc-ed0460b99b7e, 2026-06-13 02:40:47.079581-04, 2026-06-13 02:40:47.079581-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'name__0': 'Snacks & Beverages', 'dept__0': 'general', 'id__0': UUID('19e57a2b-2982-4abd-9adc-ed0460b99b7e'), 'user_id__0': None, 'desc__0': 'Snacks and beverages', 'organization_id__0': None, 'deleted__0': False, 'parent_id__0': None, 'name__1': 'Accessories & Electronics', 'dept__1': 'general', 'id__1': UUID('40589534-66e4-41d8-994a-2037cf0ce245'), 'user_id__1': None, 'desc__1': 'Electronic items', 'organization_id__1': None, 'deleted__1': False, 'parent_id__1': None, 'name__2': 'Laundry, Clothing & Apparel', 'dept__2': 'general', 'id__2': UUID('4664b830-705a-4477-abdc-f0d764a49245'), 'user_id__2': None, 'desc__2': 'Clothing and apparel', 'organization_id__2': None, 'deleted__2': False, 'parent_id__2': None}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-13 02:40:47 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, bec9e381-fa53-429e-9a3a-4bc66f8c48b0, 2026-06-13 02:40:47.179099-04, 2026-06-13 02:40:47.179099-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'name__0': 'Snacks & Beverages', 'dept__0': 'general', 'id__0': UUID('bec9e381-fa53-429e-9a3a-4bc66f8c48b0'), 'user_id__0': None, 'desc__0': 'Snacks and beverages', 'organization_id__0': None, 'deleted__0': False, 'parent_id__0': None, 'name__1': 'Accessories & Electronics', 'dept__1': 'general', 'id__1': UUID('888497e8-88bf-4697-bb77-995773c5b787'), 'user_id__1': None, 'desc__1': 'Electronic items', 'organization_id__1': None, 'deleted__1': False, 'parent_id__1': None, 'name__2': 'Laundry, Clothing & Apparel', 'dept__2': 'general', 'id__2': UUID('36384387-3582-49b7-92f7-e8ba23660309'), 'user_id__2': None, 'desc__2': 'Clothing and apparel', 'organization_id__2': None, 'deleted__2': False, 'parent_id__2': None}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-13 02:40:47 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, 6bfe456b-435d-4cc2-8306-e295d32e1b40, 2026-06-13 02:40:47.191305-04, 2026-06-13 02:40:47.191305-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'name__0': 'Snacks & Beverages', 'dept__0': 'general', 'id__0': UUID('6bfe456b-435d-4cc2-8306-e295d32e1b40'), 'user_id__0': None, 'desc__0': 'Snacks and beverages', 'organization_id__0': None, 'deleted__0': False, 'parent_id__0': None, 'name__1': 'Accessories & Electronics', 'dept__1': 'general', 'id__1': UUID('cf08b307-451b-4e1b-9e35-1986ee8ceaa4'), 'user_id__1': None, 'desc__1': 'Electronic items', 'organization_id__1': None, 'deleted__1': False, 'parent_id__1': None, 'name__2': 'Laundry, Clothing & Apparel', 'dept__2': 'general', 'id__2': UUID('acfa922e-5282-4266-a388-0a1388d0a6ca'), 'user_id__2': None, 'desc__2': 'Clothing and apparel', 'organization_id__2': None, 'deleted__2': False, 'parent_id__2': None}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-13 02:40:47 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, 4e3f7134-0083-46c8-8716-da51137db2a3, 2026-06-13 02:40:47.269517-04, 2026-06-13 02:40:47.269517-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'name__0': 'Snacks & Beverages', 'dept__0': 'general', 'id__0': UUID('4e3f7134-0083-46c8-8716-da51137db2a3'), 'user_id__0': None, 'desc__0': 'Snacks and beverages', 'organization_id__0': None, 'deleted__0': False, 'parent_id__0': None, 'name__1': 'Accessories & Electronics', 'dept__1': 'general', 'id__1': UUID('4c668c0b-6633-43aa-8587-f5bbcb16beb3'), 'user_id__1': None, 'desc__1': 'Electronic items', 'organization_id__1': None, 'deleted__1': False, 'parent_id__1': None, 'name__2': 'Laundry, Clothing & Apparel', 'dept__2': 'general', 'id__2': UUID('c93a49e3-fdd9-43f1-bcc1-3e56410adf69'), 'user_id__2': None, 'desc__2': 'Clothing and apparel', 'organization_id__2': None, 'deleted__2': False, 'parent_id__2': None}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'rediss://default:AaF5AAIncDE2ZWFhNGQzNTY1N2U0ZWE2OGIwYThiYzNhMmIzZDkzOHAxNDEzMzc@well-dassie-41337.upstash.io:6379/0'}
2026-06-13 02:55:19 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-13 02:55:20 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-13 02:55:20 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-13 02:55:20 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-13 02:55:20 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, 05aa1505-416d-43d0-bf56-ee947654420b, 2026-06-13 02:55:20.586207-04, 2026-06-13 02:55:20.586207-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'name__0': 'Snacks & Beverages', 'organization_id__0': None, 'user_id__0': None, 'id__0': UUID('05aa1505-416d-43d0-bf56-ee947654420b'), 'deleted__0': False, 'dept__0': 'general', 'parent_id__0': None, 'desc__0': 'Snacks and beverages', 'name__1': 'Accessories & Electronics', 'organization_id__1': None, 'user_id__1': None, 'id__1': UUID('47ed593e-4987-4d3e-a519-b01740f6c083'), 'deleted__1': False, 'dept__1': 'general', 'parent_id__1': None, 'desc__1': 'Electronic items', 'name__2': 'Laundry, Clothing & Apparel', 'organization_id__2': None, 'user_id__2': None, 'id__2': UUID('eca291bf-04be-4d3e-b186-104d2e86f5e0'), 'deleted__2': False, 'dept__2': 'general', 'parent_id__2': None, 'desc__2': 'Clothing and apparel'}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-13 02:55:20 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, 10343c6b-d5ab-41bb-a3ab-fbb6ef809ec7, 2026-06-13 02:55:20.642531-04, 2026-06-13 02:55:20.642531-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'name__0': 'Snacks & Beverages', 'organization_id__0': None, 'user_id__0': None, 'id__0': UUID('10343c6b-d5ab-41bb-a3ab-fbb6ef809ec7'), 'deleted__0': False, 'dept__0': 'general', 'parent_id__0': None, 'desc__0': 'Snacks and beverages', 'name__1': 'Accessories & Electronics', 'organization_id__1': None, 'user_id__1': None, 'id__1': UUID('b1805f93-cb94-4fbe-855a-fcd9977011e9'), 'deleted__1': False, 'dept__1': 'general', 'parent_id__1': None, 'desc__1': 'Electronic items', 'name__2': 'Laundry, Clothing & Apparel', 'organization_id__2': None, 'user_id__2': None, 'id__2': UUID('608cb4d5-5645-4c78-b296-c0e720d31f93'), 'deleted__2': False, 'dept__2': 'general', 'parent_id__2': None, 'desc__2': 'Clothing and apparel'}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-13 02:55:20 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-13 02:55:20 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, 44f70e74-ceee-4981-9132-e47d379e64a1, 2026-06-13 02:55:20.766285-04, 2026-06-13 02:55:20.766285-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'name__0': 'Snacks & Beverages', 'organization_id__0': None, 'user_id__0': None, 'id__0': UUID('44f70e74-ceee-4981-9132-e47d379e64a1'), 'deleted__0': False, 'dept__0': 'general', 'parent_id__0': None, 'desc__0': 'Snacks and beverages', 'name__1': 'Accessories & Electronics', 'organization_id__1': None, 'user_id__1': None, 'id__1': UUID('91d8f6af-4787-49dc-9ddd-e2c811407b35'), 'deleted__1': False, 'dept__1': 'general', 'parent_id__1': None, 'desc__1': 'Electronic items', 'name__2': 'Laundry, Clothing & Apparel', 'organization_id__2': None, 'user_id__2': None, 'id__2': UUID('9d82ea6e-5bde-4e84-bba4-83d4108d5ea2'), 'deleted__2': False, 'dept__2': 'general', 'parent_id__2': None, 'desc__2': 'Clothing and apparel'}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-13 02:55:20 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, 68f0d34c-6640-4321-8052-223f84bafc11, 2026-06-13 02:55:20.852115-04, 2026-06-13 02:55:20.852115-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'name__0': 'Snacks & Beverages', 'organization_id__0': None, 'user_id__0': None, 'id__0': UUID('68f0d34c-6640-4321-8052-223f84bafc11'), 'deleted__0': False, 'dept__0': 'general', 'parent_id__0': None, 'desc__0': 'Snacks and beverages', 'name__1': 'Accessories & Electronics', 'organization_id__1': None, 'user_id__1': None, 'id__1': UUID('2c49e493-d204-40c9-9f5e-66cd1f4e35d8'), 'deleted__1': False, 'dept__1': 'general', 'parent_id__1': None, 'desc__1': 'Electronic items', 'name__2': 'Laundry, Clothing & Apparel', 'organization_id__2': None, 'user_id__2': None, 'id__2': UUID('383064a9-a04b-4966-a166-d66b0c51d8e9'), 'deleted__2': False, 'dept__2': 'general', 'parent_id__2': None, 'desc__2': 'Clothing and apparel'}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'rediss://default:AaF5AAIncDE2ZWFhNGQzNTY1N2U0ZWE2OGIwYThiYzNhMmIzZDkzOHAxNDEzMzc@well-dassie-41337.upstash.io:6379/0'}
2026-06-13 03:40:32 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-13 03:40:33 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-13 03:40:33 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-13 03:40:33 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-13 03:40:33 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-13 03:40:33 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, f7d143dd-fa0a-48f0-bf5b-5992327b485a, 2026-06-13 03:40:33.872793-04, 2026-06-13 03:40:33.872793-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'id__0': UUID('f7d143dd-fa0a-48f0-bf5b-5992327b485a'), 'name__0': 'Snacks & Beverages', 'parent_id__0': None, 'dept__0': 'general', 'deleted__0': False, 'user_id__0': None, 'desc__0': 'Snacks and beverages', 'organization_id__0': None, 'id__1': UUID('96eb946a-52e6-4107-b5bf-e0541d455201'), 'name__1': 'Accessories & Electronics', 'parent_id__1': None, 'dept__1': 'general', 'deleted__1': False, 'user_id__1': None, 'desc__1': 'Electronic items', 'organization_id__1': None, 'id__2': UUID('c2b4b52e-9758-420b-a4a3-2c0cf9bd948c'), 'name__2': 'Laundry, Clothing & Apparel', 'parent_id__2': None, 'dept__2': 'general', 'deleted__2': False, 'user_id__2': None, 'desc__2': 'Clothing and apparel', 'organization_id__2': None}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-13 03:40:33 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, 1694e31a-33f5-4750-bf44-691129b5c869, 2026-06-13 03:40:33.869175-04, 2026-06-13 03:40:33.869175-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'id__0': UUID('1694e31a-33f5-4750-bf44-691129b5c869'), 'name__0': 'Snacks & Beverages', 'parent_id__0': None, 'dept__0': 'general', 'deleted__0': False, 'user_id__0': None, 'desc__0': 'Snacks and beverages', 'organization_id__0': None, 'id__1': UUID('e0601fbb-6e44-4656-a0b1-88cce689d9e0'), 'name__1': 'Accessories & Electronics', 'parent_id__1': None, 'dept__1': 'general', 'deleted__1': False, 'user_id__1': None, 'desc__1': 'Electronic items', 'organization_id__1': None, 'id__2': UUID('557c6962-39c2-4509-8414-52e43f8a4aa7'), 'name__2': 'Laundry, Clothing & Apparel', 'parent_id__2': None, 'dept__2': 'general', 'deleted__2': False, 'user_id__2': None, 'desc__2': 'Clothing and apparel', 'organization_id__2': None}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-13 03:40:34 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, 5e647a37-cbe0-459e-86e5-cdd5742c5a2c, 2026-06-13 03:40:33.995554-04, 2026-06-13 03:40:33.995554-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'id__0': UUID('5e647a37-cbe0-459e-86e5-cdd5742c5a2c'), 'name__0': 'Snacks & Beverages', 'parent_id__0': None, 'dept__0': 'general', 'deleted__0': False, 'user_id__0': None, 'desc__0': 'Snacks and beverages', 'organization_id__0': None, 'id__1': UUID('4fc73bf9-a2c7-41f2-86d6-072f09351a35'), 'name__1': 'Accessories & Electronics', 'parent_id__1': None, 'dept__1': 'general', 'deleted__1': False, 'user_id__1': None, 'desc__1': 'Electronic items', 'organization_id__1': None, 'id__2': UUID('62b45c35-2e01-488a-8dd6-078d83bace44'), 'name__2': 'Laundry, Clothing & Apparel', 'parent_id__2': None, 'dept__2': 'general', 'deleted__2': False, 'user_id__2': None, 'desc__2': 'Clothing and apparel', 'organization_id__2': None}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-13 03:40:34 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, a2e6ef36-ec0d-4916-bede-425a640721b0, 2026-06-13 03:40:34.00393-04, 2026-06-13 03:40:34.00393-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'id__0': UUID('a2e6ef36-ec0d-4916-bede-425a640721b0'), 'name__0': 'Snacks & Beverages', 'parent_id__0': None, 'dept__0': 'general', 'deleted__0': False, 'user_id__0': None, 'desc__0': 'Snacks and beverages', 'organization_id__0': None, 'id__1': UUID('72e9b1ec-ef17-4159-8938-63dd65a0aecf'), 'name__1': 'Accessories & Electronics', 'parent_id__1': None, 'dept__1': 'general', 'deleted__1': False, 'user_id__1': None, 'desc__1': 'Electronic items', 'organization_id__1': None, 'id__2': UUID('76432311-a1e3-4892-925e-319f295f0766'), 'name__2': 'Laundry, Clothing & Apparel', 'parent_id__2': None, 'dept__2': 'general', 'deleted__2': False, 'user_id__2': None, 'desc__2': 'Clothing and apparel', 'organization_id__2': None}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
Loaded settings: {'auth_jwt_secret_key': 'CHANGE_ME_SUPER_SECRET_KEY_IMF_2025', 'jwt_algorithm': 'HS256', 'access_token_expire_minutes': 1440, 'refresh_token_expire_minutes': 10080, 'site_name': 'IMF - Inventory Management', 'site_description': 'Dunis Inventory Management System', 'api_version': '1.0.0', 'api_prefix': '/api/v1', 'frontend_url': 'https://inventory.dunistech.ng', 'filesystem_base_path': './uploads', 'development_mode': False, 'port': 8002, 'domain': 'inventory-api.simplylovely.ng', 'database_url': 'postgresql://simpdinr:PZziNGCDSThq@localhost:5432/simpdinr_inventory_database', 'redis_url': 'rediss://default:AaF5AAIncDE2ZWFhNGQzNTY1N2U0ZWE2OGIwYThiYzNhMmIzZDkzOHAxNDEzMzc@well-dassie-41337.upstash.io:6379/0'}
2026-06-13 03:55:29 | INFO     | main | CORS allowed origins: ['http://localhost:5173', 'http://localhost:3000', 'https://inventory.dunistech.ng', 'https://www.inventory.dunistech.ng']
2026-06-13 03:55:30 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-13 03:55:30 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-13 03:55:30 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, 9de1cbd7-8ad7-4476-b192-3c7d10e74f81, 2026-06-13 03:55:30.476583-04, 2026-06-13 03:55:30.476583-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'organization_id__0': None, 'desc__0': 'Snacks and beverages', 'id__0': UUID('9de1cbd7-8ad7-4476-b192-3c7d10e74f81'), 'parent_id__0': None, 'user_id__0': None, 'dept__0': 'general', 'deleted__0': False, 'name__0': 'Snacks & Beverages', 'organization_id__1': None, 'desc__1': 'Electronic items', 'id__1': UUID('e208927e-f06b-40e2-8955-401969714343'), 'parent_id__1': None, 'user_id__1': None, 'dept__1': 'general', 'deleted__1': False, 'name__1': 'Accessories & Electronics', 'organization_id__2': None, 'desc__2': 'Clothing and apparel', 'id__2': UUID('669311c4-5980-41d0-bac7-d9fc57acba3c'), 'parent_id__2': None, 'user_id__2': None, 'dept__2': 'general', 'deleted__2': False, 'name__2': 'Laundry, Clothing & Apparel'}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-13 03:55:30 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-13 03:55:30 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, 4f5b1651-8b9a-4740-85f1-31a011cc82be, 2026-06-13 03:55:30.591871-04, 2026-06-13 03:55:30.591871-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'organization_id__0': None, 'desc__0': 'Snacks and beverages', 'id__0': UUID('4f5b1651-8b9a-4740-85f1-31a011cc82be'), 'parent_id__0': None, 'user_id__0': None, 'dept__0': 'general', 'deleted__0': False, 'name__0': 'Snacks & Beverages', 'organization_id__1': None, 'desc__1': 'Electronic items', 'id__1': UUID('1a3da8e8-1c6a-4ced-94da-dbd65594f84e'), 'parent_id__1': None, 'user_id__1': None, 'dept__1': 'general', 'deleted__1': False, 'name__1': 'Accessories & Electronics', 'organization_id__2': None, 'desc__2': 'Clothing and apparel', 'id__2': UUID('ccab71ec-bcdc-4e86-ab76-fb1112f51557'), 'parent_id__2': None, 'user_id__2': None, 'dept__2': 'general', 'deleted__2': False, 'name__2': 'Laundry, Clothing & Apparel'}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-13 03:55:30 | INFO     | main | Starting IMF - Inventory Management API...
2026-06-13 03:55:30 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, fbea70eb-5234-4890-9452-a453adfe3836, 2026-06-13 03:55:30.678464-04, 2026-06-13 03:55:30.678464-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'organization_id__0': None, 'desc__0': 'Snacks and beverages', 'id__0': UUID('fbea70eb-5234-4890-9452-a453adfe3836'), 'parent_id__0': None, 'user_id__0': None, 'dept__0': 'general', 'deleted__0': False, 'name__0': 'Snacks & Beverages', 'organization_id__1': None, 'desc__1': 'Electronic items', 'id__1': UUID('2d9ec5ca-ca89-4c84-987d-496d0066eef9'), 'parent_id__1': None, 'user_id__1': None, 'dept__1': 'general', 'deleted__1': False, 'name__1': 'Accessories & Electronics', 'organization_id__2': None, 'desc__2': 'Clothing and apparel', 'id__2': UUID('1fce0cd8-05e3-43cb-b4e9-a18daeacc7cf'), 'parent_id__2': None, 'user_id__2': None, 'dept__2': 'general', 'deleted__2': False, 'name__2': 'Laundry, Clothing & Apparel'}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
2026-06-13 03:55:30 | WARNING  | main | Role seeding skipped: (psycopg2.errors.NotNullViolation) null value in column "organization_id" violates not-null constraint
DETAIL:  Failing row contains (Snacks & Beverages, Snacks and beverages, general, null, 53cf41e2-8c74-49ca-9bbd-bfeedac876ab, 2026-06-13 03:55:30.791423-04, 2026-06-13 03:55:30.791423-04, f, null, null).

[SQL: INSERT INTO categories (name, "desc", dept, user_id, organization_id, parent_id, id, deleted) VALUES (%(name__0)s, %(desc__0)s, %(dept__0)s, %(user_id__0)s::UUID, %(organization_id__0)s::UUID, %(parent_id__0)s::UUID, %(id__0)s::UUID, %(deleted__0)s), ... 269 characters truncated ... id__2)s::UUID, %(deleted__2)s) RETURNING categories.created_at, categories.updated_at, categories.id]
[parameters: {'organization_id__0': None, 'desc__0': 'Snacks and beverages', 'id__0': UUID('53cf41e2-8c74-49ca-9bbd-bfeedac876ab'), 'parent_id__0': None, 'user_id__0': None, 'dept__0': 'general', 'deleted__0': False, 'name__0': 'Snacks & Beverages', 'organization_id__1': None, 'desc__1': 'Electronic items', 'id__1': UUID('686c7a3b-b9ce-43ab-adce-b67d286f73f7'), 'parent_id__1': None, 'user_id__1': None, 'dept__1': 'general', 'deleted__1': False, 'name__1': 'Accessories & Electronics', 'organization_id__2': None, 'desc__2': 'Clothing and apparel', 'id__2': UUID('46056c6b-3081-4863-9c22-12dcf6f35da6'), 'parent_id__2': None, 'user_id__2': None, 'dept__2': 'general', 'deleted__2': False, 'name__2': 'Laundry, Clothing & Apparel'}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
