Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
44beeac
audio upload extension with gdrive credentials
01PrathamS Dec 5, 2025
d5b9518
FIX: API parameters
01PrathamS Dec 5, 2025
9392989
Merge branch 'main' into audio_upload_extend
AnkushMalaker Dec 7, 2025
5b5ea64
UPDATE: tmp files cleanup n code refactored as per review
01PrathamS Dec 8, 2025
5abd99d
REFACTOR: minor refactor as per review
01PrathamS Dec 8, 2025
3d00bac
REFACTOR: minor update as per review
01PrathamS Dec 8, 2025
b036185
UPDATE: gdrive sync logic
01PrathamS Dec 9, 2025
cff1a4c
REFACTOR: code update as per gdrive and update credential client
01PrathamS Dec 10, 2025
6534288
REFACTOR: validation updated - as per review from CR
01PrathamS Dec 10, 2025
1ff28cb
UPDATE: code has been refactore for UUID for diffrent audio upload so…
01PrathamS Dec 15, 2025
8e5a6b2
REFACTOR: updated code as per review
01PrathamS Dec 15, 2025
d2795cb
Update documentation and configuration to reflect the transition from…
AnkushMalaker Dec 18, 2025
2e4473d
Merge branch 'main' into audio_upload_extend
AnkushMalaker Dec 18, 2025
e393250
Merge branch 'dev' into audio_upload_extend
AnkushMalaker Dec 18, 2025
f4907a9
Merge branch 'dev' into further-rename
AnkushMalaker Dec 18, 2025
e9363b9
Update test script to use docker-compose-test.yml for all test-relate…
AnkushMalaker Dec 20, 2025
2e79b70
Merge pull request #203 from chronicler-ai/further-rename
AnkushMalaker Dec 20, 2025
1385321
Added standard MIT license
thestumonkey Dec 22, 2025
eb25a5d
Merge branch 'dev' into chronicle-main
thestumonkey Dec 22, 2025
f578ce9
Merge pull request #226 from Ushadow-io/license
thestumonkey Dec 22, 2025
dc70ca2
Fix/cleanup model (#219)
AnkushMalaker Dec 22, 2025
79390c3
fix/broken-tests (#230)
AnkushMalaker Dec 22, 2025
dafe563
Feat/add obsidian 3 (#233)
AnkushMalaker Dec 24, 2025
fd61688
Update .gitignore to exclude all files in app/ios and app/android dir…
AnkushMalaker Jan 1, 2026
39a680c
fix: Copy full source code in speaker-recognition Dockerfile (#243)
AnkushMalaker Jan 2, 2026
b85c55e
Enhance configuration management and add new setup scripts (#235)
AnkushMalaker Jan 2, 2026
1036a17
Refactor configuration management in wizard and ChronicleSetup (#246)
AnkushMalaker Jan 3, 2026
9ceb6d4
added JWT issuers for audience auth for service interop and shared us…
thestumonkey Jan 6, 2026
4c6d20d
Merge branch 'main' into dev
AnkushMalaker Jan 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .env.template
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,10 @@ SPEAKER_SERVICE_URL=http://${DOMAIN}:${SPEAKER_PORT}
# JWT secret key - make this random and long
AUTH_SECRET_KEY=your-super-secret-jwt-key-here-make-it-random-and-long

# JWT-token issuer ACCEPTED_ISSUERS can be a comma-separated list of accepted issuers
# defaults to 'chronicle,ushadow' if not set
# ACCEPTED_ISSUERS=chronicle,ushadow

# Admin account
ADMIN_EMAIL=admin@example.com
ADMIN_PASSWORD=secure-admin-password
Expand Down
11 changes: 10 additions & 1 deletion backends/advanced/src/advanced_omi_backend/auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,14 @@ def _verify_configured(var_name: str, *, optional: bool = False) -> Optional[str
ADMIN_PASSWORD = _verify_configured("ADMIN_PASSWORD")
ADMIN_EMAIL = _verify_configured("ADMIN_EMAIL", optional=True) or "admin@example.com"

# Accepted token issuers - comma-separated list of services whose tokens we accept
# Default: "chronicle,ushadow" (accept tokens from both chronicle and ushadow)
ACCEPTED_ISSUERS = [
iss.strip()
for iss in os.getenv("ACCEPTED_TOKEN_ISSUERS", "chronicle,ushadow").split(",")
if iss.strip()
]
logger.info(f"Accepting tokens from issuers: {ACCEPTED_ISSUERS}")

class UserManager(BaseUserManager[User, PydanticObjectId]):
"""User manager with minimal customization for fastapi-users."""
Expand Down Expand Up @@ -100,7 +108,8 @@ async def get_user_manager(user_db=Depends(get_user_db)):
def get_jwt_strategy() -> JWTStrategy:
"""Get JWT strategy for token generation and validation."""
return JWTStrategy(
secret=SECRET_KEY, lifetime_seconds=JWT_LIFETIME_SECONDS
secret=SECRET_KEY, lifetime_seconds=JWT_LIFETIME_SECONDS,
token_audience=["fastapi-users:auth"] + ACCEPTED_ISSUERS
)


Expand Down