All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
GET /items
now accepts a newfilter
query parameter, currently only allowinginProgress
value- Add new frontend page for currently watching items using the new query param
- Improve logging
- Add new layer for fastapi related packages
- Refactor of caught exceptions
- Refactor of external api classes
- Added more strict response models for following
GET
routes including change of JSON keys from snake case to camel case:GET /items/{api_name}/{item_api_id}
GET /items
GET /items/{api_name}/{item_api_id}/episodes
GET /items/{api_name}/{item_api_id}/episodes/{episode_api_id}
- Remove
/watch-histories
prefix from all routes
- Fix null image in mal api cache
- Support for
latest_watch_date
inGET /watch-histories/items
route
- Fix invalid jikan schedules route
- Fixes for jikan episodes with
null
aired date - Change deployment workflow condition to more specific src folders
- Fixes for jikan v4 returned data
- Upgrade jikan API from v3 to v4
- Fix bug with empty anime ep aired date
- Remove dry-run workflow
- Attempt fix failing deployment job
- Update AWS OIDC provider thumbprint to
6938fd4d98bab03faadb97b34396831e3780aea1
- Run deploy workflow on pushes to default branch
- Run deploy workflow only if service files or SAM related files changes
- Add CHANGELOG.md instead of using tags
- Remove dependencies to show service and add new routes on
/watch-histories/
basepath.
- Remove show service by @fulder in #92
Full Changelog: https://github.com/fulder/moshan/compare/v7.4.5...v8.0.0
- Add missing index arns by @fulder in #91
Full Changelog: https://github.com/fulder/moshan/compare/v7.4.3...v7.4.5
- Fix watch history by progress request by @fulder in #90
Full Changelog: https://github.com/fulder/moshan/compare/v7.4.2...v7.4.3
- Use LT instead of '<' by @fulder in #89
Full Changelog: https://github.com/fulder/moshan/compare/v7.4.1...v7.4.2
- Add ep_progress and special_progress to sort by @fulder in #88
Full Changelog: https://github.com/fulder/moshan/compare/v7.4.0...v7.4.1
- Change KeyConditionExpression for progress indexes by @fulder in #87
Full Changelog: https://github.com/fulder/moshan/compare/v7.3.10...v7.4.0
- Fix indexes by @fulder in #86
Full Changelog: https://github.com/fulder/moshan/compare/v7.3.9...v7.3.10
- Remove old unused LSI by @fulder in #85
Full Changelog: https://github.com/fulder/moshan/compare/v7.3.8...v7.3.9
- Tweaks for getting items sorted by progress by @fulder in #84
Full Changelog: https://github.com/fulder/moshan/compare/v7.3.7...v7.3.8
- Fix removal of data during readd of episode by @fulder in #83
Full Changelog: https://github.com/fulder/moshan/compare/v7.3.6...v7.3.7
- Check if query params are none by @fulder in #82
Full Changelog: https://github.com/fulder/moshan/compare/v7.3.5...v7.3.6
- Forgotten lambda permissions for new db by @fulder in #81
Full Changelog: https://github.com/fulder/moshan/compare/v7.3.4...v7.3.5
- Forgotten database_name env var by @fulder in #80
Full Changelog: https://github.com/fulder/moshan/compare/v7.3.3...v7.3.4
- Fix invalid include deleted eps condition by @fulder in #79
Full Changelog: https://github.com/fulder/moshan/compare/v7.3.2...v7.3.3
- Remove not existing #e param by @fulder in #78
Full Changelog: https://github.com/fulder/moshan/compare/v7.3.1...v7.3.2
- Add optional api_name query param to episode_by_id API @fulder in #77
Full Changelog: https://github.com/fulder/moshan/compare/v7.3.0...v7.3.1
- Update episode progress by @fulder in #76
Full Changelog: https://github.com/fulder/moshan/compare/v7.2.4...v7.3.0
- Migration fixes by @fulder in #53
Full Changelog: https://github.com/fulder/moshan/compare/v7.2.3...v7.2.4
- Get show id not item_id by @fulder in #72
- Check ep_progress in item not property by @fulder in #73
- Use correct property for special_progress by @fulder in #74
- Set progress to 0 if ep/special count is 0 by @fulder in #75
Full Changelog: https://github.com/fulder/moshan/compare/v7.2.2...v7.2.3
- Rename live stage to prod by @fulder in #71
Full Changelog: https://github.com/fulder/moshan/compare/v7.2.1...v7.2.2
- Rename show updates subscriber handler by @fulder in #69
- Get show by api id in show-updates sub by @fulder in #70
Full Changelog: https://github.com/fulder/moshan/compare/v7.2.0...v7.2.1
- Show updates subscription by @fulder in #68
Full Changelog: https://github.com/fulder/moshan/compare/v7.1.2...v7.2.0
- Potential fix making backlog requests fail with 500 code
- Remove reserved
AWS_REGION
env variable from lambdas
- Change shows API auth from cognito JWT to AWS_IAM
- Fix bug with items not being merged during full watch-history fetch
- Add missing env vars to
watch_history
lambda config
- Send media request in parallel during full watch-history get
- Send request to media services during
GET /watch-history
andGET /watch-history/collection/{collection_name}
- Return
collection_name
inGET /watch-history
response list.
- Fix bug with
GET /watch-history
while using thestatus
query param not injecting the filter with correct value
- Fix bug with reserved DynamoDB
status
word
- Fix invalid
state
instead ofstatus
query param
- Fix missing GSI query permission for
GET /watch-history
lambda
- Increase lambda memory and timeout
- Fix invalid
watch_dates
sort value inGET /watch-history
- Remove pagination support during watch history GET
- Add
latest_watch_date
to items with episodes equal to the latest item episodelatest_watch_date
value.
- Catch invalid offset errors
in
GET /watch-history/collection/{collection_name}
, returned 500 codes instead of 400 before - Add missing lambda permissions for GSI query
making
GET /watch-history/collection/{collection_name}
while setting thesort
query parameter crash with 500 code
- Correct sort value for
GET /watch-history/collection/{collection_name}
fromdates_watched
tolatest_watch_date
- Don't overwrite
created_at
property every time item/episode is deleted and re-added
- Fix bug with no item ID being returned after
POST
ing of item - Fix
PUT
episode bug not saving the episode data (although 204 was returned to the client)
- Skip removal of item/episode properties during re-add of entity
- Fix invalid update expression making new
PUT
routes fail with 500 status code
- Fix bug with item/episode fields colliding with DynamoDB reserved words
making
PUT
calls (not setting the reserved fields) fail.
- Fix CORS issue blocking
PUT
requests
- Change
PATCH /watch-history/collection/{collection_name}/{item_id}
verb toPUT
Change PATCH /watch-history/collection/{collection_name}/{item_id}/episode/{episode_id}
verb to PUT
- Remove skipped item properties during
PUT
- Allow
backlog
status for items
- Fix bug with anime item post expecting invalid status code making the item not being added to user watch-history
- Return 200 code and item/episode id during post
- Return both watch-history and item/episode info during get by api_id
- Return both watch-history and item/episode info during get by ID
- Don't try to post episode using invalid body during watch-history patch ( potential fix for 400 code during episodes patch)
- Add missing env variables for post episode lambda
- Remove duplicate
json()
call causing 500 errors
- Add missing service URLs to episodes lambda making it crash with internal error
- Support
api_name
andapi_id
query params inGET /watch-history/collection/{collection_name}/episode
route
- Fix 500 issue during post of items and episodes
- Return 404 on not found item by
api_id
- Support
api_name
andapi_id
query params inGET /watch-history/collection/{collection_name}
route
- Fix bug with missing
api
layers making episode routes fail with 500 code
- Upgrade
urllib
from 1.26.2 to 1.26.5 - Remove
v1
prefixes from shows and anime APIs - Change post items/episodes data to include third party ids together with optional review/overview/rating etc. data
- Post items/episode items to show/anime service using
api_name
andapi_id
keys from post data
- Fix bug with not all items being returned for collections
- Add missing environment variables for item by id lambda (Fix for another 500 during patch)
- Add missing API layer to watch history item by ID lambda (possible fix for 500 error)
- Remove
/v1
prefix from all routes
- Don't patch items if ID is not existing in collection APIs
- Add (temporary) copy script from old to new dynamo tables
- Fix bug with item/episode patches not setting
latest_watch_date
if the list contains only one item
- Fix inconsistent names of
dates_watched
property in:PATCH /v1/watch-history/collection/{collection_name}/{item_id}
PATCH /v1/watch-history/collection/{collection_name}/{item_id}/episode/{episode_id}
- Add
POST /v1/watch-history/movie
support
- Fix invalid show API path during item POST
- Fix internal server bug in
POST /v1/watch-history/{collection_name}
when body didn't includeid
.
POST /v1/watch-history/{collection}
now requires item UUID instead of correct third party API id. Clients should instead post the correct item to the correct collection API instead of this being done inside the watch history post making the services much dependent of each other. Watch history service will still (only) check if the UUID is an existing and real collection item before adding it to the list.- First show item (POST and GET) implementation.
GET /v1/watch-history/{collection}
will no longer get data from other ( anime) APIs, this should be done (when needed) by clients as well.GET /v1/watch-history/{collection}
returns a simple list of items instead of a map mapping item id to item data.
- Hardcode and prefix layer names in order to not collide with other services
Change PATCH /v1/watch-history/collection/{collection_name}/{item_id}/episode/{episode_id}
property from date_watched to dates_watched
- Prefix all API routes with
/v1
- New episode routes:
GET /v1/watch-history/collection/{collection_name}/{item_id}/episode
POST /v1/watch-history/collection/{collection_name}/{item_id}/episode
GET /v1/watch-history/collection/{collection_name}/{item_id}/episode/{episode_id}
PATCH /v1/watch-history/collection/{collection_name}/{item_id}/episode/{episode_id}
DELETE /v1/watch-history/collection/{collection_name}/{item_id}/episode/{episode_id}
- Use github actions for unittesting and autmatic CDK diff, synth and deploy
- Add custom domain name for watch-history gateway
- Enable HTTPS using ACM cert
- Hardcode domain name for watch-history API
- Hardcode anime service API URL
- Increase burst/request limits to 10/5 requests per second
GET /v1/watch-history/collection/{collection_name}
changes:- Set limit of items per collection to 20 in
- Fetch anime posters from anime service for all returned items
- Use cognito username as unique identifier in watch-history items (instead of incorrct used cognito client id)
- Prefix all routes with version `v1
- Bump apigatewayv2 lib to
1.50.0
- Hardcode
ANIME_API_URL
toapi.anime.moshan.tv
- Hardcode
DOMAIN_NAME
toapi.watch-history.moshan.tv
- Use unique cognito username as primary key in watch-history DynamoDb table
- Add CORS settings for
https://moshan.tv
domain to watch-history gateway - Join anime data (poster, title, start_date) in response
of
GET /v1/watch-history/collections/anime
- Return map of
item_id
's to data inGET /v1/watch-history/collections/anime
response
- Change watch-history service from flask app and docker container into a pure serverless application deployed in AWS using CDK
- Bump to 1.0.0 as this was a major release and is deployed in prod in AWS ( although closed alpha right now)