lightapi 0.1.22__tar.gz → 0.1.23__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {lightapi-0.1.22 → lightapi-0.1.23}/.github/workflows/docker-publish.yml +2 -2
- {lightapi-0.1.22 → lightapi-0.1.23}/PKG-INFO +2 -2
- {lightapi-0.1.22 → lightapi-0.1.23}/README.md +1 -1
- {lightapi-0.1.22 → lightapi-0.1.23}/docker/lightapi.example.yaml +1 -1
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/deployment/docker.md +15 -15
- {lightapi-0.1.22 → lightapi-0.1.23}/pyproject.toml +1 -1
- {lightapi-0.1.22 → lightapi-0.1.23}/.cursorrules +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/.dockerignore +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/.github/workflows/pages-publish.yml +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/.github/workflows/python-publish.yml +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/.github/workflows/test-dev.yml +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/.gitignore +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/Dockerfile +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/LICENSE +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/api_config.yaml +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docker/entrypoint.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/.pages +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/advanced/.pages +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/advanced/async.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/advanced/authentication.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/advanced/caching.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/advanced/filtering.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/advanced/middleware.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/advanced/pagination.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/advanced/rate-limiting.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/advanced/validation.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/api-reference/.pages +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/api-reference/auth.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/api-reference/cache.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/api-reference/core.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/api-reference/database.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/api-reference/exceptions.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/api-reference/filters.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/api-reference/index.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/api-reference/models.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/api-reference/pagination.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/api-reference/rest.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/api-reference/swagger.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/api-reference/validation.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/deployment/.pages +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/deployment/production.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/deployment/security.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/examples/.pages +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/examples/advanced-permissions.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/examples/auth.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/examples/basic-crud.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/examples/basic-rest.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/examples/caching.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/examples/custom-application.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/examples/environment-variables.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/examples/filtering-pagination.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/examples/middleware.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/examples/readonly-apis.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/examples/validation.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/examples/yaml-configuration.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/getting-started/.pages +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/getting-started/configuration.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/getting-started/first-steps.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/getting-started/installation.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/getting-started/introduction.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/getting-started/quickstart.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/index.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/technical-reference/.pages +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/technical-reference/cache.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/technical-reference/core-api.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/technical-reference/endpoints.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/technical-reference/handlers.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/technical-reference/middleware.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/technical-reference/models.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/troubleshooting.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/tutorial/.pages +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/tutorial/basic-api.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/tutorial/database.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/tutorial/endpoints.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/tutorial/requests.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/docs/tutorial/responses.md +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/examples/01_minimal.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/examples/02_crud.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/examples/03_auth_jwt.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/examples/04_auth_basic.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/examples/05_permissions.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/examples/06_pagination_page.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/examples/07_pagination_cursor.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/examples/08_filtering.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/examples/09_caching.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/examples/10_async.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/examples/11_mixed_sync_async.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/examples/12_queryset.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/examples/13_middleware.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/examples/14_background.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/examples/15_yaml_config.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/examples/16_rate_limit.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/examples/17_relationships.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/examples/18_full_api.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/examples/postgres_full.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/examples/smoke_async.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/examples/v2_full_demo.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/examples/v2_quickstart.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/__init__.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/_dict_config_loader.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/_login.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/auth.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/auth_checker.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/auth_service.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/auth_strategy.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/authentication/__init__.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/authentication/base.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/authentication/basic.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/authentication/jwt.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/body_reader.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/cache.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/cache_handler.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/cache_helper.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/cache_service.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/config.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/constants.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/core.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/crud_async.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/crud_sync.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/exceptions.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/fields.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/filters.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/handler_factory.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/http_dispatcher.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/lightapi.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/methods.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/middleware_pipeline.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/middleware_runner.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/pagination.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/queryset.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/rate_limiter.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/response_wrapper.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/rest.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/route_builder.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/schema.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/session.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/session_manager.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/swagger.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/table_mapping.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/lightapi/yaml_loader.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/mkdocs.yml +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/overrides/404.html +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/pytest.ini +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/requirements.txt +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/run_server.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/tests/conftest.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/tests/test_async_crud.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/tests/test_async_middleware.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/tests/test_async_queryset.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/tests/test_async_reflection.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/tests/test_async_session.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/tests/test_auth.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/tests/test_background_tasks.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/tests/test_cache_v2.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/tests/test_crud.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/tests/test_example_01_minimal.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/tests/test_example_03_auth_jwt.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/tests/test_example_06_pagination_page.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/tests/test_example_08_filtering.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/tests/test_examples_e2e.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/tests/test_filtering.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/tests/test_http_methods.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/tests/test_lightapi_init.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/tests/test_login_auth.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/tests/test_middleware.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/tests/test_mixed_sync_async.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/tests/test_pipeline.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/tests/test_queryset.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/tests/test_reflection.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/tests/test_rest.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/tests/test_schema.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/tests/test_serializer.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/tests/test_yaml_config.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/update_version.py +0 -0
- {lightapi-0.1.22 → lightapi-0.1.23}/uv.lock +0 -0
|
@@ -22,7 +22,7 @@ permissions:
|
|
|
22
22
|
|
|
23
23
|
jobs:
|
|
24
24
|
publish:
|
|
25
|
-
name: Build & push
|
|
25
|
+
name: Build & push iklob1/lightapi
|
|
26
26
|
runs-on: ubuntu-latest
|
|
27
27
|
|
|
28
28
|
steps:
|
|
@@ -58,7 +58,7 @@ jobs:
|
|
|
58
58
|
id: meta
|
|
59
59
|
uses: docker/metadata-action@v5
|
|
60
60
|
with:
|
|
61
|
-
images:
|
|
61
|
+
images: iklob1/lightapi
|
|
62
62
|
tags: |
|
|
63
63
|
# On a v*.*.* tag → :0.1.21, :0.1, :latest
|
|
64
64
|
type=semver,pattern={{version}}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lightapi
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.23
|
|
4
4
|
Summary: A lightweight framework for building API endpoints using Python's native libraries.
|
|
5
5
|
Project-URL: Repository, https://github.com/henriqueblobato/LightApi
|
|
6
6
|
Project-URL: Issues, https://github.com/henriqueblobato/LightApi/issues
|
|
@@ -137,7 +137,7 @@ uv add "lightapi[async]"
|
|
|
137
137
|
docker run --rm -p 8000:8000 \
|
|
138
138
|
-v "$(pwd)/lightapi.yaml:/app/lightapi.yaml:ro" \
|
|
139
139
|
-e DATABASE_URL=sqlite:////app/data.db \
|
|
140
|
-
|
|
140
|
+
iklob1/lightapi:latest
|
|
141
141
|
```
|
|
142
142
|
|
|
143
143
|
See [Docker deployment](docs/deployment/docker.md) for the full guide.
|
|
@@ -81,7 +81,7 @@ uv add "lightapi[async]"
|
|
|
81
81
|
docker run --rm -p 8000:8000 \
|
|
82
82
|
-v "$(pwd)/lightapi.yaml:/app/lightapi.yaml:ro" \
|
|
83
83
|
-e DATABASE_URL=sqlite:////app/data.db \
|
|
84
|
-
|
|
84
|
+
iklob1/lightapi:latest
|
|
85
85
|
```
|
|
86
86
|
|
|
87
87
|
See [Docker deployment](docs/deployment/docker.md) for the full guide.
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# docker run --rm -p 8000:8000 \
|
|
4
4
|
# -v "$(pwd)/lightapi.example.yaml:/app/lightapi.yaml:ro" \
|
|
5
5
|
# -e DATABASE_URL=sqlite:////app/data.db \
|
|
6
|
-
#
|
|
6
|
+
# iklob1/lightapi:latest
|
|
7
7
|
#
|
|
8
8
|
# See https://iklobato.github.io/lightapi/getting-started/configuration/ for
|
|
9
9
|
# the full YAML schema (auth, filtering, pagination, per-method permissions,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Docker Deployment
|
|
3
|
-
description: Run a fully-configured LightAPI server in seconds with the official
|
|
3
|
+
description: Run a fully-configured LightAPI server in seconds with the official iklob1/lightapi image
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Docker Deployment
|
|
@@ -9,9 +9,9 @@ The official image bundles LightAPI, its async extras, and PostgreSQL drivers.
|
|
|
9
9
|
Mount a YAML config and a database URL — no Python code or build step required.
|
|
10
10
|
|
|
11
11
|
```
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
iklob1/lightapi:latest
|
|
13
|
+
iklob1/lightapi:<version> # e.g. 0.1.21
|
|
14
|
+
iklob1/lightapi:master # rolling head of master
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
The image is multi-arch (`linux/amd64`, `linux/arm64`) and is built from the
|
|
@@ -45,7 +45,7 @@ at the repository root.
|
|
|
45
45
|
docker run --rm -p 8000:8000 \
|
|
46
46
|
-v "$(pwd)/lightapi.yaml:/app/lightapi.yaml:ro" \
|
|
47
47
|
-e DATABASE_URL=sqlite:////app/data.db \
|
|
48
|
-
|
|
48
|
+
iklob1/lightapi:latest
|
|
49
49
|
```
|
|
50
50
|
|
|
51
51
|
3. Use the API:
|
|
@@ -96,7 +96,7 @@ docker run -d --name lightapi \
|
|
|
96
96
|
-v "$(pwd)/lightapi.yaml:/app/lightapi.yaml:ro" \
|
|
97
97
|
-v lightapi-data:/app \
|
|
98
98
|
-e DATABASE_URL=sqlite:////app/data.db \
|
|
99
|
-
|
|
99
|
+
iklob1/lightapi:latest
|
|
100
100
|
```
|
|
101
101
|
|
|
102
102
|
### PostgreSQL via docker compose
|
|
@@ -105,7 +105,7 @@ docker run -d --name lightapi \
|
|
|
105
105
|
# docker-compose.yml
|
|
106
106
|
services:
|
|
107
107
|
api:
|
|
108
|
-
image:
|
|
108
|
+
image: iklob1/lightapi:latest
|
|
109
109
|
ports:
|
|
110
110
|
- "8000:8000"
|
|
111
111
|
environment:
|
|
@@ -149,7 +149,7 @@ docker run --rm -p 8000:8000 \
|
|
|
149
149
|
-e DATABASE_URL=sqlite:////app/data.db \
|
|
150
150
|
-e LIGHTAPI_REDIS_URL=redis://redis:6379/0 \
|
|
151
151
|
--network my-net \
|
|
152
|
-
|
|
152
|
+
iklob1/lightapi:latest
|
|
153
153
|
```
|
|
154
154
|
|
|
155
155
|
If Redis is unreachable, LightAPI logs a `RuntimeWarning` once at startup
|
|
@@ -186,7 +186,7 @@ docker run --rm -p 8000:8000 \
|
|
|
186
186
|
-e PYTHONPATH=/app \
|
|
187
187
|
-e DATABASE_URL=sqlite:////app/data.db \
|
|
188
188
|
-e LIGHTAPI_JWT_SECRET=replace-me \
|
|
189
|
-
|
|
189
|
+
iklob1/lightapi:latest
|
|
190
190
|
```
|
|
191
191
|
|
|
192
192
|
`POST /auth/login` is auto-registered because at least one endpoint declares
|
|
@@ -200,7 +200,7 @@ If you need extra Python dependencies (a custom `login_validator`, custom
|
|
|
200
200
|
middleware, etc.), extend the published image:
|
|
201
201
|
|
|
202
202
|
```dockerfile
|
|
203
|
-
FROM
|
|
203
|
+
FROM iklob1/lightapi:0.1.21
|
|
204
204
|
|
|
205
205
|
# Add your own modules — they must be importable from the YAML's dotted paths.
|
|
206
206
|
COPY ./myapp /app/myapp
|
|
@@ -238,13 +238,13 @@ and pushes to Docker Hub. The workflow needs two repository secrets:
|
|
|
238
238
|
|
|
239
239
|
| Secret | Value |
|
|
240
240
|
|---|---|
|
|
241
|
-
| `DOCKERHUB_USERNAME` | Your Docker Hub username (`
|
|
242
|
-
| `DOCKERHUB_TOKEN` | A Docker Hub access token with read+write scope on `
|
|
241
|
+
| `DOCKERHUB_USERNAME` | Your Docker Hub username (`iklob1`). |
|
|
242
|
+
| `DOCKERHUB_TOKEN` | A Docker Hub access token with read+write scope on `iklob1/lightapi`. |
|
|
243
243
|
|
|
244
244
|
Tag schedule:
|
|
245
245
|
|
|
246
246
|
| Event | Tags pushed |
|
|
247
247
|
|---|---|
|
|
248
|
-
| Push of `v0.1.21` | `
|
|
249
|
-
| Push to `master` | `
|
|
250
|
-
| Manual `workflow_dispatch` | `
|
|
248
|
+
| Push of `v0.1.21` | `iklob1/lightapi:0.1.21`, `:0.1`, `:latest` |
|
|
249
|
+
| Push to `master` | `iklob1/lightapi:master` |
|
|
250
|
+
| Manual `workflow_dispatch` | `iklob1/lightapi:manual-<run-number>` |
|
|
@@ -6,7 +6,7 @@ build-backend = "hatchling.build"
|
|
|
6
6
|
|
|
7
7
|
[project]
|
|
8
8
|
name = "lightapi"
|
|
9
|
-
version = "0.1.
|
|
9
|
+
version = "0.1.23"
|
|
10
10
|
description = "A lightweight framework for building API endpoints using Python's native libraries."
|
|
11
11
|
readme = "README.md"
|
|
12
12
|
requires-python = ">=3.10"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|