Commit Graph

52 Commits

Author SHA1 Message Date
Sebastián Ramírez
20fa4ce8fb 🔊 Add consistent errors for env vars not set (#200) 2020-05-25 08:33:36 +02:00
Sebastián Ramírez
e4c668d7cd Upgrade Traefik to version 2 (#199)
* 🔧 Add STACK_NAME to .env for Traefik labels

*  Upgrade Docker Compose to use Traefik v2

*  Enable Traefik v2 in Docker Compose override for local development

* 🐛 Use internal HTTPS redirect in case the deployment is not through DockerSwarm.rocks
2020-05-24 23:35:49 +02:00
Sebastián Ramírez
b88a0fc5fa 📝 Add docs about reporting coverage in HTML (#161) 2020-04-20 20:45:32 +02:00
Sebastián Ramírez
43d5b49bd1 Test using the TestClient (#160) 2020-04-20 20:31:29 +02:00
Sebastián Ramírez
41a2f15d8f 🎨 Format fixes (#159)
* 📝 Update release notes

* 🎨 Update format and structure
2020-04-20 19:27:45 +02:00
Sebastián Ramírez
eed33d276d ♻️ Refactor backend, settings, DB sessions, types, configs, plugins (#158)
* ♻️ Refactor backend, update DB session handling

*  Add mypy config and plugins

*  Use Python-jose instead of PyJWT

as it has some extra functionalities and features

*  Add/update scripts for test, lint, format

* 🔧 Update lint and format configs

* 🎨 Update import format, comments, and types

* 🎨 Add types to config

*  Add types for all the code, and small fixes

* 🎨 Use global imports to simplify exploring with Jupyter

* ♻️ Import schemas and models, instead of each class

* 🚚 Rename db_session to db for simplicity

* 📌 Update dependencies installation for testing
2020-04-20 19:03:13 +02:00
Sebastián Ramírez
7d57876bda 📝 Add docs about removing the frontend (#156) 2020-04-19 21:00:31 +02:00
Sebastián Ramírez
f09fb854bf 🔧 Simplify scripts and development (#155)
* 🔧 Update scripts and configs

* 🔧 Add shebang to script

* 🔥 Remove test and dev configs, pass inline

*  Add local development dev-link set up

* 📝 Update generated docs with refactor

* 📝 Add Contributing guide
2020-04-19 20:19:25 +02:00
Sebastián Ramírez
2afe4159ab ♻️ Simplify Docker Compose files and deployment (#153)
* ♻️ Simplify Docker Compose files and deployment

* 🔧 Remove TRAEFIK_PUBLIC_NETWORK_IS_EXTERNAL from .env
2020-04-19 16:44:12 +02:00
Sebastián Ramírez
283bc7c95b ♻️ Simplify tests, run in same backend service (#152)
remove backend-tests
2020-04-19 12:34:03 +02:00
Sebastián Ramírez
a7d3671a72 ♻️ Simplify env files, merge to one .env (#151) 2020-04-19 09:17:14 +02:00
Sebastián Ramírez
d08d9314ce 📌 Make the public Traefik network a fixed default (#150)
to simplify development
2020-04-19 08:50:00 +02:00
Ruslan Samoylov
8812ca6635 ⬆️ Upgrade to Postgres 12 (#148) 2020-04-19 07:56:05 +02:00
Ruslan Samoylov
c8bcc0ba0a Use Poetry for package management (#144)
* use poetry insted of Pipfile

* fix python black version

* set prepare.sh as executable

* revert postgres 11

* use multi-build stage in docker

* fix poetry path

* 🔥 Remove uneeded changes

* 🔧 Move and update Poetry file

* 🙈 Update gitignore

* 🐳 Update Dockerfiles to use Poetry

* 🐳 Update Dockerfiles with Poetry

* 🔧 Add SERVER_NAME required by Celery worker

* 🐳 Update Poetry install to avoid env conflicts

*  Add Pytest to Poetry dependencies

Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2020-04-18 23:27:48 +02:00
Brendon Smith
34f6f9ae54 ⬆️ Upgrade to Vue CLI 4 (#120)
* Upgrade to Vue CLI 4

https://cli.vuejs.org/migrating-from-v3

* 🔥 Remove package-lock.json that varies by system

Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2020-04-17 16:33:51 +02:00
Matthew Shu
67b384f308 🔥 Remove duplicate 'login' tag (#135)
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2020-04-17 14:54:47 +02:00
Radek Lonka
697b4da6b0 🐛 Fix welcome message to show email if full name doe not exists (#129) 2020-04-17 14:31:30 +02:00
Brendon Smith
21c4d11659 🎨 Bring Python code into compliance with Black and Flake8 (#121)
* Ignore Flake8 unused import error F401

https://flake8.readthedocs.io/en/latest/user/error-codes.html

The apparently unused imports may be needed for SQLAlchemy.

As the code comment says:

make sure all SQL Alchemy models are imported before initializing DB
otherwise, SQL Alchemy might fail to initialize properly relationships

See GitHub 28 and 29

* Ignore Flake8 unused variable error F841

https://flake8.readthedocs.io/en/latest/user/error-codes.html

The apparently unused variables may be needed for tests.

* Bring line length into compliance with Black

Should be 88 characters.

* Format alembic code with Black
2020-04-17 14:20:48 +02:00
Albert Iribarne
8a2252f654 ♻️ Simplify DB base class declaration (#117)
* Simplify DB base class declaration

* ♻️ Remove object inheritance

Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2020-04-17 09:39:25 +02:00
Mocsár Kálmán
fb874fea35 Update CRUD utils for users handling password hashing (#106)
* Add some information how to run backand test for local backand development

* Bug fixes in backend app

* 🎨 Update format

*  Use random_email for test_update_user

Co-authored-by: Mocsar Kalman <mocsar.kalman@gravityrd.com>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2020-04-17 09:20:00 +02:00
gcharbon
45510b4f80 ♻️ Use . instead of source in build-push.sh (#98) 2020-04-17 08:04:42 +02:00
Stephen Brown II
79631c7619 Use Pydantic BaseSettings for config settings (#87)
* Use Pydantic BaseSettings for config settings

* Update fastapi dep to >=0.47.0 and email_validator to email-validator

* Fix deprecation warning for Pydantic >=1.0

* Properly support old-format comma separated strings for BACKEND_CORS_ORIGINS

Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2020-04-17 07:56:10 +02:00
Sebastián Ramírez
1a92a0a6f1 🔥 Remove package-lock.json 2020-04-06 17:28:53 +02:00
Sebastián Ramírez
7c2c2276d9 ♻️ Simplify Traefik labels in services (#139) 2020-04-06 12:38:28 +02:00
Teomor Szczurek
970a182ec8 Add email validation (#40)
* modify tests

*  Add email-validator to Dockerfiles

* ♻️ Update random email generation

* ♻️ Re-apply email validation after rebase

Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2020-04-06 11:36:29 +02:00
Cristobal Aguirre
dc712ac4ec 🐛 Fix typo in read_item GET view (#74) 2020-02-07 21:28:45 +01:00
Daniel Butler
fc403c9bc1 ✏️ Correct grammar (#70) 2020-02-07 21:15:10 +01:00
David Montague
4b93dc709f 🐛 Fix docker configuration for flower (#37) 2020-02-07 21:04:02 +01:00
Manu
ab46165387 Add base class to simplify CRUD (#23) 2020-01-19 22:40:50 +01:00
Manu
248ea56c6e Add normal-user fixture for testing (#20) 2020-01-19 13:25:17 +01:00
Sebastián Ramírez
b4fa418e65 🔒 Receive token as body in reset password (#34) 2019-05-29 09:47:59 +04:00
dmontagu
546dc8bdcb 🔒 Update login.py to receive password as body (#33)
Change `new_password` from a query parameter to a body parameter for security.

(Why this is problematic is discussed in the top answer to https://stackoverflow.com/questions/2629222/are-querystring-parameters-secure-in-https-http-ssl)
2019-05-29 09:24:09 +04:00
Manu
1d30172e7a 🗃️ Fix SQLAlchemy class lookup (#29) 2019-05-22 15:29:24 +04:00
Manu
170231783a 🗃️ Fix SQLAlchemy operation error after database restarts (#32) 2019-05-22 15:18:59 +04:00
Manu
8bf3607d2b 📝 Fix the paths of the scripts in README (#19)
* removed postgres_password from alembic.ini, read it from env var instead

* ♻️ use f-strings for PostgreSQL URL

* fix path to scripts
2019-05-03 23:57:12 +04:00
Sebastián Ramírez
6bbd58c76f 📝 Update docs for running tests live 2019-05-03 23:52:23 +04:00
Manu
1aeb3208bf Use extra pytest arguments forwarded from shell (#17)
* removed postgres_password from alembic.ini, read it from env var instead

* ♻️ use f-strings for PostgreSQL URL

* passes given args
2019-05-03 23:44:18 +04:00
Sebastián Ramírez
47e0fe56e3 ⬆️ Upgrade Jupyter to use Lab, update util/env var for local development 2019-04-24 22:45:20 +04:00
Sebastián Ramírez
92b757fc96 ♻️ Create Item from all fields in Pydantic model 2019-04-20 19:57:34 +04:00
Manu
bece399368 ♻️ removed postgres_password from alembic.ini (#9)
♻️ removed postgres_password from alembic.ini (#9)
2019-04-20 19:56:50 +04:00
Sebastián Ramírez
ecd634e497 Add Items (crud, models, endpoints), utils, refactor (#14)
* Update CRUD utils to use types better.
* Simplify Pydantic model names, from `UserInCreate` to `UserCreate`, etc.
* Upgrade packages.
* Add new generic "Items" models, crud utils, endpoints, and tests. To facilitate re-using them to create new functionality. As they are simple and generic (not like Users), it's easier to copy-paste and adapt them to each use case.
* Update endpoints/*path operations* to simplify code and use new utilities, prefix and tags in `include_router`.
* Update testing utils.
* Update linting rules, relax vulture to reduce false positives.
* Update migrations to include new Items.
* Update project README.md with tips about how to start with backend.
2019-04-19 09:45:23 +04:00
Manu
cd86803daa Upgrade to Python 3.7, including new compatible Celery (#10) 2019-04-16 21:36:38 +04:00
Sebastián Ramírez
151f7ed79b 🐛 Fix frontend hijacking /docs in development (#6)
* 🐛 Fix frontend hijacking /docs in development

* 🐛 Fix frontend Dockerfile copying Nginx config
2019-04-11 21:45:07 +04:00
Matthew Clarkson
f947ba8749 🐛 fix read_user_by_id docstring (#4)
Fix incorrectly documented as "Get a specific user by username (email)". Changed to "Get a specific user by id".
2019-03-29 18:34:38 +04:00
Sebastián Ramírez
5cb50a9986 Use Live Reload server by default in development 2019-03-14 16:05:50 +04:00
Sebastián Ramírez
cd112bd683 Refactor/upgrade backend and frontend parts (#2)
* ♻️ Refactor and simplify backend code

* ♻️ Refactor frontend state, integrate typesafe-vuex accessors into state files

* ♻️ Use new state accessors and standardize layout

* 🔒 Upgrade and fix npm security audit

* 🔧 Update local re-generation scripts

* 🔊 Log startup exceptions to detect errors early

* ✏️ Fix password reset token content

* 🔥 Remove unneeded Dockerfile directives

* 🔥 Remove unnecessary print

* 🔥 Remove unnecessary code, upgrade dependencies in backend

* ✏️ Fix typos in docstrings and comments

* 🏗️ Improve user Depends utilities to simplify and remove code

* 🔥 Remove deprecated SQLAlchemy parameter
2019-03-11 13:36:42 +04:00
Sebastián Ramírez
57f849c546 🙈 Ignore docker-stack.yml 2019-02-23 21:29:24 +04:00
Sebastián Ramírez
f3ccfb4da2 🐛 Fix DB Alembic migrations generated password 2019-02-23 20:58:50 +04:00
Sebastián Ramírez
6fdba19639 Update all for Postgres and new techniques 2019-02-23 18:44:29 +04:00
Sebastián Ramírez
a21978e374 🔧 Update config for PostgreSQL 2019-02-23 17:50:19 +04:00