owncast/db
Gabe Kangas b835de2dc4
IndieAuth support (#1811)
* Able to authenticate user against IndieAuth. For #1273

* WIP server indieauth endpoint. For https://github.com/owncast/owncast/issues/1272

* Add migration to remove access tokens from user

* Add authenticated bool to user for display purposes

* Add indieauth modal and auth flair to display names. For #1273

* Validate URLs and display errors

* Renames, cleanups

* Handle relative auth endpoint paths. Add error handling for missing redirects.

* Disallow using display names in use by registered users. Closes #1810

* Verify code verifier via code challenge on callback

* Use relative path to authorization_endpoint

* Post-rebase fixes

* Use a timestamp instead of a bool for authenticated

* Propertly handle and display error in modal

* Use auth'ed timestamp to derive authenticated flag to display in chat

* don't redirect unless a URL is present

avoids redirecting to `undefined` if there was an error

* improve error message if owncast server URL isn't set

* fix IndieAuth PKCE implementation

use SHA256 instead of SHA1, generates a longer code verifier (must be 43-128 chars long), fixes URL-safe SHA256 encoding

* return real profile data for IndieAuth response

* check the code verifier in the IndieAuth server

* Linting

* Add new chat settings modal anad split up indieauth ui

* Remove logging error

* Update the IndieAuth modal UI. For #1273

* Add IndieAuth repsonse error checking

* Disable IndieAuth client if server URL is not set.

* Add explicit error messages for specific error types

* Fix bad logic

* Return OAuth-keyed error responses for indieauth server

* Display IndieAuth error in plain text with link to return to main page

* Remove redundant check

* Add additional detail to error

* Hide IndieAuth details behind disclosure details

* Break out migration into two steps because some people have been runing dev in production

* Add auth option to user dropdown

Co-authored-by: Aaron Parecki <aaron@parecki.com>
2022-04-21 14:55:26 -07:00
..
db.go Troubleshoot misskey follows 2022-04-08 13:33:30 -07:00
models.go IndieAuth support (#1811) 2022-04-21 14:55:26 -07:00
query.sql IndieAuth support (#1811) 2022-04-21 14:55:26 -07:00
query.sql.go IndieAuth support (#1811) 2022-04-21 14:55:26 -07:00
README.md Social features / ActivityPub federation (#1629) 2022-01-12 13:53:10 -08:00
schema.sql IndieAuth support (#1811) 2022-04-21 14:55:26 -07:00

SQL Queries

sqlc generates type-safe code from SQL. Here's how it works:

  1. You define the schema in schema.sql.
  2. You write your queries in query.sql using regular SQL.
  3. You run sqlc generate to generate Go code with type-safe interfaces to those queries.
  4. You write application code that calls the generated code.

Only those who need to create or update SQL queries will need to have sqlc installed on their system. It is not a dependency required to build the codebase.

Install sqlc

Snap

sudo snap install sqlc

Go install

go install github.com/kyleconroy/sqlc/cmd/sqlc@latest

macOS

brew install sqlc

Download a release

Visit https://github.com/kyleconroy/sqlc/releases to download a release for your environment.