Jonas L
8a1fffe496
chore(api): add pytest-django settings module config ( #2006 )
2022-07-27 18:11:50 +02:00
jo
22868ce158
chore: remove chdir in setup.py files
2022-07-27 15:35:57 +02:00
jo
b93e1e5570
chore: install local python deps in editable mode
2022-07-27 15:35:57 +02:00
Jonas L
e97b06496a
feat(api): don't use hyperlinked serializers ( #1984 )
2022-07-27 09:54:57 +02:00
Jonas L
57d1f3a953
fix(api): update set_icecast_passwords StreamSetting fields ( #2001 )
2022-07-26 23:24:13 +02:00
Jonas L
951dc68394
feat(api): cast StreamSetting raw_value to value ( #1991 )
2022-07-26 14:16:34 +02:00
Jonas L
04c0b11901
test(api): create api_client pytest fixture ( #1990 )
2022-07-25 21:21:21 +02:00
Jonas L
2b973b2695
chore(api): don't scan tests files with bandit ( #1989 )
2022-07-25 21:20:45 +02:00
Jonas L
6dfd4dd086
test(api): always print logs while testing ( #1988 )
2022-07-25 21:20:18 +02:00
Jonas L
77f5c9951e
chore: improve setuptools find_packages ( #1985 )
2022-07-25 21:19:41 +02:00
Jonas L
f08af1f3fa
feat(api): don't use trailing slashes ( #1982 )
2022-07-22 17:34:09 +02:00
jo
10613cb20a
chore(api): fix schema enum names
2022-07-19 19:52:54 +02:00
jo
1f7c2fa0ab
chore(api): document version endpoint
2022-07-19 19:52:54 +02:00
jo
0e3ede5a1a
chore(api): route using urls
...
Allow to register function views in the same app instead of globaly.
2022-07-19 19:52:54 +02:00
jo
33e5e8ada3
chore(api): fix overbooked property type hint
2022-07-19 19:52:54 +02:00
jo
57046e2a9d
chore(api): rename schedule models fields
2022-07-18 00:04:54 +02:00
jo
8ceb1419a0
chore(api): rename show models fields
2022-07-18 00:04:54 +02:00
jo
4d037bb624
chore(api): rename smart_block models fields
2022-07-18 00:04:54 +02:00
jo
4bcc34212c
chore(api): rename webstream models fields
2022-07-18 00:04:54 +02:00
jo
1c48f11af2
chore(api): rename playlist models fields
2022-07-18 00:04:54 +02:00
jo
7c613d9176
test(api): ignore mypy missing imports
2022-07-18 00:04:54 +02:00
jo
81e1de4fbd
chore(api): disable fixme warnings
2022-07-18 00:04:54 +02:00
jo
80218f33eb
chore: rewrite extract-requirements to python
...
Using python ast to guess requirements in the setup.py file.
2022-07-17 21:25:37 +02:00
jo
a8cb62586e
feat: remove unused cc_country table
2022-07-12 11:33:22 +02:00
jo
de21e3175a
fix: use track_type_id in smartblock criteria
...
Missing migration step from db976881f0
Fixes #1957
2022-07-12 11:32:26 +02:00
jo
f39c079296
feat: set default locale to en_US
2022-07-08 13:11:32 +02:00
jo
3442376b08
chore: clean default data.sql
2022-07-08 13:11:32 +02:00
Jonas L
d323657047
fix: prevent data loose on track_types_id migration ( #1949 )
2022-07-07 23:35:27 +02:00
jo
db976881f0
fix: use constrained foreign key for files track_type
2022-07-07 21:07:41 +02:00
jo
c7c5bad46c
chore(api): widen dependencies ranges
...
- https://packages.debian.org/bullseye-backports/python3-django
- https://packages.debian.org/bullseye/python3-django-filters
- https://packages.debian.org/bullseye/python3-djangorestframework
- https://packages.debian.org/bullseye/python3-psycopg2
2022-07-07 12:37:33 +02:00
jo
6c82e37fac
chore(api): remove deprecated coreapi dependency
...
https://www.django-rest-framework.org/community/3.10-announcement/#openapi-schema-generation
2022-07-07 12:37:33 +02:00
jo
6d7510afee
chore(api): remove markdown package
2022-07-07 12:37:33 +02:00
jo
7c26020c80
feat(api): use uvicorn as asgi server with gunicorn
2022-07-07 10:51:07 +02:00
jo
1cb03c35d2
feat(api): listen on unix socket with gunicorn
2022-07-07 10:51:07 +02:00
jo
2f205544c2
feat: use dedicated 'libretime' user
...
BREAKING CHANGE: The default `www-data` user has been replaced by a dedicated `libretime` user to run the services. Be sure to change the ownership of the libretime files.
2022-07-07 10:51:07 +02:00
Jonas L
703a8e5856
chore: remove cloud storage remainings ( #1934 )
2022-07-04 22:09:14 +02:00
Jonas L
2ce1053bbc
chore(api): rename library model visibility field ( #1933 )
2022-07-01 19:13:31 +02:00
jo
07f6c0b0f2
test(api): ignore tests file coverage
2022-06-30 13:24:05 +02:00
jo
26a2c2dda0
chore: update python tests target
2022-06-30 13:24:05 +02:00
jo
f2e947f05f
chore(api): rename file model fields
...
- Removed checksum field
- Removed ftype field
- Removed silan_check field
2022-06-29 13:51:07 +02:00
jo
05ca410453
feat(api): rename track type to library
...
Related to #1922
- rename library model fields
2022-06-29 13:51:07 +02:00
jo
e5cb21c0e2
chore(api): add make schema-foreach-commit command
2022-06-29 13:51:07 +02:00
jo
d946497336
chore(api): update README
2022-06-29 06:04:31 +02:00
jo
0104799b59
ci(api): fail job on linting error
2022-06-29 06:04:31 +02:00
jo
ac66441278
test(api): disable too-many-arguments lint error
2022-06-29 06:04:31 +02:00
jo
7503618599
test(api): fix lint errors
2022-06-29 06:04:31 +02:00
jo
6cc20013ef
test(api): disable too-few-public-methods lint error
2022-06-29 06:04:31 +02:00
jo
0a1406bf48
chore(api): fix import-outside-toplevel lint error
2022-06-29 06:04:31 +02:00
jo
6ac52ead3e
test(api): allow f string format for logging
2022-06-29 06:04:31 +02:00
jo
70a31338f7
feat(api): create bulk_import command
...
- filter by allowed_extensions
2022-06-28 19:05:14 +02:00
jo
7e01591fae
style(api): reorder user models fields args
2022-06-27 19:02:12 +02:00
jo
a11cda0ae4
style(api): reorder preference model fields args
2022-06-27 19:02:12 +02:00
jo
654314cb1b
chore(api): rename country model fields
2022-06-27 19:02:12 +02:00
jo
e730959e9f
chore(api): rename editor role to host
2022-06-27 19:02:12 +02:00
jo
4009e7eeb6
chore(api): use fully qualified model names
2022-06-27 19:02:12 +02:00
jo
86b7a34263
chore(api): fix linting errors
2022-06-26 16:13:47 +02:00
Jonas L
04fbcc5f36
feat(api): rename podcasts models fields ( #1910 )
2022-06-22 16:42:09 +02:00
Jonas L
9c042c881a
feat: remove unused cc_perms table ( #1909 )
2022-06-22 16:32:39 +02:00
Jonas L
a7c45fb0e1
fix(api): cascade when dropping table ( #1908 )
...
This is supposed to work without it, but this is to be safe.
2022-06-22 16:08:05 +02:00
Jonas L
4837a1885d
feat: remove unused cc_sess table ( #1907 )
2022-06-22 15:15:31 +02:00
jo
ec8c18097d
chore(api): fix some linting errors
2022-06-22 13:37:17 +02:00
jo
1e83a91b5e
chore(api): use named argument for on_delete
2022-06-22 13:37:17 +02:00
jo
7ff59e272c
chore(api): disable some linting rule
2022-06-22 13:37:17 +02:00
Jonas L
cbfd9e51fd
fix(api): update model fields in set_icecast_passwords ( #1903 )
2022-06-22 08:35:26 +02:00
Jonas L
dc426f0aa5
feat(api): rename user model fields ( #1902 )
2022-06-21 23:43:03 +02:00
jo
28c4989d44
chore(api): update StreamSetting model
2022-06-21 16:53:25 +02:00
jo
6bae0e2846
chore(api): update Preference model
2022-06-21 16:53:25 +02:00
Jonas L
b9895d19e2
chore(api): move podcasts in dedicated app ( #1899 )
2022-06-21 14:40:21 +02:00
jo
b10696265f
ci: check and dispatch api schema changes
...
- check if api schema is outdated
- do not cancel in progress workflow
Since this workflow commit to an external repo, it might squash multiple changes into a single commit.
- dispatch each schema update to client repo
- cache pip dependencies
2022-06-18 12:13:11 +02:00
jo
08bcaf459c
chore(api): add openapi schema
2022-06-18 12:13:11 +02:00
jo
71cfab79ef
feat: rename default stream mount point to main
...
This will not change the default mount point if you are upgrading.
BREAKING: The default stream mount point changed from `airtime_128` to `main`. Be sure to updates your clients accordingly.
2022-06-18 12:08:29 +02:00
jo
7457a29e7f
chore(api): pin django related packages
2022-06-18 11:55:02 +02:00
jo
9babb0c4f0
chore(api): pin/downgrade django-filter to ~=21.1.0
2022-06-18 11:55:02 +02:00
jo
14b716d366
chore(api): pin/upgrade django to ~=3.2.13
2022-06-18 11:55:02 +02:00
jo
eef789e4d1
chore(api): rename deprecated filter_fields to filterset_fields
2022-06-18 11:55:02 +02:00
Jonas L
7f926ab6a5
fix(api): allow updating default_icecast_password ( #1872 )
...
Correctly implement the Preference.objects.update_or_create function.
2022-06-12 07:52:54 +02:00
Jonas L
9d0c098684
test(api): use pytest to run api tests ( #1645 )
2022-06-09 16:26:47 +02:00
jo
3bca92413f
fix: drop unused sequences
...
Drop old campcaster sequences that aren't used anymore.
2022-06-08 23:23:08 +02:00
jo
df5ac70769
fix(api): missing build-essential to build psycopg2
2022-06-08 23:23:08 +02:00
jo
28b9343c77
fix(legacy): remove not null contraint when using default
...
This fixes the inital schema creation to match as if the old migrations
were always run.
The third_party_track_references.file_id field should not have a not
null constraint while have a default value to 0.
2022-06-08 23:23:08 +02:00
jo
f7bb6e7592
feat: move storage path setting to configuration file
...
- change default storage path to /srv/libretime
- remove music dirs table
- use /tmp for testing storage
- storage dir should always have a trailing slash
2022-06-08 23:23:08 +02:00
jo
510e978952
feat: add systemd libretime.target
...
- add wanted by
- instantly start services in vagrant
2022-06-08 23:23:08 +02:00
jo
91f8a51a1e
feat(api): create set_icecast_passwords command
...
- allow to fetch icecast password from xml config
- set default stream password
2022-06-08 23:23:08 +02:00
jo
980f1acd0c
fix: correct cc_file.artwork column size
2022-06-08 23:23:08 +02:00
jo
6889e11a91
fix: don't add track types only on migration
2022-06-08 23:23:08 +02:00
jo
4be8bde14e
feat: drop cc_locale table
2022-06-08 23:23:08 +02:00
jo
0e4bc4cacd
feat: replace php migration with django migration
...
- keep latest legacy version in initial migration file
- move propel schema to api legacy app
- remove legacy upgrade tool
2022-06-08 23:23:08 +02:00
jo
ee98387264
feat(installer): rewrite install script
...
- remove unused root packages.ini
- write config to yaml file
- allow to set public_url during install
- force icecast start right after package install
- move config file in place at the end of installation
BREAKING CHANGE: The bash installer has been rewritten, the flags and
options changed, please run `./install --help` to get more details.
2022-06-08 23:23:08 +02:00
jo
aed6d2f294
feat: change config dir path to /etc/libretime
...
BREAKING: The configuration directory changed from `/etc/airtime` to
`/etc/libretime`. Please rename your configuration directory accordingly.
2022-06-08 23:23:08 +02:00
jo
604ff20239
feat: change config filename to config.yml
...
BREAKING: The configuration file name changed from `airtime.conf` to
`config.yml`. Please rename your configuration file accordingly.
2022-06-08 23:23:08 +02:00
jo
3d7083f602
chore(api): format schema using prettier
2022-04-26 08:10:39 +02:00
jo
751d430bcc
feat: replace exploded base_* with public_url
...
Fixes #1574
BREAKING CHANGE: The `general` section in the config schema has changed: the `general.base_*`, `general.protocol` and `general.force_ssl` configuration fields have been replaced with a single `general.public_url` field. Be sure to use a valid url with the new configuration field.
2022-04-25 16:45:01 +02:00
Jonas L
41df76eed0
feat(api): replace uwsgi with gunicorn ( #1785 )
...
Related to #1719
BREAKING: The uwsgi packages and configuration files (`/etc/airtime/libretime-api.ini`) should be removed from the system.
2022-04-25 16:09:19 +02:00
Jonas L
dc92661c49
chore(api): move uswgi config in api/install ( #1781 )
2022-04-21 07:14:35 +02:00
Jonas L
28fc8360a3
fix(api): prevent timing attacke on api key ( #1771 )
2022-04-17 18:55:18 +02:00
Jonas L
9d5de61241
chore(api): add mypy django stubs plugins ( #1726 )
2022-04-09 12:18:23 +02:00
Kyle Robbertze
beebe79edd
ci: generate schema and push to api-client repo ( #1740 )
...
* chore(api): add schema generation make target
* ci: generate schema and push to api-client repo
2022-04-08 15:38:58 +02:00
jo
0bbd46c33f
refactor(api): fix pylint errors
2022-04-04 15:20:22 +02:00
jo
bf8db3e6f0
chore(api): add pylint-django plugin
2022-04-04 15:20:22 +02:00
Jonas L
fce988aef1
feat(api): split api into multiple apps ( #1626 )
...
Fixes #1622
- split the api into 4 apps: core, history, schedule, storage
- exploded the settings into testing/prod
2022-04-04 14:38:50 +02:00