* feat: add support for custom favicons
* Commit updated API documentation
* chore(i18n): add localization of text
* fix(js): regenerate package lock file
* chore(test): add favicon test
* fix: max size not respected
* Commit updated API documentation
* fix: move favicon.ico to the static dir
* fix: fix tests
* fix: remove hard-coded content-type of icon
* chore: update extracted translations
* feat(admin): add support for resetting to default icon
* chore: use a higher res default favicon
* Commit updated API documentation
---------
Co-authored-by: Owncast <owncast@owncast.online>
* feat(chat): require authentication to participate in chat
* fix: it's pretty much impossible to bypass the auth requirement, addressing review feedback anyway
* feat(chat): render chat text input as disabled if chat auth is required
* Commit updated API documentation
---------
Co-authored-by: Owncast <owncast@owncast.online>
* feat(ap): add support for shared inboxes to reduce outbound load
* feat(db): refactor ap followers db into followers repository
* fix(ap): use the updated activity library to pull out the shared inbox endpoint
* chore(deps): point at updated build of owncast/activity
* fix(ap): typeless endpoints
* feat(test): update ActivityPub test to support shared inboxes
* chore(test): remove unused variable
* fix: feedback from review. Guard against SSRF/non-HTTPS/local and handle transaction errors
* feat: Adds a webhook for when a user follow the stream
Frontend:
Adds a checkbox which renders only when social features are enabled.
Backend:
- Defines a new type for the event
- Implements the webhook including unit testing
- Fires the webhook inside the ApproveFollower handler
* Removes unnecessary Type fiels from Events struct
* refactor: renames SendUserFollowedEvent func to FediverseEngagementFollow and fixes linting errors
* fix: fixes unit test to reflect removed Type field from FediverseEngagementFollowEvent
* feat: fires webhook also when manual approvals are not required
* chore: slight cleanup
---------
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
* Initial plan
* Initial analysis of inline chat moderation 500 error issue
Co-authored-by: gabek <414923+gabek@users.noreply.github.com>
* Fix inline chat moderation 500 errors by supporting Authorization header tokens
- Modified RequireUserModerationScopeAccesstoken middleware to check both Authorization header (Bearer tokens) and URL query parameters
- This fixes the issue where inline chat moderation from the web UI was failing with 500 errors
- Maintains backward compatibility with existing code that uses query parameter tokens
- The fix aligns the chat endpoint behavior with the integrations endpoint which already supported Bearer tokens
Addresses the wiring issue between OpenAPI spec and API implementation identified in issue comments.
Co-authored-by: gabek <414923+gabek@users.noreply.github.com>
* Fix inline chat moderation 500 errors by adding nil pointer checks
Co-authored-by: gabek <414923+gabek@users.noreply.github.com>
* Fix nil pointer vulnerabilities across all OpenAPI endpoints
Co-authored-by: gabek <414923+gabek@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: gabek <414923+gabek@users.noreply.github.com>
* make a new function to generate appropriate to and cc apub objects
* use new addressing function to set "public" message addressing appropriately with the followers collection
* early return from sending federated message if federation is disabled
* cleanup old addressing code, apply new addressing mechanism to live notifications as well
* linter fix
* Update activitypub/outbox/outbox.go
---------
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
* fix prometheus handlers not serving responses
* add basic integration test to prometheus handler
* modify .gitignore to ignore all ffmpeg versioned folders instead of just any file exactly matching "ffmpeg"
* feat(integerations): add route to get user details
* Commit updated API documentation
* test(integrations): implement unit test for get user details
---------
Co-authored-by: Owncast <owncast@owncast.online>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
* WIP
* fix(test): fix ap test failing
* fix: fix unkeyed fields being used
* chore(tests): clean up browser tests by splitting out federation UI tests