Zayden-Jung
61e3d71b72
make a media api, encapsulate the original S3 bucket address
...
there are 3 parts, from back to head, url inside the bucket -> url of backend media api -> backend domain, only the last part is spliced by frontend, the other two parts are spliced with sqlalchemy
2026-05-20 17:31:49 +08:00
Zayden-Jung
d2162f93e0
fix context; decoupling decode_token algo
2026-05-20 15:40:59 +08:00
Zayden-Jung
b95cce592f
fullfill graphql usertype; change db session to dep injection
2026-05-20 14:40:05 +08:00
Zayden-Jung
f3b7fedade
feat(graphql): implement secure session refresh mutation with token rotation
2026-05-20 03:10:07 +08:00
Zayden-Jung
9dfe000f2d
refactor(auth): remove legacy RESTful user routes and migrate authentication to GraphQL context
...
- Rename get_current_user to get_current_user_id in auth/deps.py to clarify intent
- Remove legacy /me, /logout routes, and placeholder function from auth/__init__.py
- Remove dependency_overrides from app/main.py
- Update CustomContext to resolve and cache full User objects via db query
2026-05-20 02:52:54 +08:00
Zayden-Jung
d54aeaa61a
load dotenv everywhere it's needed; postgresql pool pre ping
2026-05-20 02:21:22 +08:00
Zayden-Jung
c68d88b8c1
feat(auth): integrate Google OAuth2 and secure cookie management
...
- Configured CORS middleware to allow cross-origin requests from the frontend.
- Implemented Google OAuth2 login flow and post-auth frontend redirection.
- Managed secure HTTP-only cookies for access, refresh, and state tokens.
2026-05-19 23:55:03 +08:00
Zayden-Jung
2b5e193046
auth.py is a duplication of google.py; rename jwt.py -> tokens.py avoid confuse with pyjwt
2026-05-19 23:23:21 +08:00
Zayden-Jung
af5f7b38f8
auth/ is now an independent package
2026-05-19 22:31:30 +08:00
Zayden-Jung
623fac8749
app/auth/ is now an independent package, import nothing from app/
2026-05-19 22:29:21 +08:00
Zayden-Jung
fe1fde778f
fix jwt token decoding; correctly import google auth routes; adjust app/auth/ package
2026-05-19 22:21:27 +08:00
Zayden-Jung
419af38684
fix missing type annotations for graphql query field arguments
2026-05-19 02:03:35 +08:00
Zayden-Jung
b58f74d59b
discard adjustable models' id prefix & payload length
2026-05-19 01:54:06 +08:00
Zayden-Jung
86b030930c
fix bugs for launch: postgresql url for sqlalchemy; auto loading env
2026-05-19 01:39:57 +08:00
Zayden-Jung
a83befe109
use strawberry dataLoader to solve N+1 query problem
2026-05-19 00:28:04 +08:00
Zayden-Jung
9c55cc675e
introduce graphql
2026-05-19 00:24:45 +08:00
Zayden-Jung
78f15c80a1
enrich user-project interaction statistics
2026-05-19 00:05:56 +08:00
Zayden-Jung
0377d5071f
background task for s3 avatar uploading
2026-05-18 23:51:59 +08:00
Zayden-Jung
4388a6781a
add default avatar gen is google avatar not exists
2026-05-18 23:45:17 +08:00
Zayden-Jung
6ed6d38273
secure avatar to s3 by exception control
2026-05-18 23:39:56 +08:00
Zayden-Jung
d73118ad79
auto id length in bi ref: workspace
2026-05-18 23:30:29 +08:00
Zayden-Jung
41fc874481
auto id length in bi ref: library
2026-05-18 23:28:44 +08:00
Zayden-Jung
60999c4271
auto id length in bi ref: project
2026-05-18 23:27:42 +08:00
Zayden-Jung
e75c243dcc
add user statistics
2026-05-18 23:22:27 +08:00
Zayden-Jung
7a401fa904
rename project node -> project item
2026-05-18 22:54:37 +08:00
Zayden-Jung
8ea64de612
auto id length in bi ref: interaction
2026-05-18 22:53:02 +08:00
Zayden-Jung
4a48982412
import alembic, even through too early
2026-05-18 22:49:04 +08:00
Zayden-Jung
d457c07f40
table follow requires the id length of user
2026-05-18 22:36:23 +08:00
Zayden-Jung
a73b3cce26
retains the original style while supporting custom lengths
2026-05-18 22:30:07 +08:00
Zayden-Jung
abcdea2645
custom id prefix and payload length
2026-05-18 22:24:22 +08:00
Zayden-Jung
333dd9dd35
add social interactions, rich media metadata, and workspace description
2026-05-17 22:49:26 +08:00
Zayden-Jung
3f79d1d85a
enrich workspace table information
2026-05-17 22:47:00 +08:00
Zayden-Jung
1193aa9439
enrich the invitation link and related informationev
2026-05-17 22:44:28 +08:00
Zayden-Jung
00a30b05d3
update __init__ export of models/
2026-05-17 22:39:46 +08:00
Zayden-Jung
7813731ea9
project & library table
2026-05-17 22:39:20 +08:00
Zayden-Jung
0dd31f5a4f
create workspace table & workspace-user membership
2026-05-17 22:37:43 +08:00
Zayden-Jung
7a583c0486
create follow table: user follows user
2026-05-17 22:35:52 +08:00
Zayden-Jung
a4c30b0557
update user table
2026-05-17 22:35:05 +08:00
Zayden-Jung
8940876694
change avatar (and other images) to relative path of s3 bucket
2026-05-17 19:29:08 +08:00
Zayden-Jung
9748992135
use aliyun s3 store for this project
2026-05-17 19:24:20 +08:00
Zayden-Jung
0d784c994a
jwt token and refresh token expire time is determined via env var
2026-05-17 18:41:19 +08:00
Zayden-Jung
49ed92d37e
jwt token and refresh token expire time is determined via env var
2026-05-17 18:41:15 +08:00
Zayden-Jung
ceea04299a
modify the project, everything go under app folder
2026-05-16 20:13:46 +08:00