From d5847e2d2b68a1eb41d43be170cd4ddff9003cff Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Mon, 17 Mar 2025 15:06:17 +0100 Subject: [PATCH] [feature] Application creation + management via API + settings panel (#3906) * [feature] Application creation + management via API + settings panel * fix docs links * add errnorows test * use known application as shorter * add comment about side effects --- docs/api/authentication.md | 22 +- docs/api/swagger.yaml | 187 ++++++++++++++- .../user-settings-applications-details.png | Bin 0 -> 250896 bytes .../public/user-settings-applications-new.png | Bin 0 -> 164598 bytes docs/swagger.go | 118 ++++++--- docs/user_guide/settings.md | 67 ++++++ internal/api/client/apps/appcreate.go | 73 ++++-- internal/api/client/apps/appdelete.go | 98 ++++++++ internal/api/client/apps/appget.go | 98 ++++++++ internal/api/client/apps/apps.go | 10 +- internal/api/client/apps/appsget.go | 146 +++++++++++ internal/api/client/tokens/tokensget.go | 6 +- internal/api/model/application.go | 3 + internal/api/util/scopes.go | 3 + internal/db/application.go | 11 +- internal/db/bundb/admin.go | 11 + internal/db/bundb/application.go | 154 ++++++++++-- internal/db/bundb/application_test.go | 32 ++- .../20250310144102_application_management.go | 105 ++++++++ internal/db/bundb/status.go | 3 +- internal/gtsmodel/token.go | 2 +- internal/processing/account/delete.go | 32 ++- .../processing/application/application.go | 38 +++ .../{app.go => application/create.go} | 48 +++- internal/processing/application/delete.go | 70 ++++++ internal/processing/application/get.go | 104 ++++++++ internal/processing/processor.go | 7 + internal/typeutils/internaltofrontend.go | 24 +- internal/typeutils/internaltofrontend_test.go | 150 ++++++++++++ .../components/authorization/index.tsx | 12 +- .../components/authorization/login.tsx | 2 +- .../settings/components/highlightedcode.tsx | 44 ++++ web/source/settings/components/status.tsx | 2 +- .../settings/components/user-logout-card.tsx | 2 +- web/source/settings/index.tsx | 2 +- .../lib/query/admin/custom-emoji/index.ts | 6 +- .../query/admin/domain-permissions/export.ts | 2 +- web/source/settings/lib/query/gts-api.ts | 3 +- .../lib/query/{oauth => login}/index.ts | 39 ++- .../settings/lib/query/user/applications.ts | 146 +++++++++++ web/source/settings/lib/types/application.ts | 71 ++++++ web/source/settings/lib/types/oauth.ts | 49 ++++ web/source/settings/lib/types/scopes.ts | 139 +++++++++++ .../settings/lib/util/formvalidators.ts | 71 +++++- web/source/settings/lib/util/index.ts | 2 +- .../settings/redux/{oauth.ts => login.ts} | 52 ++-- web/source/settings/redux/store.ts | 10 +- web/source/settings/style.css | 56 +++++ .../views/admin/debug/apurl/index.tsx | 29 +-- .../views/user/applications/callback.tsx | 121 ++++++++++ .../views/user/applications/common.tsx | 85 +++++++ .../views/user/applications/detail.tsx | 226 ++++++++++++++++++ .../views/user/applications/index.tsx | 44 ++++ .../settings/views/user/applications/new.tsx | 150 ++++++++++++ .../views/user/applications/search.tsx | 190 +++++++++++++++ web/source/settings/views/user/menu.tsx | 17 ++ web/source/settings/views/user/migration.tsx | 4 +- .../settings/views/user/posts/index.tsx | 2 +- web/source/settings/views/user/profile.tsx | 2 +- web/source/settings/views/user/router.tsx | 59 +++-- web/source/yarn.lock | 27 ++- 61 files changed, 3036 insertions(+), 252 deletions(-) create mode 100644 docs/overrides/public/user-settings-applications-details.png create mode 100644 docs/overrides/public/user-settings-applications-new.png create mode 100644 internal/api/client/apps/appdelete.go create mode 100644 internal/api/client/apps/appget.go create mode 100644 internal/api/client/apps/appsget.go create mode 100644 internal/db/bundb/migrations/20250310144102_application_management.go create mode 100644 internal/processing/application/application.go rename internal/processing/{app.go => application/create.go} (68%) create mode 100644 internal/processing/application/delete.go create mode 100644 internal/processing/application/get.go create mode 100644 web/source/settings/components/highlightedcode.tsx rename web/source/settings/lib/query/{oauth => login}/index.ts (87%) create mode 100644 web/source/settings/lib/query/user/applications.ts create mode 100644 web/source/settings/lib/types/application.ts create mode 100644 web/source/settings/lib/types/oauth.ts create mode 100644 web/source/settings/lib/types/scopes.ts rename web/source/settings/redux/{oauth.ts => login.ts} (59%) create mode 100644 web/source/settings/views/user/applications/callback.tsx create mode 100644 web/source/settings/views/user/applications/common.tsx create mode 100644 web/source/settings/views/user/applications/detail.tsx create mode 100644 web/source/settings/views/user/applications/index.tsx create mode 100644 web/source/settings/views/user/applications/new.tsx create mode 100644 web/source/settings/views/user/applications/search.tsx diff --git a/docs/api/authentication.md b/docs/api/authentication.md index b9fccf98b..2fb5bea5f 100644 --- a/docs/api/authentication.md +++ b/docs/api/authentication.md @@ -2,6 +2,9 @@ Using the client API requires authentication. This page documents the general flow for retrieving an authentication token with examples for doing this on the CLI using `curl`. +!!! tip + If you want to get an API access token via the settings panel instead, without having to use the command line, see the [Application documentation](https://docs.gotosocial.org/en/latest/user_guide/settings/#applications). + ## Create a new application We need to register a new application, which we can then use to request an OAuth token. This is done by making a `POST` request to the `/api/v1/apps` endpoint. Replace `your_app_name` in the command below with the name you want to use for your application: @@ -19,18 +22,15 @@ curl \ The string `urn:ietf:wg:oauth:2.0:oob` is an indication of what is known as out-of-band authentication - a technique used in multi-factor authentication to reduce the number of ways that a bad actor can intrude on the authentication process. In this instance, it allows us to view and manually copy the tokens created to use further in this process. -Note that `scopes` can be any space-separated combination of: - -- `read` -- `write` -- `admin` +!!! tip "Scopes" + It is always good practice to grant your application the lowest tier permissions it needs to do its job. e.g. If your application won't be making posts, use `scope=read` or even a subscope of that. + + In this spirit, "read" is used in the example above, which means that the application will be restricted to only being able to do "read" actions. + + For a list of available scopes, see [the swagger docs](https://docs.gotosocial.org/en/latest/api/swagger/). !!! warning - GoToSocial does not currently support scoped authorization tokens, so any token you obtain in this process will be able to perform all actions on your behalf, including admin actions if your account has admin permissions. Nevertheless, it is always good practice to grant your application the lowest tier permissions it needs to do its job. e.g. If your application won't be making posts, use scope=read. - - In this spirit, "read" is used in the example above, which means that in the future when scoped tokens are supported, the application will be restricted to only being able to do "read" actions. - - You can read more about additional planned OAuth security features [right here](https://github.com/superseriousbusiness/gotosocial/issues/2232). + GoToSocial did not support scoped authorization tokens before version 0.19.0, so if you are using a version of GoToSocial below that, then any token you obtain in this process will be able to perform all actions on your behalf, including admin actions if your account has admin permissions. A successful call returns a response with a `client_id` and `client_secret`, which we are going need to use in the rest of the process. It looks something like this: @@ -126,7 +126,6 @@ See this example: ```bash curl \ - -H 'Content-Type: application/json' \ -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ 'https://example.org/api/v1/accounts/verify_credentials' ``` @@ -140,7 +139,6 @@ For example, you can issue another `GET` request to the API using the same acces ```bash curl \ - -H 'Content-Type: application/json' \ -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ 'https://example.org/api/v1/notifications' ``` diff --git a/docs/api/swagger.yaml b/docs/api/swagger.yaml index 6d9ca2f95..ce415784a 100644 --- a/docs/api/swagger.yaml +++ b/docs/api/swagger.yaml @@ -828,6 +828,11 @@ definitions: description: Client secret associated with this application. type: string x-go-name: ClientSecret + created_at: + description: When the application was created. (ISO 8601 Datetime) + example: "2021-07-30T09:20:25+00:00" + type: string + x-go-name: CreatedAt id: description: The ID of the application. example: 01FBVD42CQ3ZEEVMW180SBX03B @@ -3649,6 +3654,54 @@ info: contact: email: admin@gotosocial.org name: GoToSocial Authors + description: |- + This document describes the GoToSocial HTTP API. + + For information on how to authenticate with the API using an OAuth access token, see the documentation here: https://docs.gotosocial.org/en/latest/api/authentication/. + + Available scopes are: + + admin: grants admin access to everything + admin:read: grants admin read access to everything + admin:read:accounts: grants admin read access to accounts + admin:read:domain_allows: grants admin read access to domain_allows + admin:read:domain_blocks: grants admin read access to domain_blocks + admin:read:reports: grants admin read access to reports + admin:write: grants admin write access to everything + admin:write:accounts: grants write read access to accounts + admin:write:domain_allows: grants admin write access to domain_allows + admin:write:domain_blocks: grants write read access to domain_blocks + admin:write:reports: grants admin write access to reports + profile: grants read access to verify_credentials + push: grants read/write access to push + read: grants read access to everything + read:accounts: grants read access to accounts + read:applications: grants read access to user-managed applications + read:blocks: grants read access to blocks + read:bookmarks: grants read access to bookmarks + read:favourites: grants read access to accounts + read:filters: grants read access to filters + read:follows: grants read access to follows + read:lists: grants read access to lists + read:mutes: grants read access to mutes + read:notifications: grants read access to notifications + read:search: grants read access to search + read:statuses: grants read access to statuses + write: grants write access to everything + write:accounts: grants write access to accounts + write:applications: grants write access to user-managed applications + write:blocks: grants write access to blocks + write:bookmarks: grants write access to bookmarks + write:conversations: grants write access to conversations + write:favourites: grants write access to favourites + write:filters: grants write access to filters + write:follows: grants write access to follows + write:lists: grants write access to lists + write:media: grants write access to media + write:mutes: grants write access to mutes + write:notifications: grants write access to notifications + write:reports: grants write access to reports + write:statuses: grants write access to statuses license: name: AGPL3 url: https://www.gnu.org/licenses/agpl-3.0.en.html @@ -7484,6 +7537,63 @@ paths: tags: - announcements /api/v1/apps: + get: + description: |- + The next and previous queries can be parsed from the returned Link header. + + Example: + + ``` + ; rel="next", ; rel="prev" + ```` + operationId: appsGet + parameters: + - description: Return only items *OLDER* than the given max item ID. The item with the specified ID will not be included in the response. + in: query + name: max_id + type: string + - description: Return only items *newer* than the given since item ID. The item with the specified ID will not be included in the response. + in: query + name: since_id + type: string + - description: Return only items *immediately newer* than the given since item ID. The item with the specified ID will not be included in the response. + in: query + name: min_id + type: string + - default: 20 + description: Number of items to return. + in: query + name: limit + type: integer + produces: + - application/json + responses: + "200": + description: "" + headers: + Link: + description: Links to the next and previous queries. + type: string + schema: + items: + $ref: '#/definitions/application' + type: array + "400": + description: bad request + "401": + description: unauthorized + "404": + description: not found + "406": + description: not acceptable + "500": + description: internal server error + security: + - OAuth2 Bearer: + - read:applications + summary: Get an array of applications that are managed by the requester. + tags: + - apps post: consumes: - application/json @@ -7493,8 +7603,10 @@ paths: The registered application can be used to obtain an application token. This can then be used to register a new account, or (through user auth) obtain an access token. - The parameters can also be given in the body of the request, as JSON, if the content-type is set to 'application/json'. - The parameters can also be given in the body of the request, as XML, if the content-type is set to 'application/xml'. + If the application was registered with a Bearer token passed in the Authorization header, the created application will be managed by the authenticated user (must have scope write:applications). + + Parameters can also be given in the body of the request, as JSON, if the content-type is set to 'application/json'. + Parameters can also be given in the body of the request, as XML, if the content-type is set to 'application/xml'. operationId: appCreate parameters: - description: The name of the application. @@ -7548,6 +7660,69 @@ paths: summary: Register a new application on this instance. tags: - apps + /api/v1/apps/{id}: + delete: + operationId: appDelete + parameters: + - description: The id of the application to delete. + in: path + name: id + required: true + type: string + produces: + - application/json + responses: + "200": + description: The deleted application. + schema: + $ref: '#/definitions/application' + "400": + description: bad request + "401": + description: unauthorized + "404": + description: not found + "406": + description: not acceptable + "500": + description: internal server error + security: + - OAuth2 Bearer: + - write:applications + summary: Delete a single application managed by the requester. + tags: + - apps + get: + operationId: appGet + parameters: + - description: The id of the requested application. + in: path + name: id + required: true + type: string + produces: + - application/json + responses: + "200": + description: The requested application. + schema: + $ref: '#/definitions/application' + "400": + description: bad request + "401": + description: unauthorized + "404": + description: not found + "406": + description: not acceptable + "500": + description: internal server error + security: + - OAuth2 Bearer: + - read:applications + summary: Get a single application managed by the requester. + tags: + - apps /api/v1/blocks: get: description: |- @@ -11705,15 +11880,15 @@ paths: ```` operationId: tokensInfoGet parameters: - - description: Return only items *OLDER* than the given max status ID. The item with the specified ID will not be included in the response. + - description: Return only items *OLDER* than the given max item ID. The item with the specified ID will not be included in the response. in: query name: max_id type: string - - description: Return only items *newer* than the given since status ID. The item with the specified ID will not be included in the response. + - description: Return only items *newer* than the given since item ID. The item with the specified ID will not be included in the response. in: query name: since_id type: string - - description: Return only items *immediately newer* than the given since status ID. The item with the specified ID will not be included in the response. + - description: Return only items *immediately newer* than the given since item ID. The item with the specified ID will not be included in the response. in: query name: min_id type: string @@ -12927,6 +13102,7 @@ securityDefinitions: push: grants read/write access to push read: grants read access to everything read:accounts: grants read access to accounts + read:applications: grants read access to user-managed applications read:blocks: grants read access to blocks read:bookmarks: grants read access to bookmarks read:favourites: grants read access to accounts @@ -12939,6 +13115,7 @@ securityDefinitions: read:statuses: grants read access to statuses write: grants write access to everything write:accounts: grants write access to accounts + write:applications: grants write access to user-managed applications write:blocks: grants write access to blocks write:bookmarks: grants write access to bookmarks write:conversations: grants write access to conversations diff --git a/docs/overrides/public/user-settings-applications-details.png b/docs/overrides/public/user-settings-applications-details.png new file mode 100644 index 0000000000000000000000000000000000000000..a9143333160dfc13e601458afcc4ae5af650a450 GIT binary patch literal 250896 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%0A!SqEEWwfWeTATJG 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
3I}p)Xi$R%v?Jv5~le zIc$iT|0zH!*P2!%03{3$mz+O8T#V{Ps@MUOFTQ;rhL4H|z<#=UGvU?TTnnkA7Djst z3Rbt;tKy+x5tx6WTr&%$9e?l;xMyWqZ0&IGLKG}hpQ^QG=>RJ;r&Kd**|CO>!8N?cCOp9kZK^+mS?wc&d$9sNqPSTkr@{#8Wh z;reT;r72&I(^!u{14nviY+k@bWDOZIwOX5q_#z2m0W?{G@gB)Qtv1J;S95e%WJJ6L z;(6~<&%#k&Iy+w%*?8@i2)*Zm!hpc^H)YG6zG0)YeZE)HrJbK&SXhaSyrWz7U!92l zz`ohk@TP^kMbcHi7xJX0YUOXPL)aN%*u5PnO~r?o<@Zs)NMH!%v{xP;ugiHH<|okzf_0$>W*Sd?|EZDW?k@zb>=A2hT@&$QZ(&a zqLxQdBfiKwe{4c&y0oQiV%X|~YNIXg?YcbVjRQQ^bGqdJm=6iuf&euQ4oWW5&3=-qZRl=-3(SY`W`$4*0+h1amcHM_z1xZI1c zV=V$ti9k{#3(oS+?9(L&d90#k(Oz$do!k7q*GO$fA19v=^2t*T_?LfEK1a3G^9d@` zUkOSLmNvE=76ee(A0J1o-A!ZL>?mx;_Jh|W=IY@(*Knu?y5+i-olsXUSL5Q{AUnM1Q{5I`J? zj?z6~y@|W+Qy@k?7cXY5UDr(;1vxD#gBx`_r*2<3=v9jmRPbb893O6u{Pp#VG*25T zBuNQFWp%2zaufNgLUTPcQSDNOj4yC|M=3I71Q8w^$KKW1VrI!_PXg>qSuV3#oo=(! zObO|si#|3yDXO>_HmS;QK~a0SDbs8Lt6O(~j3Ina0A^)C&vx?q#$F~k*hE2;@qHI! zAWw}QiM!x`@K7I57z{VArr8%I)o(}2Ph%}gz@EbS{F)yvmqh^`u<-a4V~9}(orQ90 zv4H(!Ycx^;B61PV!`Bzh({bVr_pc37;2REQYrQx^XLkkhgM5wD@ZQsfoY6g8W)Y2a zvpoz}!Q>$evO#Vp6pgGK&}!~&a8TkFvk!B$QbO^k5@k0oB?P`6pW60xRvz%wKZ8Tt zGxMLjYJ;~$I;u}j_))2#dh69^lNt48k7^x7uWcvGiiYmxnB~-|(Aux~z468}57p|r zkW;n|_r8eZy;r(0fni~dpb({BrwB9cTm#!vD_|l{> zF?jaDiLJIk2545x0h9n(@617j#q&V%W z!f5!SDs;jO`nQ!cSk5uCS`VGHopna&vX8qAc4|!4f_Yg^v9v)svQrm#cvY&SV;jX4Tg% zi4kO29WgkyM=Q}Jw7X9>^IP=v#djiUm~UhpLo!EOVbswcKlmG%H>*?z`#rv({lXaW z(mh)sXhkM<;fvqkB4hSgDspMKlzu0;%yvP8W%J;$l1_CztMttgtRAZk&|mx5J_UMy zdo;z+@OP-TQGvR|z^uCp*GE9Ohc&U#X<^@y+9UZXRCN&HwypQFB{_b2m$yHYP}0&8 z<;aYh@+>HLN17~%e^gOLH2!`o{4q@r*4nvTQ)bS|A8&0rdZ%QBC)*3euTM30F^Aaz z>^mP_u65!Mem^#S2U?s5^Oql$TI#_EE)H|Mv`q|a$*rJ=6LParZVA{Kvd7KwmAv!q zQ-nmH)$E=*-lB6ZC>lZP!$)NV&W1}eIdA=IKsZL#rY3a=yws)InE_968>q-nflZ4> zl*aYO3zavGa}&BXD8JP1@j
47SQ4cioEhZOer7!)(C$RJx110I+x)TC2LdUmt#+f zj=@FEt32u-Fq7BiXLc4-=llukYJ2d00Whe&0U9*czIFp7{s6?dyOJh?VaDP>wJ7D`#~$`TP&#J z0G%CMI6J|{*&$ZJcU8cWu;VDW<$4NTc_XI$*&|5nmXbcS{@wZA9RE%34fExyP1E+Q ziJOgr6y)Jh^aghkIrKm}dtbP){ni46hAGGGe|CAgl{Icwx>D&M07nk*fiF{ssKtBi_Q8t9ad)Jq@*e0xC1#BJTB1Q+H6#MqNVT@MsH~odi)^`3EFI=9Z93v z+Ifj%j<_zbmZ@ep#TP_~<+&Nt4r(27JtuI_$CTP5ns(|o<79oQc94W2g+X1nCG$h$ z9M@f1J9gK0zjddTLk?`h|7aaWbXzLx(Eqzm-Ie>!E(KqdvrgBA;(&OO5*|gKX+;~Z<0$gc`Nf<+MJB4t7 zZ8W{qXQCCBk-5AvfBcd*INZdy)biXOTk(JnSa?I%<&$e(#V;^IrPxOWhMmDJs@#`j z1fmd1#^b(Owxh43kj7L`9FCeB5x%C6r4ZkMSplLt*}t%MEKA^2n^?9eb7M}Ncg3>X z-k8Tep+fI?>V*Azct@gheOO3FA-Chcy`KuNCqbkEWtmB z?r`yYsnT=A5TA|?s6>SrLB+u-^nL7=Jipj;HwU`cCJ{nH#Nn7=O0L3Tpr2u0p`e_* zuAr$Uy2hFDPH>M;aObxeFeQ&_C?mP{ z>7OQ4Du42GPgiYk(}X8spd?04t3-T?jwHycaEcH+9{2}iEB^(*gM(&+1l8^=b#?Xh zeDw5Gb@g=da8yOr4C<5!#F7O1Uu?yg&93pF{qXOBGy5L&b%`@y<37fYA(;NzlJ?zy zQ29tD#ECjS7t?u1w|81>8T1(WbS0jn{!aS~NG0{!W=>zTJ^MGJ&G%D+e)>9~QZyrsO$o`6$Yn0m6d5!@LzY! z`244?*K95_LNXhUA}Wq`KFt?9>h8I-pH>;o$09Jia|%BbMBzx1Iv71W6&tr+mt#DI zjNFU@8Cg+)KN1UJbAbC#lFy{aY+IAB?_&sw=HkA6>au|jM+13>AWe^AP2ea-dNO&97 z01r`l%nC>Z0QM|3{J8%*wezFE+P8N1nVCO0^qUjCjq12Oc78pM26cvoqD@QIJqQ?Q;8pgX9l6v}=rHHpOR`Y5g<3@W(nCIVEo$#~y}2 zBEHXq|GEBuB?U&ekoRcx z#F(S`cyN-Et_Ke<0JQYpL;Y|D{*5gXAfblk&CliOA|7F2+m>))7tkfZ>V>L%6r7Ik z^?|1K+HRL(y|8fbX8_l7lt87v61~gECGeTPH)5jLnKkZ&SMo$O-SAu`El&C1R=bvw zMGCrhGqcYWexN4ny2JzQd(X+CV)3*1`dt?Kagj?rfvlq)UEAVN`At2!pzsO~oUMJr z(Hc5)POIqj2EdSkq^Z$y5&~Gnnw>oP>}E-SGmM6#LG12))l_GRpwdE-B)QCCi=DXD zT?qzv5nX33^K?7Q3DE|PPK&TJQLWdgCVbIK&^86*_Ub~<(IFlO-QVvEM+sI&YfaY> zg$d|J2r((EWW)Y)>4=wqn7*W-NuWj)9Mi%SUBcdIH@~&|U-r(A@k3&uv5&tU9qOxa z+E>TU{e5_NvmDjDy(jj}R?*?EEs-M+2+U3a7{nz?7O;F8OJ>?tK3!+Z?2p6RaA(*_ zX9}h9#3Yp~*6r%ry&0ci8H2jG+8#M4k_pNd6*{-EQ7~fCzV+%fG@ZkP&!QbX@!!5k zf0Ic&TKf{c0aHQ0ie+f%DpS_@qZ`$W6*qe0BS&U073B01A`XF)fFC@WrS$ChlU>mb zNL;4sJB?n;oTh<&zGSA$OM(nFSIxAmO3jdr(dx8msg!o$(7cD%M{?ZrUS$q9AD)H) ziIR+?noi2m>ae$1B zY+&M$7#K@Oj9RHdtDzGyI}-igikNkM>*MUt>ezvvqw7Fv8u%mj6JCKBqz_N7`Buoc zr}XQS`eI2U!7q_|o-(8v;Cm*z0>{vt4I9m{w3F)9aniT6j_~${kQ&n0u~rN^up_>h7g-P!W&)GkVRk+7ieww zu&dwL3g5FZF9rXSri5zB*Q4zW1g0tG*4qIT3D3_(cstsv4S1QRWMpv(qlj=jh$?OM80&)> zyof5T6#3`N9Fnv0#`@dx{2MvClX*0_+zf3Novs_zyeIQj5*RS*Xg5FsKW(1#(7&}! z=a<$4wR+6Wk;J48=?D*!cXX@W4XOT9uwn}XJG+Nk)){!HA=Qd?Ra|-<;a-K2mw8ex z?Nj|QYe@% zPG}`=g}1MEXLXlwj&wCS6ATk7^Cx>YKXUZ3 z^K7Z7&oHt#eF4M<>vs<5eM2@u8~s1!e0MP1-}^5iA|XmdCxS%~y|X$&)Tq(B4WjPq zEkX2N7poRS%>Hp^cFx)7dET$*^}L=l z=e@9JBmzd zJLpKBlflMCKf&4YkSF&1zoE7m1T#W0d^*AV<3eJ*td0k>EKIq|16b0tg4jKss{qo6 z-if!(w?c(=WRomA~c=!}DP%E~p+C?wu-Vz76^uYdAR21SHrVSTnQ}d|mvN zUjM)TxO?zHcSmO>b%?^KU3V!qM?_<>RB$}2okn-D6`Tv<S|05ZPJ%M?vezIt%<( zwrv>EstE)fQ2LnR7w9t3RLV+M`3XlX|hV*HE@?uB)j2o&xOA_Z+yN51R}NNH6_Gp|rn%U=l`LBvk$9Nix|wrqCC zSVQ1mGxY_Lk#6`&b{|tCP;06>omp}@0lT*`8SlH&LURqfwTNk6nJQG^C(F&e>U(8o z#6DWmj};_&Ht8yyYC^^zR99JHpLtb|X97x!Pj23(j(D!PrjJ*EBV>OK3 zcfsLv=kR%wRq2|P_qUsKHvvk?gyEyx0W=yt%H=^8WJbdm?<7P!(_nk|4)t-h*ZbkTi6LjHW$8xI7&Si13SU~*W z{|YB0{O4BAzvF-MMaqB2|5j%G55Bqi@A$v{gOvghbgc_FijmUf6S^+m@6PdUN2Gb) zRT)&p*{no=g(_hzQ7+-bao0xUQ?xomBHf=q?A8TLZ}7Ktmw}Uf)VSVNFx%mjcpv>62Hh{shW+-z>W982jy-t>#s%3B3H7Rs2;XKdh9{+} z|5*Z1xb$MxZa>bXPp(eDJ){%LVF1M#Lk%BU3a!J4UTHyn-u~HqY{`I&Wt|Y&qg5=A zPa~!N>XSUQv{<{mRV^No{-D2ZbD*Gj<7c59_mD$V6nN{!+rE;ggEUtZBS3Ljt}Yra z3vY82dwN-pQ)#C>u4RSCiBul$uEH7N!8~WV0QGMMLel2mW5rMNGeEDIq2@aFsBfvY zxeJMrh59Wl!3ljE8{P5l@C_c^)Z{mq*jl!oA^|F9?r8$@^{qrYd}V#@T&R)^(YRaH z6U*z_d1EX6TK?pPvDo4fdx@GubZg3Fp7k0z_m5pR9bNC%k16ZF-K@hrl^*&dx|MDV z#9J0KevC}A#{LPTCN6QYiRaLxI!9#8?EI-I4a@1rALdJl+uJETiOqsykH)ztVt!{H zjjh#*l`inrQ+*m_VM1>8c3X_2y2gvmiBKCNuS5Av*_>_~nHpgxb&n&f!$Y2n^X#%N z@hk4B60f+)k&%}Ianir@I0^EUYRp6Q1tY{9UYkk#^0BvU`R;nM#51sYa+-sNwx=5* z?ki#>czyvd+)A0wvWTpGKq8Ier}T=m_-4vvA;s-aIdHR%OmW=(Oaw0N0uSZ1nXD!l zJ1`SOcZ`fsF6f0cXRECltk~4!{vx}-l{4$p>P^3&T{nolx(C2j*@plWRHjI?Sjz0< z_p-yWZ2H3YbV)fydmwJMo*N)URbu$u#FfZsi@eZZNPXi3SnS{7fB%o)OmiWxnBV-K{) zk+$FI0Q1!DZaQp7wFvtU2v;vJH?-8RH>kd+!9udpeY24^YP+OR@!jBJbYN}1`I{CU zYLIq_S`zpLP5<}?Lrk51UnoJv0R#4eP>jZt+F-N3^J{xOpm6A5N2>JgnNnIxqi6z_ z2_>ZfBT=DtP#{`IF%!4VZQJJI@fM)@iZMVerMF{9=q|T&Dd}jOQJs#DncR3ksOKY6 zHM4WlFtZcjFfZ?__N6P3ASbwBF^k<&J&(s}c+&WU959*xZs-%kO{>*fSxdj=0qo&N zTdjC=d>k&1h7;f)_yLGHWGR$rT;DS@x`{-K$PtI6nxAU-(`RjWb8t3xuK4HTPnyG6g;c1#rmg<@OxB)-3fiCVs1;r%*y2o;IASZ;^o;2I!#S`rN-#WWXe8&|#aKdP zJ%#{7)Ji9ptnn= zt+6WkQx-=$ZskSmKJzn0PiQ~k%&LELBGy)Up%8y14EDGnaKxNibbfZ?oCm(4WDT{6 z4RfRz_;Iqaq@}v@Ey+cYo7X?H!vhgaTPqW4Y-90=_yc6tscXnHEPpYj7fEgHloF=^ z*gZl=dMEkS#gy2pW-BbjDW%nTwQtH_0Tx^;G)I;aw=~hK#)y6;_4-0W&CXMeLoawNrINkM0WN|d;7ybp6 z0bD434knMQe`>mjMmWaQ+Ly%u|C#5-;f&=wIQY~9pj|3E!A4Im=t@k}cKkT`)DxPV z352=zc=!CUt4JtS54a32v)msruQd+&%PQUSKPRA3VS*~n4wxLqhAB|AGA~PD&zXbr z*5`rS(K>qav_9c#;vJ5Us<~Zc&gzrpCh9be$K)+*00=*ikw?N5eoJQ3g7JD|wKZ_* z)HUeX4~o9NhpcsD-1n0dwnauDa^*4s`3^lk#!{ybj8NXJ*6G5I-E0dV48@X4Dcd%V z7CS#-7cK#n=jNtHE0l5Uw-z&=FgPpdUWsZ1w{>Z&sww^f21}6ttjljXp;la{ec2YW z!*gB07c@G=onV9r``+;Ez$4DhvY-UK+By)2S0sOFkMkv^!+3@E^{K|>%JU!M&JWKb zX0MxwQyEb3ubwBVvZ4?FRAY=v?~7IOYkNY>aWr%;hPUc;{4YafdI$RGm}p+g7V|@%kIKc!81uG#oG5QK4z@8d1icH!2pH(_p1R4abNpQ^zJj@xfa&={WPb58+wm7 zfNWxW^?i0T7vbhH+;92Ll9TOz8paY}eLq##B>!XB|I1rzeSD{ym396^PQ67>3y+yJ zrox)KSi593zjWnm#^10N5)cQN2xo0qkUD{{wi>Dr-gVi}e2=y^eM@8T=R_p_q{#`;@E4X)8+%#$QV>fNL;_ep__^KyUrS z1ffyiY>s+RXQO>N5metXbfPRS@lkV~{c6lCQ?~sz)WTzaYDAZ=sD7{T+TA5iuHfOKey&gAKmBo z6jw{rjjqnS(n$eyS>8DN^TU*X_j7m@9$B=umU6UsiVjAX(wNO7eIj|Jshm#MfDm7W zywh{iGdx{|(=yOEa_;hS?JDU)ESQhpLw}(!^Lw}bOI;m(@z4Yf-p*iwC}aht9O;Mm z?ZIdB--Bg&sP7@$E%DRPmkf+sy4&CnbKA@BNnW?U+I`O$v8y;xMEmk33TE#u>A|fM7I&^r>cQs_ zv4&DSE;LDU8^cpH4t(;Ssc{gu`JrG?%VfaT783#Zmsaz>6HQr>K^)@(BbV1Hl@(q~ zNv+*DGeB93I|FR2NC03V>1YD^})$}jEQXO+(V|s(z~irOPsEw zJoAp;LeHWa0U8d*$VaMW0>v%i!Xl z%}0jw2ZP1DBZKBEk2su{SW`5CJ65|bsK<@$ErCsP40o=&5igU@)pMC!wvwX=`UV(T zK^s=vd+zA#6ym*~HiqeU#&028bqNvNe1dI5Y(Vj4$K8fjN@GU-66rt5GzKSr$4R}K zCG1jA{{g@=PEVjK(Ke|}u4%^FCt^dGAK?d89PvqY)MJ@LL#kTx8y0|NaE)JIuIV7V zsSHvAr1f-LhTw-Ka(7jm8E4_fzbo{AI8 zU(=^C@fboveMa~UN#D;uGGDL zVqTf~_QELvclzy!m$8+h=(>f4+rE!X1CJAU>6}6nm@fvlJ5o><+dpLim60V25B9O= z#!r`YwS2i*k;7J}+v$E_=$Z6yd&!&I2+{lmTbG<~*s1oS1k9X%1&cqI?ka#K;i0Qkc+$0}WEL}w>b&Rm-1->{%o2rLH@7km~Z>DC9j z2^16=hMxVE5~p87{H?L?IQ{XhCYOKck9?)G_P&_+X|6djGos>)buwo;llU&_!vAuF@fEZe+~uchyi2^bJQIOr{LLO?9F z*`w+`w8!`@zz2_qO2Kf@{trx0J3P{TN!$s%Y^O|6h_44JD9*>%L z;=-;pU4+U(+%~i7{FXhj?xQQ$Yx|kxxAO!f8xH2X)eQ(&JB47s;pHz1TcL&C4|JB? z_$KJf(La3(+kkvEk5nFnwk7b1Z^XT?64IF*0sUlEtevtOHfpb&pe<|rNT+!kh$Z|TmBFEvDAjK zL$MC0d^<4el2`jcnH!z)Jv^H&s!&ca^Ag9Cc(p>34TEWzExax8+f?h&f}s(}^wbxx z+C>aQxYo*gtG4=bBX{1@=;7OLMC`#h{_FGK%C$N_v8xW^?SYU@3`paa-4EA*UwmNl zv&jHp=0b2WdPun)m_i}na0Ej@Gy9`~m^Ec9sDJKkzvHU7Zc1<1xMNQBcx6-09ub?Y zSAKFewFwzlue}B)$<3`hYUHO`-|g8JJkRV7`V#Nn0H#??Pt+BpY!o<%{4iJb(_VRH zNE-F4gi^!VZ%xEcKJXaT^1<&a8e;E99epC2FxDVmVbO20>$}XyXm?P5FNJejaBQXu zjS-K{VjOuvMow%~)gSr~aZtc)$`o&4qt_k8jvs*fx#4!ix%7wAN}S~LLQheS)e!(DYvME`W+TtTJG))tg+ z?oPV92&AFcKJa$BKSYdjD0+`M{!rGLM`2O@SJmj}uu_9GtVE&$NPB~3c!|X(Mf_h~ zK1bYSqUVQyPy^5HY2(QGIQf?GWOpbe@`YdWA3muztSI1OQ@GnI;rb)%Z-1ZW{(x+% z!h-J!Q=!f5|69fXf7SwZlbm3>KJIsZlWYV5X7fs-#U?xk`t(R3*GW#g{zmgl;W-Q% zRXorzM5&(dYG*T5BwGWc(M{9oH3z`@h}J-dE_>n3G|yF%v+4B@e%G(edzpE!K>l{n ze&B9KXjGvu@MK^Isv;N(m-A6@&f%29mKR>5qv!#(hYksyE&CXH{`XLqA9Sz8u}N1A z?zJ6iuNaCsPK#IO2h=jJ^?SnP*XPHW|E|6P@^IM3mu1F$(X1;8%V4^?zm-kw)d2Gb zOrlUUwUbirXgV_8102gIckd4>`W0h4#QL{@u&Z4A7N<3iZx-UhuKud;wprZs0f&(* z!6Q8ndPr{rued3tarD(EF5_FJbR3T5UgOeM%wRryxwEMto|P?Yr3*7&n$xx~L~*~z zP9w8{9`?`H**#)WRU4e3OG*Q`_aSOE{LKP(RMD_!b;Ze9gB1p|H5@dN7pW)>rlX5T z9L^5mdVpO$8Ho#$8z^@@#?!4DL@at|il7UYM%#G;I=)dq*Tb>B>3-1Y3d)V_Vx6}& zohy<tg-hC2M2i=mGpSo1f+Oebg)95NBokwG_rVnlBnZ_Ag1(@b`}) zA)R*~geMwI`?G_*$lPeqn%2+<*TJ-7V_4f-`lmyXSl6eGVe_r}DUaK9hMeT04spDh zuEvPm*M0@82P3V6d|MegCr3QJk%*W^W?Zc^GL~B5sgoDqcM?H|mpFzg73f8ptyVr4?o4QU*Wa71y2d(b39 z(80$kkZ!DDs&rJDYG)uDKwn7aUcefw4W;sh$#GH(AG%X$M$8Pvd;5}|@)K#`l^4hr z2oI%F52&tr@rY0!lK2i!*GxILe{mrzcV9fs5`;Y0fz-!1^JK0ggT*X5qn6!PhsF4> z<@H-;%<3XoP(< zW2gh3SI(S`{?zvQxv|85&VKcldC&Rz?Ufkg)Pe%hdi8suKUsyoDvKNW>w^GR~e(^BRuO{&&S1flnXCE_a`z{1MR3S7b>Fwo<^gs;_ z`A9&_dq&LdS2WLtUy7PXlhR9+SCP4pfG=yaCpxsNTUOp=T$J;qfpBw|z&GSIud5t6 zf)oD0J4ak0eYU0^5r>R;aU%pq4zl94^CIl^I^0CWyC$>V-N^XEWW5DHQ0U`VAE`4r zzZ(yDFI>+$qC9=52&L3SG<#(t{Bcz2oel-Lxq12`0$-&i$cGHx;O2Mck9dz;Ya!fWVodMEZbUuY$Z#~u16neA$^tA|G+cu zs}<;#s51gIn080aXG^6)_10sXU9$nbN9VD8`Z<56Hud>aKT8$c;h9hzGOiC)JgqlL z4sN$YWCLFGBx=7Ski5*K1Pc1!-NZ4e<`58;9T%O$UVQ0~q0cbAyl^GN2CN1F4f6`T zg*ufIUcj0WU}OLflG|2y(YFi`&4%-4v}!89ghMA>Pb+LemFfO@HqDT~^}9sLBZuyy zgllY_E{NH}dO}ggn1D%#UaoAd=DT4TyyIbMe`nZCGZ(|gsp+JwCQ3yFr8~^8lrlmfd=){#FrvdqBkr2OMtljgzdpsgcDeD6ouRMHNXVaU$DD;_* zB@LUOylAmf_DI*sPakSo$e=svZdY1B(^6>+8lIvWyiQ(36i4_#{gmv=TJ|2SB1g;) ziXwBmHCGT@Bj214HA${*MDK&D>HVwNi)tv%_KI56-`|JyMd8ahZpMpAQBa%1!wL9iqyVhSgv2=aq{FCcf@H#y4F zys#kH61x+h4W1iA8S8-WcoOA%RZS;K+@OT$y;eV1qYp2$&&DgSiVc$aBRA$2Z;MS* z_bGxPc8YJVhOf7xGO7y+=zN9@7=hzat1tR06Y7(Gi8UGHp1kNJ8 zxDF?^W;4u4m1!*hM!%$5{Y%ar?fvN}3T_YLyphAqhmF-wWBzS(a@yLatE<^CB|~0f zhk3H!8=7;6UJ;8eL53aT?)vwb^_VIAY4FkK??nGDEjahX^o--8uxRu{LqkJTkX4Z> IlQQxDU%pv@9{>OV literal 0 HcmV?d00001 diff --git a/docs/swagger.go b/docs/swagger.go index ecd03e6b9..500abd7a2 100644 --- a/docs/swagger.go +++ b/docs/swagger.go @@ -17,6 +17,56 @@ // GoToSocial Swagger documentation. // +// This document describes the GoToSocial HTTP API. +// +// For information on how to authenticate with the API using an OAuth access token, see the documentation here: https://docs.gotosocial.org/en/latest/api/authentication/. +// +// Available scopes are: +// +// - admin: grants admin access to everything +// - admin:read: grants admin read access to everything +// - admin:read:accounts: grants admin read access to accounts +// - admin:read:domain_allows: grants admin read access to domain_allows +// - admin:read:domain_blocks: grants admin read access to domain_blocks +// - admin:read:reports: grants admin read access to reports +// - admin:write: grants admin write access to everything +// - admin:write:accounts: grants write read access to accounts +// - admin:write:domain_allows: grants admin write access to domain_allows +// - admin:write:domain_blocks: grants write read access to domain_blocks +// - admin:write:reports: grants admin write access to reports +// - profile: grants read access to verify_credentials +// - push: grants read/write access to push +// - read: grants read access to everything +// - read:accounts: grants read access to accounts +// - read:applications: grants read access to user-managed applications +// - read:blocks: grants read access to blocks +// - read:bookmarks: grants read access to bookmarks +// - read:favourites: grants read access to accounts +// - read:filters: grants read access to filters +// - read:follows: grants read access to follows +// - read:lists: grants read access to lists +// - read:mutes: grants read access to mutes +// - read:notifications: grants read access to notifications +// - read:search: grants read access to search +// - read:statuses: grants read access to statuses +// - write: grants write access to everything +// - write:accounts: grants write access to accounts +// - write:applications: grants write access to user-managed applications +// - write:blocks: grants write access to blocks +// - write:bookmarks: grants write access to bookmarks +// - write:conversations: grants write access to conversations +// - write:favourites: grants write access to favourites +// - write:filters: grants write access to filters +// - write:follows: grants write access to follows +// - write:lists: grants write access to lists +// - write:media: grants write access to media +// - write:mutes: grants write access to mutes +// - write:notifications: grants write access to notifications +// - write:reports: grants write access to reports +// - write:statuses: grants write access to statuses +// +// --- +// // Schemes: https, http // BasePath: / // Version: REPLACE_ME @@ -31,45 +81,47 @@ // authorizationUrl: https://example.org/oauth/authorize // tokenUrl: https://example.org/oauth/token // scopes: -// read: grants read access to everything -// write: grants write access to everything -// push: grants read/write access to push -// profile: grants read access to verify_credentials -// read:accounts: grants read access to accounts -// write:accounts: grants write access to accounts -// read:blocks: grants read access to blocks -// write:blocks: grants write access to blocks -// read:bookmarks: grants read access to bookmarks -// write:bookmarks: grants write access to bookmarks -// write:conversations: grants write access to conversations -// read:favourites: grants read access to accounts -// write:favourites: grants write access to favourites -// read:filters: grants read access to filters -// write:filters: grants write access to filters -// read:follows: grants read access to follows -// write:follows: grants write access to follows -// read:lists: grants read access to lists -// write:lists: grants write access to lists -// write:media: grants write access to media -// read:mutes: grants read access to mutes -// write:mutes: grants write access to mutes -// read:notifications: grants read access to notifications -// write:notifications: grants write access to notifications -// write:reports: grants write access to reports -// read:search: grants read access to search -// read:statuses: grants read access to statuses -// write:statuses: grants write access to statuses // admin: grants admin access to everything // admin:read: grants admin read access to everything -// admin:write: grants admin write access to everything // admin:read:accounts: grants admin read access to accounts -// admin:write:accounts: grants write read access to accounts -// admin:read:reports: grants admin read access to reports -// admin:write:reports: grants admin write access to reports // admin:read:domain_allows: grants admin read access to domain_allows -// admin:write:domain_allows: grants admin write access to domain_allows // admin:read:domain_blocks: grants admin read access to domain_blocks +// admin:read:reports: grants admin read access to reports +// admin:write: grants admin write access to everything +// admin:write:accounts: grants write read access to accounts +// admin:write:domain_allows: grants admin write access to domain_allows // admin:write:domain_blocks: grants write read access to domain_blocks +// admin:write:reports: grants admin write access to reports +// profile: grants read access to verify_credentials +// push: grants read/write access to push +// read: grants read access to everything +// read:accounts: grants read access to accounts +// read:applications: grants read access to user-managed applications +// read:blocks: grants read access to blocks +// read:bookmarks: grants read access to bookmarks +// read:favourites: grants read access to accounts +// read:filters: grants read access to filters +// read:follows: grants read access to follows +// read:lists: grants read access to lists +// read:mutes: grants read access to mutes +// read:notifications: grants read access to notifications +// read:search: grants read access to search +// read:statuses: grants read access to statuses +// write: grants write access to everything +// write:accounts: grants write access to accounts +// write:applications: grants write access to user-managed applications +// write:blocks: grants write access to blocks +// write:bookmarks: grants write access to bookmarks +// write:conversations: grants write access to conversations +// write:favourites: grants write access to favourites +// write:filters: grants write access to filters +// write:follows: grants write access to follows +// write:lists: grants write access to lists +// write:media: grants write access to media +// write:mutes: grants write access to mutes +// write:notifications: grants write access to notifications +// write:reports: grants write access to reports +// write:statuses: grants write access to statuses // OAuth2 Application: // type: oauth2 // flow: application diff --git a/docs/user_guide/settings.md b/docs/user_guide/settings.md index 7e85e0ed8..590b04b42 100644 --- a/docs/user_guide/settings.md +++ b/docs/user_guide/settings.md @@ -287,3 +287,70 @@ Logging out of an application does not necessarily remove the token from the GoT !!! note Token "Last used" time is approximate and may be off by an hour in either direction. + +## Applications + +In the applications section, you can create a new managed OAuth client application, and search through applications that you've created. + +### What is an OAuth client application? + +A GoToSocial OAuth client application is equivalent to an OAuth 2.0 client as described in [the Auth0 roles docs](https://auth0.com/intro-to-iam/what-is-oauth-2#oauth20-roles). + +When you create an application, you can then, as the "Resource Owner" of your account, give the application access to your account via an access token, which the application can use to interact with the GoToSocial client API "as you", or "on your behalf". + +For example, when you log in to your GoToSocial account using Tusky, Tusky first registers itself with your instance as an OAuth client application, and then requests the instance to redirect you to a page where you can sign in with your GoToSocial email address and password in order to authorize Tusky to get an access code. Tusky then stores and uses that access code in all further requests, to do what you tell it to do: post statuses, read timelines, etc. + +The advantage of OAuth client applications is that they never store (or even see) your password: they only ever act as you using their access token, which can be invalidated so that the application cannot access your account anymore, without you having to change your password (see [Access Tokens](#access-tokens)). + +!!! note "Managed vs unmanaged applications" + A *managed* application is one that you created yourself via the settings panel, and have the ability to request tokens for, and delete. This differs somewhat from applications like Tusky, which are not considered to be *managed* applications, as they were not created by a user in the settings panel. + +### What is a redirect URI? + +Redirect URIs offer a security measure that prevents applications from being to redirect to malicious addresses after authorization. This is best explained in the OAuth 2.0 documentation, see: + +- [Redirect URIs](https://www.oauth.com/oauth2-servers/redirect-uris/) +- [Redirect URL Registration](https://www.oauth.com/oauth2-servers/redirect-uris/redirect-uri-registration/) + +Whatever service you are trying to create an application for will usually tell you what redirect URI(s) you need to enter when creating an application. + +### What is a scope? + +Scopes are a space-separated list of identifiers that can be specified when creating an application (or getting a token for that application) in order to prevent the application or its access token from accessing more data than it needs to do its job. + +For example, if you create an application with only scope `read`, then any tokens owned by that application will have only `read` access to your account: they will not be able to post, delete, or take other *write*-type actions as you. + +GoToSocial offers a range of scopes very similar to what the Mastodon API offers. You can see a list of scopes (and what they do) here: https://docs.gotosocial.org/en/latest/api/swagger/. + +Like Mastodon, GoToSocial allows you to specify scopes both when you create an application, *and* when you subsequently request a token. So you could create an application with scope `read write`, but request a token with only `read` scope, or with an even narrower scope like `read:accounts`. Any scopes specified when requesting a token must be covered by the scopes permitted to the application. For example, you cannot request a token with scope `write` if your application only has scope `read`. + +For more information on scopes in general, see the OAuth 2.0 docs: + +- [Scope](https://www.oauth.com/oauth2-servers/scope/) +- [Defining Scopes](https://www.oauth.com/oauth2-servers/scope/defining-scopes/) + +### Search Applications + +Using this section, you can see an overview of applications that you've created via the settings panel, and click on an application to go to the details view for that application. + +### New Application + +![The new application form.](../public/user-settings-applications-new.png) + +To create a new managed OAuth application, you must provide at least a name for your application. If you want, you can provide a website too. + +If you don't provide any scopes, then the application will have scope `read` by default. + +If you don't specify any redirect URIs, then the application will have the out-of-band redirect URI `urn:ietf:wg:oauth:2.0:oob` by default. + +If you want to be able to use the settings panel to easily get an access token for the application that you create, then you must include the given settings panel callback URL in your redirect URIs list. This will be in the form `https://[your_instance_host]/settings/user/applications/callback`. + +### Application Details + +![The details view for an application.](../public/user-settings-applications-details.png) + +On the details page for an application, you can view the application's client ID and client secret, which you can use in a command-line tool like `curl` to manually get an authorization code + access token for the application. + +If you included the settings panel callback URL in your redirect URIs list, you can also use this page to request an access token for your account. This will redirect you to the sign in page for your instance, where you must provide your credentials in order to authorize your application. You will then be redirected again to the settings panel callback URL, where you can receive your access token. + +You can also use this page to delete your application. When a managed application is deleted, all tokens that were created via that application will also be deleted, so ensure you only do this when your application is not being used. diff --git a/internal/api/client/apps/appcreate.go b/internal/api/client/apps/appcreate.go index 6a8208a20..062b2e13d 100644 --- a/internal/api/client/apps/appcreate.go +++ b/internal/api/client/apps/appcreate.go @@ -18,8 +18,11 @@ package apps import ( + "errors" "fmt" "net/http" + "slices" + "strings" "github.com/gin-gonic/gin" apimodel "github.com/superseriousbusiness/gotosocial/internal/api/model" @@ -40,8 +43,10 @@ const ( // The registered application can be used to obtain an application token. // This can then be used to register a new account, or (through user auth) obtain an access token. // -// The parameters can also be given in the body of the request, as JSON, if the content-type is set to 'application/json'. -// The parameters can also be given in the body of the request, as XML, if the content-type is set to 'application/xml'. +// If the application was registered with a Bearer token passed in the Authorization header, the created application will be managed by the authenticated user (must have scope write:applications). +// +// Parameters can also be given in the body of the request, as JSON, if the content-type is set to 'application/json'. +// Parameters can also be given in the body of the request, as XML, if the content-type is set to 'application/xml'. // // --- // tags: @@ -81,42 +86,66 @@ func (m *Module) AppsPOSTHandler(c *gin.Context) { return } + if authed.Token != nil { + // If a token has been passed, user + // needs write perm on applications. + if !slices.ContainsFunc( + strings.Split(authed.Token.GetScope(), " "), + func(hasScope string) bool { + return apiutil.Scope(hasScope).Permits(apiutil.ScopeWriteApplications) + }, + ) { + const errText = "token has insufficient scope permission" + errWithCode := gtserror.NewErrorForbidden(errors.New(errText), errText) + apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) + return + } + } + + if authed.Account != nil && authed.Account.IsMoving() { + apiutil.ForbiddenAfterMove(c) + return + } + if _, err := apiutil.NegotiateAccept(c, apiutil.JSONAcceptHeaders...); err != nil { - apiutil.ErrorHandler(c, gtserror.NewErrorNotAcceptable(err, err.Error()), m.processor.InstanceGetV1) + errWithCode := gtserror.NewErrorNotAcceptable(err, err.Error()) + apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) return } form := &apimodel.ApplicationCreateRequest{} if err := c.ShouldBind(form); err != nil { - apiutil.ErrorHandler(c, gtserror.NewErrorBadRequest(err, err.Error()), m.processor.InstanceGetV1) + errWithCode := gtserror.NewErrorBadRequest(err, err.Error()) + apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) return } - if len([]rune(form.ClientName)) > formFieldLen { - err := fmt.Errorf("client_name must be less than %d characters", formFieldLen) - apiutil.ErrorHandler(c, gtserror.NewErrorBadRequest(err, err.Error()), m.processor.InstanceGetV1) + if l := len([]rune(form.ClientName)); l > formFieldLen { + m.fieldTooLong(c, "client_name", formFieldLen, l) return } - if len([]rune(form.RedirectURIs)) > formRedirectLen { - err := fmt.Errorf("redirect_uris must be less than %d characters", formRedirectLen) - apiutil.ErrorHandler(c, gtserror.NewErrorBadRequest(err, err.Error()), m.processor.InstanceGetV1) + if l := len([]rune(form.RedirectURIs)); l > formRedirectLen { + m.fieldTooLong(c, "redirect_uris", formRedirectLen, l) return } - if len([]rune(form.Scopes)) > formFieldLen { - err := fmt.Errorf("scopes must be less than %d characters", formFieldLen) - apiutil.ErrorHandler(c, gtserror.NewErrorBadRequest(err, err.Error()), m.processor.InstanceGetV1) + if l := len([]rune(form.Scopes)); l > formFieldLen { + m.fieldTooLong(c, "scopes", formFieldLen, l) return } - if len([]rune(form.Website)) > formFieldLen { - err := fmt.Errorf("website must be less than %d characters", formFieldLen) - apiutil.ErrorHandler(c, gtserror.NewErrorBadRequest(err, err.Error()), m.processor.InstanceGetV1) + if l := len([]rune(form.Website)); l > formFieldLen { + m.fieldTooLong(c, "website", formFieldLen, l) return } - apiApp, errWithCode := m.processor.AppCreate(c.Request.Context(), authed, form) + var managedByUserID string + if authed.User != nil { + managedByUserID = authed.User.ID + } + + apiApp, errWithCode := m.processor.Application().Create(c.Request.Context(), managedByUserID, form) if errWithCode != nil { apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) return @@ -124,3 +153,13 @@ func (m *Module) AppsPOSTHandler(c *gin.Context) { apiutil.JSON(c, http.StatusOK, apiApp) } + +func (m *Module) fieldTooLong(c *gin.Context, fieldName string, max int, actual int) { + errText := fmt.Sprintf( + "%s must be less than %d characters, provided %s was %d characters", + fieldName, max, fieldName, actual, + ) + + errWithCode := gtserror.NewErrorBadRequest(errors.New(errText), errText) + apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) +} diff --git a/internal/api/client/apps/appdelete.go b/internal/api/client/apps/appdelete.go new file mode 100644 index 000000000..301579929 --- /dev/null +++ b/internal/api/client/apps/appdelete.go @@ -0,0 +1,98 @@ +// GoToSocial +// Copyright (C) GoToSocial Authors admin@gotosocial.org +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package apps + +import ( + "net/http" + + "github.com/gin-gonic/gin" + apiutil "github.com/superseriousbusiness/gotosocial/internal/api/util" + "github.com/superseriousbusiness/gotosocial/internal/gtserror" +) + +// AppDELETEHandler swagger:operation DELETE /api/v1/apps/{id} appDelete +// +// Delete a single application managed by the requester. +// +// --- +// tags: +// - apps +// +// produces: +// - application/json +// +// parameters: +// - +// name: id +// type: string +// description: The id of the application to delete. +// in: path +// required: true +// +// security: +// - OAuth2 Bearer: +// - write:applications +// +// responses: +// '200': +// description: The deleted application. +// schema: +// "$ref": "#/definitions/application" +// '400': +// description: bad request +// '401': +// description: unauthorized +// '404': +// description: not found +// '406': +// description: not acceptable +// '500': +// description: internal server error +func (m *Module) AppDELETEHandler(c *gin.Context) { + authed, errWithCode := apiutil.TokenAuth(c, + true, true, true, true, + apiutil.ScopeWriteApplications, + ) + if errWithCode != nil { + apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) + return + } + + if _, err := apiutil.NegotiateAccept(c, apiutil.JSONAcceptHeaders...); err != nil { + apiutil.ErrorHandler(c, gtserror.NewErrorNotAcceptable(err, err.Error()), m.processor.InstanceGetV1) + return + } + + appID, errWithCode := apiutil.ParseID(c.Param(apiutil.IDKey)) + if errWithCode != nil { + apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) + return + } + + app, errWithCode := m.processor.Application().Delete( + c.Request.Context(), + authed.User.ID, + appID, + ) + if errWithCode != nil { + apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) + return + } + + apiutil.JSON(c, http.StatusOK, app) +} diff --git a/internal/api/client/apps/appget.go b/internal/api/client/apps/appget.go new file mode 100644 index 000000000..f9d5050b4 --- /dev/null +++ b/internal/api/client/apps/appget.go @@ -0,0 +1,98 @@ +// GoToSocial +// Copyright (C) GoToSocial Authors admin@gotosocial.org +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package apps + +import ( + "net/http" + + "github.com/gin-gonic/gin" + apiutil "github.com/superseriousbusiness/gotosocial/internal/api/util" + "github.com/superseriousbusiness/gotosocial/internal/gtserror" +) + +// AppGETHandler swagger:operation GET /api/v1/apps/{id} appGet +// +// Get a single application managed by the requester. +// +// --- +// tags: +// - apps +// +// produces: +// - application/json +// +// parameters: +// - +// name: id +// type: string +// description: The id of the requested application. +// in: path +// required: true +// +// security: +// - OAuth2 Bearer: +// - read:applications +// +// responses: +// '200': +// description: The requested application. +// schema: +// "$ref": "#/definitions/application" +// '400': +// description: bad request +// '401': +// description: unauthorized +// '404': +// description: not found +// '406': +// description: not acceptable +// '500': +// description: internal server error +func (m *Module) AppGETHandler(c *gin.Context) { + authed, errWithCode := apiutil.TokenAuth(c, + true, true, true, true, + apiutil.ScopeReadApplications, + ) + if errWithCode != nil { + apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) + return + } + + if _, err := apiutil.NegotiateAccept(c, apiutil.JSONAcceptHeaders...); err != nil { + apiutil.ErrorHandler(c, gtserror.NewErrorNotAcceptable(err, err.Error()), m.processor.InstanceGetV1) + return + } + + appID, errWithCode := apiutil.ParseID(c.Param(apiutil.IDKey)) + if errWithCode != nil { + apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) + return + } + + app, errWithCode := m.processor.Application().Get( + c.Request.Context(), + authed.User.ID, + appID, + ) + if errWithCode != nil { + apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) + return + } + + apiutil.JSON(c, http.StatusOK, app) +} diff --git a/internal/api/client/apps/apps.go b/internal/api/client/apps/apps.go index 679b985b8..2071c08bd 100644 --- a/internal/api/client/apps/apps.go +++ b/internal/api/client/apps/apps.go @@ -21,11 +21,14 @@ import ( "net/http" "github.com/gin-gonic/gin" + apiutil "github.com/superseriousbusiness/gotosocial/internal/api/util" "github.com/superseriousbusiness/gotosocial/internal/processing" ) -// BasePath is the base path for this api module, excluding the api prefix -const BasePath = "/v1/apps" +const ( + BasePath = "/v1/apps" + BasePathWithID = BasePath + "/:" + apiutil.IDKey +) type Module struct { processor *processing.Processor @@ -39,4 +42,7 @@ func New(processor *processing.Processor) *Module { func (m *Module) Route(attachHandler func(method string, path string, f ...gin.HandlerFunc) gin.IRoutes) { attachHandler(http.MethodPost, BasePath, m.AppsPOSTHandler) + attachHandler(http.MethodGet, BasePath, m.AppsGETHandler) + attachHandler(http.MethodGet, BasePathWithID, m.AppGETHandler) + attachHandler(http.MethodDelete, BasePathWithID, m.AppDELETEHandler) } diff --git a/internal/api/client/apps/appsget.go b/internal/api/client/apps/appsget.go new file mode 100644 index 000000000..6bbd4c752 --- /dev/null +++ b/internal/api/client/apps/appsget.go @@ -0,0 +1,146 @@ +// GoToSocial +// Copyright (C) GoToSocial Authors admin@gotosocial.org +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package apps + +import ( + "net/http" + + "github.com/gin-gonic/gin" + apiutil "github.com/superseriousbusiness/gotosocial/internal/api/util" + "github.com/superseriousbusiness/gotosocial/internal/gtserror" + "github.com/superseriousbusiness/gotosocial/internal/paging" +) + +// AppsGETHandler swagger:operation GET /api/v1/apps appsGet +// +// Get an array of applications that are managed by the requester. +// +// The next and previous queries can be parsed from the returned Link header. +// +// Example: +// +// ``` +// ; rel="next", ; rel="prev" +// ```` +// +// --- +// tags: +// - apps +// +// produces: +// - application/json +// +// parameters: +// - +// name: max_id +// type: string +// description: >- +// Return only items *OLDER* than the given max item ID. +// The item with the specified ID will not be included in the response. +// in: query +// required: false +// - +// name: since_id +// type: string +// description: >- +// Return only items *newer* than the given since item ID. +// The item with the specified ID will not be included in the response. +// in: query +// - +// name: min_id +// type: string +// description: >- +// Return only items *immediately newer* than the given since item ID. +// The item with the specified ID will not be included in the response. +// in: query +// required: false +// - +// name: limit +// type: integer +// description: Number of items to return. +// default: 20 +// in: query +// required: false +// max: 80 +// min: 0 +// +// security: +// - OAuth2 Bearer: +// - read:applications +// +// responses: +// '200': +// headers: +// Link: +// type: string +// description: Links to the next and previous queries. +// schema: +// type: array +// items: +// "$ref": "#/definitions/application" +// '400': +// description: bad request +// '401': +// description: unauthorized +// '404': +// description: not found +// '406': +// description: not acceptable +// '500': +// description: internal server error +func (m *Module) AppsGETHandler(c *gin.Context) { + authed, errWithCode := apiutil.TokenAuth(c, + true, true, true, true, + apiutil.ScopeReadApplications, + ) + if errWithCode != nil { + apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) + return + } + + if _, err := apiutil.NegotiateAccept(c, apiutil.JSONAcceptHeaders...); err != nil { + apiutil.ErrorHandler(c, gtserror.NewErrorNotAcceptable(err, err.Error()), m.processor.InstanceGetV1) + return + } + + page, errWithCode := paging.ParseIDPage(c, + 0, // min limit + 80, // max limit + 20, // default limit + ) + if errWithCode != nil { + apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) + return + } + + resp, errWithCode := m.processor.Application().GetPage( + c.Request.Context(), + authed.User.ID, + page, + ) + if errWithCode != nil { + apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) + return + } + + if resp.LinkHeader != "" { + c.Header("Link", resp.LinkHeader) + } + + apiutil.JSON(c, http.StatusOK, resp.Items) +} diff --git a/internal/api/client/tokens/tokensget.go b/internal/api/client/tokens/tokensget.go index 2ffc2afb9..15fc5511f 100644 --- a/internal/api/client/tokens/tokensget.go +++ b/internal/api/client/tokens/tokensget.go @@ -52,7 +52,7 @@ import ( // name: max_id // type: string // description: >- -// Return only items *OLDER* than the given max status ID. +// Return only items *OLDER* than the given max item ID. // The item with the specified ID will not be included in the response. // in: query // required: false @@ -60,14 +60,14 @@ import ( // name: since_id // type: string // description: >- -// Return only items *newer* than the given since status ID. +// Return only items *newer* than the given since item ID. // The item with the specified ID will not be included in the response. // in: query // - // name: min_id // type: string // description: >- -// Return only items *immediately newer* than the given since status ID. +// Return only items *immediately newer* than the given since item ID. // The item with the specified ID will not be included in the response. // in: query // required: false diff --git a/internal/api/model/application.go b/internal/api/model/application.go index 720674ad5..3f974683f 100644 --- a/internal/api/model/application.go +++ b/internal/api/model/application.go @@ -24,6 +24,9 @@ type Application struct { // The ID of the application. // example: 01FBVD42CQ3ZEEVMW180SBX03B ID string `json:"id,omitempty"` + // When the application was created. (ISO 8601 Datetime) + // example: 2021-07-30T09:20:25+00:00 + CreatedAt string `json:"created_at,omitempty"` // The name of the application. // example: Tusky Name string `json:"name"` diff --git a/internal/api/util/scopes.go b/internal/api/util/scopes.go index 8161de500..594a46ecd 100644 --- a/internal/api/util/scopes.go +++ b/internal/api/util/scopes.go @@ -27,6 +27,7 @@ const ( /* Sub-scopes / scope components */ scopeAccounts = "accounts" + scopeApplications = "applications" scopeBlocks = "blocks" scopeBookmarks = "bookmarks" scopeConversations = "conversations" @@ -57,6 +58,8 @@ const ( ScopeReadAccounts Scope = ScopeRead + ":" + scopeAccounts ScopeWriteAccounts Scope = ScopeWrite + ":" + scopeAccounts + ScopeReadApplications Scope = ScopeRead + ":" + scopeApplications + ScopeWriteApplications Scope = ScopeWrite + ":" + scopeApplications ScopeReadBlocks Scope = ScopeRead + ":" + scopeBlocks ScopeWriteBlocks Scope = ScopeWrite + ":" + scopeBlocks ScopeReadBookmarks Scope = ScopeRead + ":" + scopeBookmarks diff --git a/internal/db/application.go b/internal/db/application.go index a3061f028..76948b0fd 100644 --- a/internal/db/application.go +++ b/internal/db/application.go @@ -31,11 +31,14 @@ type Application interface { // GetApplicationByClientID fetches the application from the database with corresponding client_id value. GetApplicationByClientID(ctx context.Context, clientID string) (*gtsmodel.Application, error) + // GetApplicationsManagedByUserID fetches a page of applications managed by the given userID. + GetApplicationsManagedByUserID(ctx context.Context, userID string, page *paging.Page) ([]*gtsmodel.Application, error) + // PutApplication places the new application in the database, erroring on non-unique ID or client_id. PutApplication(ctx context.Context, app *gtsmodel.Application) error - // DeleteApplicationByClientID deletes the application with corresponding client_id value from the database. - DeleteApplicationByClientID(ctx context.Context, clientID string) error + // DeleteApplicationByID deletes the application with corresponding id from the database. + DeleteApplicationByID(ctx context.Context, id string) error // GetAllTokens fetches all client oauth tokens from database. GetAllTokens(ctx context.Context) ([]*gtsmodel.Token, error) @@ -72,4 +75,8 @@ type Application interface { // DeleteTokenByRefresh deletes client oauth token from database with refresh code. DeleteTokenByRefresh(ctx context.Context, refresh string) error + + // DeleteTokensByClientID deletes all tokens + // with the given clientID from the database. + DeleteTokensByClientID(ctx context.Context, clientID string) error } diff --git a/internal/db/bundb/admin.go b/internal/db/bundb/admin.go index a311d2fc5..02f10f44f 100644 --- a/internal/db/bundb/admin.go +++ b/internal/db/bundb/admin.go @@ -194,6 +194,17 @@ func (a *adminDB) NewSignup(ctx context.Context, newSignup gtsmodel.NewSignup) ( return nil, err } + // If no app ID was set, + // use the instance app ID. + if newSignup.AppID == "" { + instanceApp, err := a.state.DB.GetInstanceApplication(ctx) + if err != nil { + err := gtserror.Newf("db error getting instance app: %w", err) + return nil, err + } + newSignup.AppID = instanceApp.ID + } + user = >smodel.User{ ID: newUserID, AccountID: account.ID, diff --git a/internal/db/bundb/application.go b/internal/db/bundb/application.go index c21221c9f..1a600d620 100644 --- a/internal/db/bundb/application.go +++ b/internal/db/bundb/application.go @@ -56,6 +56,73 @@ func (a *applicationDB) GetApplicationByClientID(ctx context.Context, clientID s ) } +func (a *applicationDB) GetApplicationsManagedByUserID( + ctx context.Context, + userID string, + page *paging.Page, +) ([]*gtsmodel.Application, error) { + var ( + // Get paging params. + minID = page.GetMin() + maxID = page.GetMax() + limit = page.GetLimit() + order = page.GetOrder() + + // Make educated guess for slice size. + appIDs = make([]string, 0, limit) + ) + + // Ensure user ID. + if userID == "" { + return nil, gtserror.New("userID not set") + } + + q := a.db. + NewSelect(). + TableExpr("? AS ?", bun.Ident("applications"), bun.Ident("application")). + Column("application.id"). + Where("? = ?", bun.Ident("application.managed_by_user_id"), userID) + + if maxID != "" { + // Return only apps LOWER (ie., older) than maxID. + q = q.Where("? < ?", bun.Ident("application.id"), maxID) + } + + if minID != "" { + // Return only apps HIGHER (ie., newer) than minID. + q = q.Where("? > ?", bun.Ident("application.id"), minID) + } + + if limit > 0 { + q = q.Limit(limit) + } + + if order == paging.OrderAscending { + // Page up. + q = q.Order("application.id ASC") + } else { + // Page down. + q = q.Order("application.id DESC") + } + + if err := q.Scan(ctx, &appIDs); err != nil { + return nil, err + } + + if len(appIDs) == 0 { + return nil, nil + } + + // If we're paging up, we still want apps + // to be sorted by ID desc (ie., newest to + // oldest), so reverse ids slice. + if order == paging.OrderAscending { + slices.Reverse(appIDs) + } + + return a.getApplicationsByIDs(ctx, appIDs) +} + func (a *applicationDB) getApplication(ctx context.Context, lookup string, dbQuery func(*gtsmodel.Application) error, keyParts ...any) (*gtsmodel.Application, error) { return a.state.Caches.DB.Application.LoadOne(lookup, func() (*gtsmodel.Application, error) { var app gtsmodel.Application @@ -69,6 +136,37 @@ func (a *applicationDB) getApplication(ctx context.Context, lookup string, dbQue }, keyParts...) } +func (a *applicationDB) getApplicationsByIDs(ctx context.Context, ids []string) ([]*gtsmodel.Application, error) { + apps, err := a.state.Caches.DB.Application.LoadIDs("ID", + ids, + func(uncached []string) ([]*gtsmodel.Application, error) { + // Preallocate expected length of uncached apps. + apps := make([]*gtsmodel.Application, 0, len(uncached)) + + // Perform database query scanning + // the remaining (uncached) app IDs. + if err := a.db.NewSelect(). + Model(&apps). + Where("? IN (?)", bun.Ident("id"), bun.In(uncached)). + Scan(ctx); err != nil { + return nil, err + } + + return apps, nil + }, + ) + if err != nil { + return nil, err + } + + // Reorder the apps by their + // IDs to ensure in correct order. + getID := func(t *gtsmodel.Application) string { return t.ID } + xslices.OrderBy(apps, ids, getID) + + return apps, nil +} + func (a *applicationDB) PutApplication(ctx context.Context, app *gtsmodel.Application) error { return a.state.Caches.DB.Application.Store(app, func() error { _, err := a.db.NewInsert().Model(app).Exec(ctx) @@ -76,27 +174,25 @@ func (a *applicationDB) PutApplication(ctx context.Context, app *gtsmodel.Applic }) } -func (a *applicationDB) DeleteApplicationByClientID(ctx context.Context, clientID string) error { - // Attempt to delete application. - if _, err := a.db.NewDelete(). +// DeleteApplicationByID deletes application with the given ID. +// +// The function does not delete tokens owned by the application +// or update statuses/accounts that used the application, since +// the latter can be extremely expensive given the size of the +// statuses table. +// +// Callers to this function should ensure that they do side +// effects themselves (if required) before or after calling. +func (a *applicationDB) DeleteApplicationByID(ctx context.Context, id string) error { + _, err := a.db.NewDelete(). Table("applications"). - Where("? = ?", bun.Ident("client_id"), clientID). - Exec(ctx); err != nil { + Where("? = ?", bun.Ident("id"), id). + Exec(ctx) + if err != nil { return err } - // NOTE about further side effects: - // - // We don't need to handle updating any statuses or users - // (both of which may contain refs to applications), as - // DeleteApplication__() is only ever called during an - // account deletion, which handles deletion of the user - // and all their statuses already. - // - - // Clear application from the cache. - a.state.Caches.DB.Application.Invalidate("ClientID", clientID) - + a.state.Caches.DB.Application.Invalidate("ID", id) return nil } @@ -363,3 +459,27 @@ func (a *applicationDB) DeleteTokenByRefresh(ctx context.Context, refresh string a.state.Caches.DB.Token.Invalidate("Refresh", refresh) return nil } + +func (a *applicationDB) DeleteTokensByClientID(ctx context.Context, clientID string) error { + // Delete tokens owned by + // clientID and gather token IDs. + var tokenIDs []string + if _, err := a.db. + NewDelete(). + Table("tokens"). + Where("? = ?", bun.Ident("client_id"), clientID). + Returning("id"). + Exec(ctx, &tokenIDs); err != nil { + return err + } + + if len(tokenIDs) == 0 { + // Nothing was deleted, + // nothing to invalidate. + return nil + } + + // Invalidate all deleted tokens. + a.state.Caches.DB.Token.InvalidateIDs("ID", tokenIDs) + return nil +} diff --git a/internal/db/bundb/application_test.go b/internal/db/bundb/application_test.go index b6b19319c..540c632b5 100644 --- a/internal/db/bundb/application_test.go +++ b/internal/db/bundb/application_test.go @@ -92,7 +92,7 @@ func (suite *ApplicationTestSuite) TestDeleteApplicationBy() { for _, app := range suite.testApplications { for lookup, dbfunc := range map[string]func() error{ "client_id": func() error { - return suite.db.DeleteApplicationByClientID(ctx, app.ClientID) + return suite.db.DeleteApplicationByID(ctx, app.ID) }, } { // Clear database caches. @@ -124,6 +124,36 @@ func (suite *ApplicationTestSuite) TestGetAllTokens() { suite.NotEmpty(tokens) } +func (suite *ApplicationTestSuite) TestDeleteTokensByClientID() { + ctx := context.Background() + + // Delete tokens by each app. + for _, app := range suite.testApplications { + if err := suite.state.DB.DeleteTokensByClientID(ctx, app.ClientID); err != nil { + suite.FailNow(err.Error()) + } + } + + // Ensure all tokens deleted. + for _, token := range suite.testTokens { + _, err := suite.db.GetTokenByID(ctx, token.ID) + if !errors.Is(err, db.ErrNoEntries) { + suite.FailNow("", "token %s not deleted", token.ID) + } + } +} + +func (suite *ApplicationTestSuite) TestDeleteTokensByUnknownClientID() { + // Should not return ErrNoRows even though + // the client with given ID doesn't exist. + if err := suite.state.DB.DeleteTokensByClientID( + context.Background(), + "01JPJ4NCGH6GHY7ZVYBHNP55XS", + ); err != nil { + suite.FailNow(err.Error()) + } +} + func TestApplicationTestSuite(t *testing.T) { suite.Run(t, new(ApplicationTestSuite)) } diff --git a/internal/db/bundb/migrations/20250310144102_application_management.go b/internal/db/bundb/migrations/20250310144102_application_management.go new file mode 100644 index 000000000..46ff9926b --- /dev/null +++ b/internal/db/bundb/migrations/20250310144102_application_management.go @@ -0,0 +1,105 @@ +// GoToSocial +// Copyright (C) GoToSocial Authors admin@gotosocial.org +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package migrations + +import ( + "context" + + "github.com/superseriousbusiness/gotosocial/internal/config" + "github.com/uptrace/bun" +) + +func init() { + up := func(ctx context.Context, db *bun.DB) error { + return db.RunInTx(ctx, nil, func(ctx context.Context, tx bun.Tx) error { + // Add client_id index to token table, + // needed for invalidation if/when the + // token's app is deleted. + if _, err := tx. + NewCreateIndex(). + Table("tokens"). + Index("tokens_client_id_idx"). + Column("client_id"). + IfNotExists(). + Exec(ctx); err != nil { + return err + } + + // Update users to set all "created_by_application_id" + // values to the instance application, to correct some + // past issues where this wasn't set. Skip this if there's + // no users though, as in that case we probably don't even + // have an instance application yet. + usersLen, err := tx. + NewSelect(). + Table("users"). + Count(ctx) + if err != nil { + return err + } + + if usersLen == 0 { + // Nothing to do. + return nil + } + + // Get Instance account ID. + var instanceAcctID string + if err := tx. + NewSelect(). + Table("accounts"). + Column("id"). + Where("? = ?", bun.Ident("username"), config.GetHost()). + Where("? IS NULL", bun.Ident("domain")). + Scan(ctx, &instanceAcctID); err != nil { + return err + } + + // Get the instance app ID. + var instanceAppID string + if err := tx. + NewSelect(). + Table("applications"). + Column("id"). + Where("? = ?", bun.Ident("client_id"), instanceAcctID). + Scan(ctx, &instanceAppID); err != nil { + return err + } + + // Set instance app + // ID on all users. + if _, err := tx. + NewUpdate(). + Table("users"). + Set("? = ?", bun.Ident("created_by_application_id"), instanceAppID). + Exec(ctx); err != nil { + return err + } + + return nil + }) + } + + down := func(ctx context.Context, db *bun.DB) error { + return nil + } + + if err := Migrations.Register(up, down); err != nil { + panic(err) + } +} diff --git a/internal/db/bundb/status.go b/internal/db/bundb/status.go index fea5594dd..8383a9c01 100644 --- a/internal/db/bundb/status.go +++ b/internal/db/bundb/status.go @@ -299,11 +299,12 @@ func (s *statusDB) PopulateStatus(ctx context.Context, status *gtsmodel.Status) if status.CreatedWithApplicationID != "" && status.CreatedWithApplication == nil { // Populate the status' expected CreatedWithApplication (not always set). + // Don't error on ErrNoEntries, as the application may have been cleaned up. status.CreatedWithApplication, err = s.state.DB.GetApplicationByID( gtscontext.SetBarebones(ctx), status.CreatedWithApplicationID, ) - if err != nil { + if err != nil && !errors.Is(err, db.ErrNoEntries) { errs.Appendf("error populating status application: %w", err) } } diff --git a/internal/gtsmodel/token.go b/internal/gtsmodel/token.go index 6fe944290..46d30ba7d 100644 --- a/internal/gtsmodel/token.go +++ b/internal/gtsmodel/token.go @@ -27,7 +27,7 @@ type Token struct { ClientID string `bun:"type:CHAR(26),nullzero,notnull"` // ID of the client who owns this token UserID string `bun:"type:CHAR(26),nullzero"` // ID of the user who owns this token RedirectURI string `bun:",nullzero,notnull"` // Oauth redirect URI for this token - Scope string `bun:",nullzero,notnull,default:'read'"` // Oauth scope // Oauth scope + Scope string `bun:",nullzero,notnull,default:'read'"` // Oauth scope Code string `bun:",pk,nullzero,notnull,default:''"` // Code, if present CodeChallenge string `bun:",nullzero"` // Code challenge, if code present CodeChallengeMethod string `bun:",nullzero"` // Code challenge method, if code present diff --git a/internal/processing/account/delete.go b/internal/processing/account/delete.go index 0064d7eb4..ab64c3270 100644 --- a/internal/processing/account/delete.go +++ b/internal/processing/account/delete.go @@ -107,19 +107,33 @@ func (p *Processor) deleteUserAndTokensForAccount(ctx context.Context, account * return gtserror.Newf("db error getting user: %w", err) } - tokens := []*gtsmodel.Token{} - if err := p.state.DB.GetWhere(ctx, []db.Where{{Key: "user_id", Value: user.ID}}, &tokens); err != nil { + // Get all applications owned by user. + apps, err := p.state.DB.GetApplicationsManagedByUserID(ctx, user.ID, nil) + if err != nil { + return gtserror.Newf("db error getting apps: %w", err) + } + + // Delete each app and any tokens it had created + // (not necessarily owned by deleted account). + for _, a := range apps { + if err := p.state.DB.DeleteApplicationByID(ctx, a.ID); err != nil { + return gtserror.Newf("db error deleting app: %w", err) + } + + if err := p.state.DB.DeleteTokensByClientID(ctx, a.ClientID); err != nil { + return gtserror.Newf("db error deleting tokens for app: %w", err) + } + } + + // Get any remaining access tokens owned by user. + tokens, err := p.state.DB.GetAccessTokens(ctx, user.ID, nil) + if err != nil { return gtserror.Newf("db error getting tokens: %w", err) } + // Delete each token. for _, t := range tokens { - // Delete any OAuth applications associated with this token. - if err := p.state.DB.DeleteApplicationByClientID(ctx, t.ClientID); err != nil { - return gtserror.Newf("db error deleting application: %w", err) - } - - // Delete the token itself. - if err := p.state.DB.DeleteByID(ctx, t.ID, t); err != nil { + if err := p.state.DB.DeleteTokenByID(ctx, t.ID); err != nil { return gtserror.Newf("db error deleting token: %w", err) } } diff --git a/internal/processing/application/application.go b/internal/processing/application/application.go new file mode 100644 index 000000000..4ad35749e --- /dev/null +++ b/internal/processing/application/application.go @@ -0,0 +1,38 @@ +// GoToSocial +// Copyright (C) GoToSocial Authors admin@gotosocial.org +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package application + +import ( + "github.com/superseriousbusiness/gotosocial/internal/state" + "github.com/superseriousbusiness/gotosocial/internal/typeutils" +) + +type Processor struct { + state *state.State + converter *typeutils.Converter +} + +func New( + state *state.State, + converter *typeutils.Converter, +) Processor { + return Processor{ + state: state, + converter: converter, + } +} diff --git a/internal/processing/app.go b/internal/processing/application/create.go similarity index 68% rename from internal/processing/app.go rename to internal/processing/application/create.go index c9bd4eb68..d1340a39f 100644 --- a/internal/processing/app.go +++ b/internal/processing/application/create.go @@ -15,24 +15,28 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . -package processing +package application import ( "context" + "errors" "fmt" "net/url" "strings" "github.com/google/uuid" apimodel "github.com/superseriousbusiness/gotosocial/internal/api/model" - apiutil "github.com/superseriousbusiness/gotosocial/internal/api/util" "github.com/superseriousbusiness/gotosocial/internal/gtserror" "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" "github.com/superseriousbusiness/gotosocial/internal/id" "github.com/superseriousbusiness/gotosocial/internal/oauth" ) -func (p *Processor) AppCreate(ctx context.Context, authed *apiutil.Auth, form *apimodel.ApplicationCreateRequest) (*apimodel.Application, gtserror.WithCode) { +func (p *Processor) Create( + ctx context.Context, + managedByUserID string, + form *apimodel.ApplicationCreateRequest, +) (*apimodel.Application, gtserror.WithCode) { // Set default 'read' for // scopes if it's not set. var scopes string @@ -49,13 +53,32 @@ func (p *Processor) AppCreate(ctx context.Context, authed *apiutil.Auth, form *a // Redirect URIs can be just one value, or can be passed // as a newline-separated list of strings. Ensure each URI // is parseable + normalize it by reconstructing from *url.URL. - for _, redirectStr := range strings.Split(form.RedirectURIs, "\n") { + // Also ensure we don't add multiple copies of the same URI. + redirectStrs := strings.Split(form.RedirectURIs, "\n") + added := make(map[string]struct{}, len(redirectStrs)) + + for _, redirectStr := range redirectStrs { + redirectStr = strings.TrimSpace(redirectStr) + if redirectStr == "" { + continue + } + redirectURI, err := url.Parse(redirectStr) if err != nil { errText := fmt.Sprintf("error parsing redirect URI: %v", err) return nil, gtserror.NewErrorBadRequest(err, errText) } - redirectURIs = append(redirectURIs, redirectURI.String()) + + redirectURIStr := redirectURI.String() + if _, alreadyAdded := added[redirectURIStr]; !alreadyAdded { + redirectURIs = append(redirectURIs, redirectURIStr) + added[redirectURIStr] = struct{}{} + } + } + + if len(redirectURIs) == 0 { + errText := "no redirect URIs left after trimming space" + return nil, gtserror.NewErrorBadRequest(errors.New(errText), errText) } } else { // No redirect URI(s) provided, just set default oob. @@ -71,13 +94,14 @@ func (p *Processor) AppCreate(ctx context.Context, authed *apiutil.Auth, form *a // Generate + store app // to put in the database. app := >smodel.Application{ - ID: id.NewULID(), - Name: form.ClientName, - Website: form.Website, - RedirectURIs: redirectURIs, - ClientID: clientID, - ClientSecret: uuid.NewString(), - Scopes: scopes, + ID: id.NewULID(), + Name: form.ClientName, + Website: form.Website, + RedirectURIs: redirectURIs, + ClientID: clientID, + ClientSecret: uuid.NewString(), + Scopes: scopes, + ManagedByUserID: managedByUserID, } if err := p.state.DB.PutApplication(ctx, app); err != nil { return nil, gtserror.NewErrorInternalError(err) diff --git a/internal/processing/application/delete.go b/internal/processing/application/delete.go new file mode 100644 index 000000000..02f5e4bfa --- /dev/null +++ b/internal/processing/application/delete.go @@ -0,0 +1,70 @@ +// GoToSocial +// Copyright (C) GoToSocial Authors admin@gotosocial.org +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package application + +import ( + "context" + "errors" + + apimodel "github.com/superseriousbusiness/gotosocial/internal/api/model" + "github.com/superseriousbusiness/gotosocial/internal/db" + "github.com/superseriousbusiness/gotosocial/internal/gtserror" +) + +func (p *Processor) Delete( + ctx context.Context, + userID string, + appID string, +) (*apimodel.Application, gtserror.WithCode) { + app, err := p.state.DB.GetApplicationByID(ctx, appID) + if err != nil && !errors.Is(err, db.ErrNoEntries) { + err := gtserror.Newf("db error getting app %s: %w", appID, err) + return nil, gtserror.NewErrorInternalError(err) + } + + if app == nil { + err := gtserror.Newf("app %s not found in the db", appID) + return nil, gtserror.NewErrorNotFound(err) + } + + if app.ManagedByUserID != userID { + err := gtserror.Newf("app %s not managed by user %s", appID, userID) + return nil, gtserror.NewErrorNotFound(err) + } + + // Convert app before deletion. + apiApp, err := p.converter.AppToAPIAppSensitive(ctx, app) + if err != nil { + err := gtserror.Newf("error converting app to api app: %w", err) + return nil, gtserror.NewErrorInternalError(err) + } + + // Delete app itself. + if err := p.state.DB.DeleteApplicationByID(ctx, appID); err != nil { + err := gtserror.Newf("db error deleting app %s: %w", appID, err) + return nil, gtserror.NewErrorInternalError(err) + } + + // Delete all tokens owned by app. + if err := p.state.DB.DeleteTokensByClientID(ctx, app.ClientID); err != nil { + err := gtserror.Newf("db error deleting tokens for app %s: %w", appID, err) + return nil, gtserror.NewErrorInternalError(err) + } + + return apiApp, nil +} diff --git a/internal/processing/application/get.go b/internal/processing/application/get.go new file mode 100644 index 000000000..0a3eb8e04 --- /dev/null +++ b/internal/processing/application/get.go @@ -0,0 +1,104 @@ +// GoToSocial +// Copyright (C) GoToSocial Authors admin@gotosocial.org +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package application + +import ( + "context" + "errors" + + apimodel "github.com/superseriousbusiness/gotosocial/internal/api/model" + "github.com/superseriousbusiness/gotosocial/internal/db" + "github.com/superseriousbusiness/gotosocial/internal/gtserror" + "github.com/superseriousbusiness/gotosocial/internal/log" + "github.com/superseriousbusiness/gotosocial/internal/paging" +) + +func (p *Processor) Get( + ctx context.Context, + userID string, + appID string, +) (*apimodel.Application, gtserror.WithCode) { + app, err := p.state.DB.GetApplicationByID(ctx, appID) + if err != nil && !errors.Is(err, db.ErrNoEntries) { + err := gtserror.Newf("db error getting app %s: %w", appID, err) + return nil, gtserror.NewErrorInternalError(err) + } + + if app == nil { + err := gtserror.Newf("app %s not found in the db", appID) + return nil, gtserror.NewErrorNotFound(err) + } + + if app.ManagedByUserID != userID { + err := gtserror.Newf("app %s not managed by user %s", appID, userID) + return nil, gtserror.NewErrorNotFound(err) + } + + apiApp, err := p.converter.AppToAPIAppSensitive(ctx, app) + if err != nil { + err := gtserror.Newf("error converting app to api app: %w", err) + return nil, gtserror.NewErrorInternalError(err) + } + + return apiApp, nil +} + +func (p *Processor) GetPage( + ctx context.Context, + userID string, + page *paging.Page, +) (*apimodel.PageableResponse, gtserror.WithCode) { + apps, err := p.state.DB.GetApplicationsManagedByUserID(ctx, userID, page) + if err != nil && !errors.Is(err, db.ErrNoEntries) { + err := gtserror.Newf("db error getting apps: %w", err) + return nil, gtserror.NewErrorInternalError(err) + } + + count := len(apps) + if count == 0 { + return paging.EmptyResponse(), nil + } + + var ( + // Get the lowest and highest + // ID values, used for paging. + lo = apps[count-1].ID + hi = apps[0].ID + + // Best-guess items length. + items = make([]interface{}, 0, count) + ) + + for _, app := range apps { + apiApp, err := p.converter.AppToAPIAppSensitive(ctx, app) + if err != nil { + log.Errorf(ctx, "error converting app to api app: %v", err) + continue + } + + // Append req to return items. + items = append(items, apiApp) + } + + return paging.PackageResponse(paging.ResponseParams{ + Items: items, + Path: "/api/v1/apps", + Next: page.Next(lo, hi), + Prev: page.Prev(lo, hi), + }), nil +} diff --git a/internal/processing/processor.go b/internal/processing/processor.go index 0bba23089..0324f49cf 100644 --- a/internal/processing/processor.go +++ b/internal/processing/processor.go @@ -29,6 +29,7 @@ import ( "github.com/superseriousbusiness/gotosocial/internal/processing/account" "github.com/superseriousbusiness/gotosocial/internal/processing/admin" "github.com/superseriousbusiness/gotosocial/internal/processing/advancedmigrations" + "github.com/superseriousbusiness/gotosocial/internal/processing/application" "github.com/superseriousbusiness/gotosocial/internal/processing/common" "github.com/superseriousbusiness/gotosocial/internal/processing/conversations" "github.com/superseriousbusiness/gotosocial/internal/processing/fedi" @@ -81,6 +82,7 @@ type Processor struct { account account.Processor admin admin.Processor advancedmigrations advancedmigrations.Processor + application application.Processor conversations conversations.Processor fedi fedi.Processor filtersv1 filtersv1.Processor @@ -113,6 +115,10 @@ func (p *Processor) AdvancedMigrations() *advancedmigrations.Processor { return &p.advancedmigrations } +func (p *Processor) Application() *application.Processor { + return &p.application +} + func (p *Processor) Conversations() *conversations.Processor { return &p.conversations } @@ -221,6 +227,7 @@ func NewProcessor( // processors + pin them to this struct. processor.account = account.New(&common, state, converter, mediaManager, federator, visFilter, parseMentionFunc) processor.admin = admin.New(&common, state, cleaner, subscriptions, federator, converter, mediaManager, federator.TransportController(), emailSender) + processor.application = application.New(state, converter) processor.conversations = conversations.New(state, converter, visFilter) processor.fedi = fedi.New(state, &common, converter, federator, visFilter) processor.filtersv1 = filtersv1.New(state, converter, &processor.stream) diff --git a/internal/typeutils/internaltofrontend.go b/internal/typeutils/internaltofrontend.go index 537eeb6db..b0e137f75 100644 --- a/internal/typeutils/internaltofrontend.go +++ b/internal/typeutils/internaltofrontend.go @@ -623,8 +623,14 @@ func (c *Converter) AppToAPIAppSensitive(ctx context.Context, a *gtsmodel.Applic return nil, gtserror.Newf("error getting VAPID public key: %w", err) } + createdAt, err := id.TimeFromULID(a.ID) + if err != nil { + return nil, gtserror.Newf("error converting id to time: %w", err) + } + return &apimodel.Application{ ID: a.ID, + CreatedAt: util.FormatISO8601(createdAt), Name: a.Name, Website: a.Website, RedirectURI: strings.Join(a.RedirectURIs, "\n"), @@ -1412,14 +1418,28 @@ func (c *Converter) baseStatusToFrontend( apiStatus.InReplyToAccountID = util.PtrIf(s.InReplyToAccountID) apiStatus.Language = util.PtrIf(s.Language) - if app := s.CreatedWithApplication; app != nil { - apiStatus.Application, err = c.AppToAPIAppPublic(ctx, app) + switch { + case s.CreatedWithApplication != nil: + // App exists for this status and is set. + apiStatus.Application, err = c.AppToAPIAppPublic(ctx, s.CreatedWithApplication) if err != nil { return nil, gtserror.Newf( "error converting application %s: %w", s.CreatedWithApplicationID, err, ) } + + case s.CreatedWithApplicationID != "": + // App existed for this status but not + // anymore, it's probably been cleaned up. + // Set a dummy application. + apiStatus.Application = &apimodel.Application{ + Name: "unknown application", + } + + default: + // No app stored for this (probably remote) + // status, so nothing to do (app is optional). } if s.Poll != nil { diff --git a/internal/typeutils/internaltofrontend_test.go b/internal/typeutils/internaltofrontend_test.go index 0b2c6ddfa..c94d4481a 100644 --- a/internal/typeutils/internaltofrontend_test.go +++ b/internal/typeutils/internaltofrontend_test.go @@ -753,6 +753,156 @@ func (suite *InternalToFrontendTestSuite) TestStatusToFrontendHTMLContentWarning }`, string(b)) } +func (suite *InternalToFrontendTestSuite) TestStatusToFrontendApplicationDeleted() { + ctx := context.Background() + testStatus := suite.testStatuses["admin_account_status_1"] + + // Delete the application this status was created with. + if err := suite.state.DB.DeleteApplicationByID(ctx, testStatus.CreatedWithApplicationID); err != nil { + suite.FailNow(err.Error()) + } + + requestingAccount := suite.testAccounts["local_account_1"] + apiStatus, err := suite.typeconverter.StatusToAPIStatus(ctx, testStatus, requestingAccount, statusfilter.FilterContextNone, nil, nil) + suite.NoError(err) + + b, err := json.MarshalIndent(apiStatus, "", " ") + suite.NoError(err) + + suite.Equal(`{ + "id": "01F8MH75CBF9JFX4ZAD54N0W0R", + "created_at": "2021-10-20T11:36:45.000Z", + "edited_at": null, + "in_reply_to_id": null, + "in_reply_to_account_id": null, + "sensitive": false, + "spoiler_text": "", + "visibility": "public", + "language": "en", + "uri": "http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R", + "url": "http://localhost:8080/@admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R", + "replies_count": 1, + "reblogs_count": 0, + "favourites_count": 1, + "favourited": true, + "reblogged": false, + "muted": false, + "bookmarked": true, + "pinned": false, + "content": "\u003cp\u003ehello world! \u003ca href=\"http://localhost:8080/tags/welcome\" class=\"mention hashtag\" rel=\"tag nofollow noreferrer noopener\" target=\"_blank\"\u003e#\u003cspan\u003ewelcome\u003c/span\u003e\u003c/a\u003e ! first post on the instance :rainbow: !\u003c/p\u003e", + "reblog": null, + "application": { + "name": "unknown application" + }, + "account": { + "id": "01F8MH17FWEB39HZJ76B6VXSKF", + "username": "admin", + "acct": "admin", + "display_name": "", + "locked": false, + "discoverable": true, + "bot": false, + "created_at": "2022-05-17T13:10:59.000Z", + "note": "", + "url": "http://localhost:8080/@admin", + "avatar": "", + "avatar_static": "", + "header": "http://localhost:8080/assets/default_header.webp", + "header_static": "http://localhost:8080/assets/default_header.webp", + "header_description": "Flat gray background (default header).", + "followers_count": 1, + "following_count": 1, + "statuses_count": 4, + "last_status_at": "2021-10-20", + "emojis": [], + "fields": [], + "enable_rss": true, + "roles": [ + { + "id": "admin", + "name": "admin", + "color": "" + } + ], + "group": false + }, + "media_attachments": [ + { + "id": "01F8MH6NEM8D7527KZAECTCR76", + "type": "image", + "url": "http://localhost:8080/fileserver/01F8MH17FWEB39HZJ76B6VXSKF/attachment/original/01F8MH6NEM8D7527KZAECTCR76.jpg", + "text_url": "http://localhost:8080/fileserver/01F8MH17FWEB39HZJ76B6VXSKF/attachment/original/01F8MH6NEM8D7527KZAECTCR76.jpg", + "preview_url": "http://localhost:8080/fileserver/01F8MH17FWEB39HZJ76B6VXSKF/attachment/small/01F8MH6NEM8D7527KZAECTCR76.webp", + "remote_url": null, + "preview_remote_url": null, + "meta": { + "original": { + "width": 1200, + "height": 630, + "size": "1200x630", + "aspect": 1.9047619 + }, + "small": { + "width": 512, + "height": 268, + "size": "512x268", + "aspect": 1.9104477 + }, + "focus": { + "x": 0, + "y": 0 + } + }, + "description": "Black and white image of some 50's style text saying: Welcome On Board", + "blurhash": "LIIE|gRj00WB-;j[t7j[4nWBj[Rj" + } + ], + "mentions": [], + "tags": [ + { + "name": "welcome", + "url": "http://localhost:8080/tags/welcome" + } + ], + "emojis": [ + { + "shortcode": "rainbow", + "url": "http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/original/01F8MH9H8E4VG3KDYJR9EGPXCQ.png", + "static_url": "http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/static/01F8MH9H8E4VG3KDYJR9EGPXCQ.png", + "visible_in_picker": true, + "category": "reactions" + } + ], + "card": null, + "poll": null, + "text": "hello world! #welcome ! first post on the instance :rainbow: !", + "content_type": "text/plain", + "interaction_policy": { + "can_favourite": { + "always": [ + "public", + "me" + ], + "with_approval": [] + }, + "can_reply": { + "always": [ + "public", + "me" + ], + "with_approval": [] + }, + "can_reblog": { + "always": [ + "public", + "me" + ], + "with_approval": [] + } + } +}`, string(b)) +} + // Modify a fixture status into a status that should be filtered, // and then filter it, returning the API status or any error from converting it. func (suite *InternalToFrontendTestSuite) filteredStatusToFrontend(action gtsmodel.FilterAction, boost bool) (*apimodel.Status, error) { diff --git a/web/source/settings/components/authorization/index.tsx b/web/source/settings/components/authorization/index.tsx index 7c6373399..3eeeb393a 100644 --- a/web/source/settings/components/authorization/index.tsx +++ b/web/source/settings/components/authorization/index.tsx @@ -17,7 +17,7 @@ along with this program. If not, see . */ -import { useLogoutMutation, useVerifyCredentialsQuery } from "../../lib/query/oauth"; +import { useLogoutMutation, useVerifyCredentialsQuery } from "../../lib/query/login"; import { store } from "../../redux/store"; import React, { ReactNode } from "react"; @@ -27,8 +27,8 @@ import { Error } from "../error"; import { NoArg } from "../../lib/types/query"; export function Authorization({ App }) { - const { loginState, expectingRedirect } = store.getState().oauth; - const skip = (loginState == "none" || loginState == "logout" || expectingRedirect); + const { current: loginState, expectingRedirect } = store.getState().login; + const skip = (loginState == "none" || loginState == "loggedout" || expectingRedirect); const [ logoutQuery ] = useLogoutMutation(); const { @@ -46,9 +46,9 @@ export function Authorization({ App }) { showLogin = false; let loadingInfo = ""; - if (loginState == "callback") { + if (loginState == "awaitingcallback") { loadingInfo = "Processing OAUTH callback."; - } else if (loginState == "login") { + } else if (loginState == "loggedin") { loadingInfo = "Verifying stored login."; } @@ -70,7 +70,7 @@ export function Authorization({ App }) { ); } - if (loginState == "login" && isSuccess) { + if (loginState == "loggedin" && isSuccess) { return ; } else { return ( diff --git a/web/source/settings/components/authorization/login.tsx b/web/source/settings/components/authorization/login.tsx index 28ed7953c..c54125972 100644 --- a/web/source/settings/components/authorization/login.tsx +++ b/web/source/settings/components/authorization/login.tsx @@ -19,7 +19,7 @@ import React from "react"; -import { useAuthorizeFlowMutation } from "../../lib/query/oauth"; +import { useAuthorizeFlowMutation } from "../../lib/query/login"; import { useTextInput, useValue } from "../../lib/form"; import useFormSubmit from "../../lib/form/submit"; import MutationButton from "../form/mutation-button"; diff --git a/web/source/settings/components/highlightedcode.tsx b/web/source/settings/components/highlightedcode.tsx new file mode 100644 index 000000000..eccecd709 --- /dev/null +++ b/web/source/settings/components/highlightedcode.tsx @@ -0,0 +1,44 @@ +/* + GoToSocial + Copyright (C) GoToSocial Authors admin@gotosocial.org + SPDX-License-Identifier: AGPL-3.0-or-later + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +import React, { useEffect, useRef } from "react"; + +// Used for syntax highlighting of json result. +import Prism from "../../frontend/prism"; + +export function HighlightedCode({ code, lang }: { code: string, lang: string }) { + const ref = useRef(null); + useEffect(() => { + if (ref.current) { + Prism.highlightElement(ref.current); + } + }, []); + + // Prism takes control of the `pre` so wrap + // the whole thing in a div that we control. + return ( +
+
+				
+					{code}
+				
+			
+
+ ); +} diff --git a/web/source/settings/components/status.tsx b/web/source/settings/components/status.tsx index ec7af3ad3..701a9f8b7 100644 --- a/web/source/settings/components/status.tsx +++ b/web/source/settings/components/status.tsx @@ -18,7 +18,7 @@ */ import React from "react"; -import { useVerifyCredentialsQuery } from "../lib/query/oauth"; +import { useVerifyCredentialsQuery } from "../lib/query/login"; import { MediaAttachment, Status as StatusType } from "../lib/types/status"; import sanitize from "sanitize-html"; diff --git a/web/source/settings/components/user-logout-card.tsx b/web/source/settings/components/user-logout-card.tsx index f9acc9698..e15a1ee6a 100644 --- a/web/source/settings/components/user-logout-card.tsx +++ b/web/source/settings/components/user-logout-card.tsx @@ -20,7 +20,7 @@ import React from "react"; import Loading from "./loading"; import { Error as ErrorC } from "./error"; -import { useVerifyCredentialsQuery, useLogoutMutation } from "../lib/query/oauth"; +import { useVerifyCredentialsQuery, useLogoutMutation } from "../lib/query/login"; import { useInstanceV1Query } from "../lib/query/gts-api"; export default function UserLogoutCard() { diff --git a/web/source/settings/index.tsx b/web/source/settings/index.tsx index 5317658d2..c9ed5c30b 100644 --- a/web/source/settings/index.tsx +++ b/web/source/settings/index.tsx @@ -66,7 +66,7 @@ export function App({ account }: AppProps) { Ensure user ends up somewhere if they just open /settings. */} - + diff --git a/web/source/settings/lib/query/admin/custom-emoji/index.ts b/web/source/settings/lib/query/admin/custom-emoji/index.ts index 56684f03b..c5dd0a814 100644 --- a/web/source/settings/lib/query/admin/custom-emoji/index.ts +++ b/web/source/settings/lib/query/admin/custom-emoji/index.ts @@ -141,7 +141,7 @@ const extended = gtsApi.injectEndpoints({ searchItemForEmoji: build.mutation({ async queryFn(url, api, _extraOpts, fetchWithBQ) { const state = api.getState() as RootState; - const oauthState = state.oauth; + const loginState = state.login; // First search for given url. const searchRes = await fetchWithBQ({ @@ -161,8 +161,8 @@ const extended = gtsApi.injectEndpoints({ // Ensure emojis domain is not OUR domain. If it // is, we already have the emojis by definition. - if (oauthState.instanceUrl !== undefined) { - if (domain == new URL(oauthState.instanceUrl).host) { + if (loginState.instanceUrl !== undefined) { + if (domain == new URL(loginState.instanceUrl).host) { throw "LOCAL_INSTANCE"; } } diff --git a/web/source/settings/lib/query/admin/domain-permissions/export.ts b/web/source/settings/lib/query/admin/domain-permissions/export.ts index 868e3f7a4..f258991c6 100644 --- a/web/source/settings/lib/query/admin/domain-permissions/export.ts +++ b/web/source/settings/lib/query/admin/domain-permissions/export.ts @@ -116,7 +116,7 @@ const extended = gtsApi.injectEndpoints({ // Parse filename to something like: // `example.org-blocklist-2023-10-09.json`. const state = api.getState() as RootState; - const instanceUrl = state.oauth.instanceUrl?? "unknown"; + const instanceUrl = state.login.instanceUrl?? "unknown"; const domain = new URL(instanceUrl).host; const date = new Date(); const filename = [ diff --git a/web/source/settings/lib/query/gts-api.ts b/web/source/settings/lib/query/gts-api.ts index 401423766..540191132 100644 --- a/web/source/settings/lib/query/gts-api.ts +++ b/web/source/settings/lib/query/gts-api.ts @@ -77,7 +77,7 @@ const gtsBaseQuery: BaseQueryFn< // Retrieve state at the moment // this function was called. const state = api.getState() as RootState; - const { instanceUrl, token } = state.oauth; + const { instanceUrl, token } = state.login; // Derive baseUrl dynamically. let baseUrl: string | undefined; @@ -160,6 +160,7 @@ export const gtsApi = createApi({ reducerPath: "api", baseQuery: gtsBaseQuery, tagTypes: [ + "Application", "Auth", "Emoji", "Report", diff --git a/web/source/settings/lib/query/oauth/index.ts b/web/source/settings/lib/query/login/index.ts similarity index 87% rename from web/source/settings/lib/query/oauth/index.ts rename to web/source/settings/lib/query/login/index.ts index e151b0aee..e3b3b94a1 100644 --- a/web/source/settings/lib/query/oauth/index.ts +++ b/web/source/settings/lib/query/login/index.ts @@ -24,17 +24,10 @@ import { setToken as oauthSetToken, remove as oauthRemove, authorize as oauthAuthorize, -} from "../../../redux/oauth"; +} from "../../../redux/login"; import { RootState } from '../../../redux/store'; import { Account } from '../../types/account'; - -export interface OauthTokenRequestBody { - client_id: string; - client_secret: string; - redirect_uri: string; - grant_type: string; - code: string; -} +import { OAuthAccessTokenRequestBody } from '../../types/oauth'; function getSettingsURL() { /* @@ -45,7 +38,7 @@ function getSettingsURL() { Also drops anything past /settings/, because authorization urls that are too long get rejected by GTS. */ - let [pre, _past] = window.location.pathname.split("/settings"); + const [pre, _past] = window.location.pathname.split("/settings"); return `${window.location.origin}${pre}/settings`; } @@ -64,12 +57,12 @@ const extended = gtsApi.injectEndpoints({ error == undefined ? ["Auth"] : [], async queryFn(_arg, api, _extraOpts, fetchWithBQ) { const state = api.getState() as RootState; - const oauthState = state.oauth; + const loginState = state.login; // If we're not in the middle of an auth/callback, // we may already have an auth token, so just // return a standard verify_credentials query. - if (oauthState.loginState != 'callback') { + if (loginState.current != 'awaitingcallback') { return fetchWithBQ({ url: `/api/v1/accounts/verify_credentials` }); @@ -77,8 +70,8 @@ const extended = gtsApi.injectEndpoints({ // We're in the middle of an auth/callback flow. // Try to retrieve callback code from URL query. - let urlParams = new URLSearchParams(window.location.search); - let code = urlParams.get("code"); + const urlParams = new URLSearchParams(window.location.search); + const code = urlParams.get("code"); if (code == undefined) { return { error: { @@ -91,7 +84,7 @@ const extended = gtsApi.injectEndpoints({ // Retrieve app with which the // callback code was generated. - let app = oauthState.app; + const app = loginState.app; if (app == undefined || app.client_id == undefined) { return { error: { @@ -104,7 +97,7 @@ const extended = gtsApi.injectEndpoints({ // Use the provided code and app // secret to request an auth token. - const tokenReqBody: OauthTokenRequestBody = { + const tokenReqBody: OAuthAccessTokenRequestBody = { client_id: app.client_id, client_secret: app.client_secret, redirect_uri: SETTINGS_URL, @@ -139,7 +132,7 @@ const extended = gtsApi.injectEndpoints({ authorizeFlow: build.mutation({ async queryFn(formData, api, _extraOpts, fetchWithBQ) { const state = api.getState() as RootState; - const oauthState = state.oauth; + const loginState = state.login; let instanceUrl: string; if (!formData.instance.startsWith("http")) { @@ -147,8 +140,8 @@ const extended = gtsApi.injectEndpoints({ } instanceUrl = new URL(formData.instance).origin; - if (oauthState?.instanceUrl == instanceUrl && oauthState.app) { - return { data: oauthState.app }; + if (loginState?.instanceUrl == instanceUrl && loginState.app) { + return { data: loginState.app }; } const appResult = await fetchWithBQ({ @@ -166,24 +159,24 @@ const extended = gtsApi.injectEndpoints({ return { error: appResult.error as FetchBaseQueryError }; } - let app = appResult.data as any; + const app = appResult.data as any; app.scopes = formData.scopes; api.dispatch(oauthAuthorize({ instanceUrl: instanceUrl, app: app, - loginState: "callback", + current: "awaitingcallback", expectingRedirect: true })); - let url = new URL(instanceUrl); + const url = new URL(instanceUrl); url.pathname = "/oauth/authorize"; url.searchParams.set("client_id", app.client_id); url.searchParams.set("redirect_uri", SETTINGS_URL); url.searchParams.set("response_type", "code"); url.searchParams.set("scope", app.scopes); - let redirectURL = url.toString(); + const redirectURL = url.toString(); window.location.assign(redirectURL); return { data: null }; }, diff --git a/web/source/settings/lib/query/user/applications.ts b/web/source/settings/lib/query/user/applications.ts new file mode 100644 index 000000000..9d271a1e1 --- /dev/null +++ b/web/source/settings/lib/query/user/applications.ts @@ -0,0 +1,146 @@ +/* + GoToSocial + Copyright (C) GoToSocial Authors admin@gotosocial.org + SPDX-License-Identifier: AGPL-3.0-or-later + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +import { RootState } from "../../../redux/store"; +import { + SearchAppParams, + SearchAppResp, + App, + AppCreateParams, +} from "../../types/application"; +import { OAuthAccessToken, OAuthAccessTokenRequestBody } from "../../types/oauth"; +import { gtsApi } from "../gts-api"; +import parse from "parse-link-header"; + +const extended = gtsApi.injectEndpoints({ + endpoints: (build) => ({ + searchApp: build.query({ + query: (form) => { + const params = new(URLSearchParams); + Object.entries(form).forEach(([k, v]) => { + if (v !== undefined) { + params.append(k, v); + } + }); + + let query = ""; + if (params.size !== 0) { + query = `?${params.toString()}`; + } + + return { + url: `/api/v1/apps${query}` + }; + }, + // Headers required for paging. + transformResponse: (apiResp: App[], meta) => { + const apps = apiResp; + const linksStr = meta?.response?.headers.get("Link"); + const links = parse(linksStr); + return { apps, links }; + }, + providesTags: [{ type: "Application", id: "TRANSFORMED" }] + }), + + getApp: build.query({ + query: (id) => ({ + method: "GET", + url: `/api/v1/apps/${id}`, + }), + providesTags: (_result, _error, id) => [ + { type: 'Application', id } + ], + }), + + createApp: build.mutation({ + query: (formData) => ({ + method: "POST", + url: `/api/v1/apps`, + asForm: true, + body: formData, + discardEmpty: true + }), + invalidatesTags: [{ type: "Application", id: "TRANSFORMED" }], + }), + + deleteApp: build.mutation({ + query: (id) => ({ + method: "DELETE", + url: `/api/v1/apps/${id}` + }), + invalidatesTags: (_result, _error, id) => [ + { type: 'Application', id }, + { type: "Application", id: "TRANSFORMED" }, + { type: "TokenInfo", id: "TRANSFORMED" }, + ], + }), + + getOOBAuthCode: build.mutation({ + async queryFn({ app, scope, redirectURI }, api, _extraOpts, _fetchWithBQ) { + // Fetch the instance URL string from + // oauth state, eg., https://example.org. + const state = api.getState() as RootState; + if (!state.login.instanceUrl) { + return { + error: { + status: 'CUSTOM_ERROR', + error: "oauthState.instanceUrl undefined", + } + }; + } + const instanceUrl = state.login.instanceUrl; + + // Parse instance URL + set params on it. + const url = new URL(instanceUrl); + url.pathname = "/oauth/authorize"; + url.searchParams.set("client_id", app.client_id); + url.searchParams.set("redirect_uri", redirectURI); + url.searchParams.set("response_type", "code"); + url.searchParams.set("scope", scope); + + // Set the app ID in state so we know which + // app to get out of our store after redirect. + url.searchParams.set("state", app.id); + + // Whisk the user away to the authorize page. + window.location.assign(url.toString()); + return { data: null }; + } + }), + + getAccessTokenForApp: build.mutation({ + query: (formData) => ({ + method: "POST", + url: `/oauth/token`, + asForm: true, + body: formData, + discardEmpty: true + }), + }), + }) +}); + +export const { + useLazySearchAppQuery, + useCreateAppMutation, + useGetAppQuery, + useGetOOBAuthCodeMutation, + useGetAccessTokenForAppMutation, + useDeleteAppMutation, +} = extended; diff --git a/web/source/settings/lib/types/application.ts b/web/source/settings/lib/types/application.ts new file mode 100644 index 000000000..125e82c95 --- /dev/null +++ b/web/source/settings/lib/types/application.ts @@ -0,0 +1,71 @@ +/* + GoToSocial + Copyright (C) GoToSocial Authors admin@gotosocial.org + SPDX-License-Identifier: AGPL-3.0-or-later + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +import { Links } from "parse-link-header"; + +export interface App { + id: string; + created_at: string; + name: string; + website?: string; + redirect_uris: string[]; + redirect_uri: string; + client_id: string; + client_secret: string; + vapid_key: string; + scopes: string[]; +} + +/** + * Parameters for GET to /api/v1/apps. + */ +export interface SearchAppParams { + /** + * If set, show only items older (ie., lower) than the given ID. + * Item with the given ID will not be included in response. + */ + max_id?: string; + /** + * If set, show only items newer (ie., higher) than the given ID. + * Item with the given ID will not be included in response. + */ + since_id?: string; + /** + * If set, show only items *immediately newer* than the given ID. + * Item with the given ID will not be included in response. + */ + min_id?: string; + /** + * If set, limit returned items to this number. + * Else, fall back to GtS API defaults. + */ + limit?: number; +} + +export interface SearchAppResp { + apps: App[]; + links: Links | null; +} + +export interface AppCreateParams { + client_name: string; + redirect_uris: string; + scopes: string; + website: string; +} diff --git a/web/source/settings/lib/types/oauth.ts b/web/source/settings/lib/types/oauth.ts new file mode 100644 index 000000000..b077ed356 --- /dev/null +++ b/web/source/settings/lib/types/oauth.ts @@ -0,0 +1,49 @@ +/* + GoToSocial + Copyright (C) GoToSocial Authors admin@gotosocial.org + SPDX-License-Identifier: AGPL-3.0-or-later + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +/** + * OAuthToken represents a response + * to an OAuth token request. + */ +export interface OAuthAccessToken { + /** + * Most likely to be 'Bearer' + * but may be something else. + */ + token_type: string; + /** + * The actual token. Can be passed in to + * authenticate further requests using the + * Authorization header and the token type. + */ + access_token: string; +} + +export interface OAuthApp { + client_id: string; + client_secret: string; +} + +export interface OAuthAccessTokenRequestBody { + client_id: string; + client_secret: string; + redirect_uri: string; + grant_type: string; + code: string; +} diff --git a/web/source/settings/lib/types/scopes.ts b/web/source/settings/lib/types/scopes.ts new file mode 100644 index 000000000..2bf5c21b4 --- /dev/null +++ b/web/source/settings/lib/types/scopes.ts @@ -0,0 +1,139 @@ +/* + GoToSocial + Copyright (C) GoToSocial Authors admin@gotosocial.org + SPDX-License-Identifier: AGPL-3.0-or-later + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +/* Sub-scopes / scope components */ + +const scopeAccounts = "accounts"; +const scopeApplications = "applications"; +const scopeBlocks = "blocks"; +const scopeBookmarks = "bookmarks"; +const scopeConversations = "conversations"; +const scopeDomainAllows = "domain_allows"; +const scopeDomainBlocks = "domain_blocks"; +const scopeFavourites = "favourites"; +const scopeFilters = "filters"; +const scopeFollows = "follows"; +const scopeLists = "lists"; +const scopeMedia = "media"; +const scopeMutes = "mutes"; +const scopeNotifications = "notifications"; +const scopeReports = "reports"; +const scopeSearch = "search"; +const scopeStatuses = "statuses"; + +/* Top-level scopes */ + +export const ScopeProfile = "profile"; +export const ScopePush = "push"; +export const ScopeRead = "read"; +export const ScopeWrite = "write"; +export const ScopeAdmin = "admin"; +export const ScopeAdminRead = ScopeAdmin + ":" + ScopeRead; +export const ScopeAdminWrite = ScopeAdmin + ":" + ScopeWrite; + +/* Granular scopes */ + +export const ScopeReadAccounts = ScopeRead + ":" + scopeAccounts; +export const ScopeWriteAccounts = ScopeWrite + ":" + scopeAccounts; +export const ScopeReadApplications = ScopeRead + ":" + scopeApplications; +export const ScopeWriteApplications = ScopeWrite + ":" + scopeApplications; +export const ScopeReadBlocks = ScopeRead + ":" + scopeBlocks; +export const ScopeWriteBlocks = ScopeWrite + ":" + scopeBlocks; +export const ScopeReadBookmarks = ScopeRead + ":" + scopeBookmarks; +export const ScopeWriteBookmarks = ScopeWrite + ":" + scopeBookmarks; +export const ScopeWriteConversations = ScopeWrite + ":" + scopeConversations; +export const ScopeReadFavourites = ScopeRead + ":" + scopeFavourites; +export const ScopeWriteFavourites = ScopeWrite + ":" + scopeFavourites; +export const ScopeReadFilters = ScopeRead + ":" + scopeFilters; +export const ScopeWriteFilters = ScopeWrite + ":" + scopeFilters; +export const ScopeReadFollows = ScopeRead + ":" + scopeFollows; +export const ScopeWriteFollows = ScopeWrite + ":" + scopeFollows; +export const ScopeReadLists = ScopeRead + ":" + scopeLists; +export const ScopeWriteLists = ScopeWrite + ":" + scopeLists; +export const ScopeWriteMedia = ScopeWrite + ":" + scopeMedia; +export const ScopeReadMutes = ScopeRead + ":" + scopeMutes; +export const ScopeWriteMutes = ScopeWrite + ":" + scopeMutes; +export const ScopeReadNotifications = ScopeRead + ":" + scopeNotifications; +export const ScopeWriteNotifications = ScopeWrite + ":" + scopeNotifications; +export const ScopeWriteReports = ScopeWrite + ":" + scopeReports; +export const ScopeReadSearch = ScopeRead + ":" + scopeSearch; +export const ScopeReadStatuses = ScopeRead + ":" + scopeStatuses; +export const ScopeWriteStatuses = ScopeWrite + ":" + scopeStatuses; +export const ScopeAdminReadAccounts = ScopeAdminRead + ":" + scopeAccounts; +export const ScopeAdminWriteAccounts = ScopeAdminWrite + ":" + scopeAccounts; +export const ScopeAdminReadReports = ScopeAdminRead + ":" + scopeReports; +export const ScopeAdminWriteReports = ScopeAdminWrite + ":" + scopeReports; +export const ScopeAdminReadDomainAllows = ScopeAdminRead + ":" + scopeDomainAllows; +export const ScopeAdminWriteDomainAllows = ScopeAdminWrite + ":" + scopeDomainAllows; +export const ScopeAdminReadDomainBlocks = ScopeAdminRead + ":" + scopeDomainBlocks; +export const ScopeAdminWriteDomainBlocks = ScopeAdminWrite + ":" + scopeDomainBlocks; + +export const ValidScopes = [ + ScopeProfile, + ScopePush, + ScopeRead, + ScopeWrite, + ScopeAdmin, + ScopeAdminRead, + ScopeAdminWrite, + ScopeReadAccounts, + ScopeWriteAccounts, + ScopeReadApplications, + ScopeWriteApplications, + ScopeReadBlocks, + ScopeWriteBlocks, + ScopeReadBookmarks, + ScopeWriteBookmarks, + ScopeWriteConversations, + ScopeReadFavourites, + ScopeWriteFavourites, + ScopeReadFilters, + ScopeWriteFilters, + ScopeReadFollows, + ScopeWriteFollows, + ScopeReadLists, + ScopeWriteLists, + ScopeWriteMedia, + ScopeReadMutes, + ScopeWriteMutes, + ScopeReadNotifications, + ScopeWriteNotifications, + ScopeWriteReports, + ScopeReadSearch, + ScopeReadStatuses, + ScopeWriteStatuses, + ScopeAdminReadAccounts, + ScopeAdminWriteAccounts, + ScopeAdminReadReports, + ScopeAdminWriteReports, + ScopeAdminReadDomainAllows, + ScopeAdminWriteDomainAllows, + ScopeAdminReadDomainBlocks, + ScopeAdminWriteDomainBlocks, +]; + +export const ValidTopLevelScopes = [ + ScopeProfile, + ScopePush, + ScopeRead, + ScopeWrite, + ScopeAdmin, + ScopeAdminRead, + ScopeAdminWrite, +]; diff --git a/web/source/settings/lib/util/formvalidators.ts b/web/source/settings/lib/util/formvalidators.ts index 358db616c..4e0e4a6a8 100644 --- a/web/source/settings/lib/util/formvalidators.ts +++ b/web/source/settings/lib/util/formvalidators.ts @@ -18,6 +18,8 @@ */ import isValidDomain from "is-valid-domain"; +import { useCallback } from "react"; +import { ValidScopes, ValidTopLevelScopes } from "../types/scopes"; /** * Validate the "domain" field of a form. @@ -29,6 +31,11 @@ export function formDomainValidator(domain: string): string { return ""; } + // Allow localhost for testing. + if (domain === "localhost") { + return ""; + } + if (domain[domain.length-1] === ".") { return "invalid domain"; } @@ -63,5 +70,67 @@ export function urlValidator(urlStr: string): string { return `invalid protocol, must be http or https`; } - return formDomainValidator(url.host); + return formDomainValidator(url.hostname); } + +export function useScopesValidator(): (_scopes: string[]) => string { + return useCallback((scopes) => { + return scopes. + map((scope) => validateScope(scope)). + flatMap((msg) => msg || []). + join(", "); + }, []); +} + +export function useScopeValidator(): (_scope: string) => string { + return useCallback((scope) => validateScope(scope), []); +} + +const validateScope = (scope: string) => { + if (!ValidScopes.includes(scope)) { + return scope + " is not a recognized scope"; + } + return ""; +}; + +export function useScopesPermittedBy(): (_hasScopes: string[], _wantScopes: string[]) => string { + return useCallback((hasScopes, wantsScopes) => { + return wantsScopes. + map((wanted) => scopePermittedByScopes(hasScopes, wanted)). + flatMap((msg) => msg || []). + join(", "); + }, []); +} + +const scopePermittedByScopes = (hasScopes: string[], wanted: string) => { + if (hasScopes.some((hasScope) => scopePermittedByScope(hasScope, wanted) === "")) { + return ""; + } + return `scopes [${hasScopes}] do not permit ${wanted}`; +}; + +const scopePermittedByScope = (has: string, wanted: string) => { + if (has === wanted) { + // Exact match on either a + // top-level or granular scope. + return ""; + } + + // Ensure we have a + // known top-level scope. + switch (true) { + case (ValidTopLevelScopes.includes(has)): + // Check if top-level includes wanted, + // eg., have "admin", want "admin:read". + if (wanted.startsWith(has + ":")) { + return ""; + } else { + return `scope ${has} does not permit ${wanted}`; + } + + default: + // Unknown top-level scope, + // can't permit anything. + return `unrecognized scope ${has}`; + } +}; diff --git a/web/source/settings/lib/util/index.ts b/web/source/settings/lib/util/index.ts index 4c8a90626..8bcf5ab5d 100644 --- a/web/source/settings/lib/util/index.ts +++ b/web/source/settings/lib/util/index.ts @@ -30,7 +30,7 @@ export function UseOurInstanceAccount(account: AdminAccount): boolean { // Pull our own URL out of storage so we can // tell if account is our instance account. const ourDomain = useMemo(() => { - const instanceUrlStr = store.getState().oauth.instanceUrl; + const instanceUrlStr = store.getState().login.instanceUrl; if (!instanceUrlStr) { return ""; } diff --git a/web/source/settings/redux/oauth.ts b/web/source/settings/redux/login.ts similarity index 59% rename from web/source/settings/redux/oauth.ts rename to web/source/settings/redux/login.ts index 1d6bf9bb1..2ba06dfff 100644 --- a/web/source/settings/redux/oauth.ts +++ b/web/source/settings/redux/login.ts @@ -18,33 +18,11 @@ */ import { PayloadAction, createSlice } from "@reduxjs/toolkit"; +import { OAuthApp, OAuthAccessToken } from "../lib/types/oauth"; -/** - * OAuthToken represents a response - * to an OAuth token request. - */ -export interface OAuthToken { - /** - * Most likely to be 'Bearer' - * but may be something else. - */ - token_type: string; - /** - * The actual token. Can be passed in to - * authenticate further requests using the - * Authorization header and the token type. - */ - access_token: string; -} - -export interface OAuthApp { - client_id: string; - client_secret: string; -} - -export interface OAuthState { +export interface LoginState { instanceUrl?: string; - loginState: "none" | "callback" | "login" | "logout"; + current: "none" | "awaitingcallback" | "loggedin" | "loggedout"; expectingRedirect: boolean; /** * Token stored in easy-to-use format. @@ -55,29 +33,31 @@ export interface OAuthState { app?: OAuthApp; } -const initialState: OAuthState = { - loginState: 'none', +const initialState: LoginState = { + current: 'none', expectingRedirect: false, }; -export const oauthSlice = createSlice({ - name: "oauth", +export const loginSlice = createSlice({ + name: "login", initialState: initialState, reducers: { - authorize: (_state, action: PayloadAction) => { + authorize: (_state, action: PayloadAction) => { // Overrides state with payload. return action.payload; }, - setToken: (state, action: PayloadAction) => { - // Mark us as logged in by storing token. + setToken: (state, action: PayloadAction) => { + // Mark us as logged + // in by storing token. state.token = `${action.payload.token_type} ${action.payload.access_token}`; - state.loginState = "login"; + state.current = "loggedin"; }, remove: (state) => { - // Mark us as logged out by clearing auth. + // Mark us as logged + // out by clearing auth. delete state.token; delete state.app; - state.loginState = "logout"; + state.current = "loggedout"; } } }); @@ -86,4 +66,4 @@ export const { authorize, setToken, remove, -} = oauthSlice.actions; +} = loginSlice.actions; diff --git a/web/source/settings/redux/store.ts b/web/source/settings/redux/store.ts index 0c1285187..076f5f88d 100644 --- a/web/source/settings/redux/store.ts +++ b/web/source/settings/redux/store.ts @@ -30,19 +30,19 @@ import { REGISTER, } from "redux-persist"; -import { oauthSlice } from "./oauth"; +import { loginSlice } from "./login"; import { gtsApi } from "../lib/query/gts-api"; const combinedReducers = combineReducers({ [gtsApi.reducerPath]: gtsApi.reducer, - oauth: oauthSlice.reducer, + login: loginSlice.reducer, }); const persistedReducer = persistReducer({ key: "gotosocial-settings", storage: require("redux-persist/lib/storage").default, stateReconciler: require("redux-persist/lib/stateReconciler/autoMergeLevel1").default, - whitelist: ["oauth"], + whitelist: ["login"], migrate: async (state) => { if (state == undefined) { return state; @@ -51,8 +51,8 @@ const persistedReducer = persistReducer({ // This is a cheeky workaround for // redux-persist being a stickler. let anyState = state as any; - if (anyState?.oauth != undefined) { - anyState.oauth.expectingRedirect = false; + if (anyState?.login != undefined) { + anyState.login.expectingRedirect = false; } return anyState; diff --git a/web/source/settings/style.css b/web/source/settings/style.css index 5a85f370e..fc146cdd7 100644 --- a/web/source/settings/style.css +++ b/web/source/settings/style.css @@ -1495,6 +1495,62 @@ button.tab-button { } } +.access-token-receive-form { + > .access-token-frame { + background-color: $gray2; + width: 100%; + padding: 0.25rem; + border-radius: $br-inner; + white-space: pre; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + font-family: monospace; + font-size: large; + } + + .closed { + text-align: center; + } +} + +.applications-view { + .application { + .info-list { + border: none; + width: 100%; + + .info-list-entry { + background: none; + padding: 0; + } + + > .info-list-entry > .monospace { + font-size: large; + } + } + } +} + +.application-details { + .info-list { + margin-top: 1rem; + + > .info-list-entry .monospace { + font-size: large; + } + + > .info-list-entry > dd > button { + font-size: medium; + padding-top: 0; + padding-bottom: 0; + } + } +} + +.application-new > .form-section-docs > p > .monospace { + font-size: large; +} + .instance-rules { list-style-position: inside; margin: 0; diff --git a/web/source/settings/views/admin/debug/apurl/index.tsx b/web/source/settings/views/admin/debug/apurl/index.tsx index b66794132..9ad88aa03 100644 --- a/web/source/settings/views/admin/debug/apurl/index.tsx +++ b/web/source/settings/views/admin/debug/apurl/index.tsx @@ -17,16 +17,14 @@ along with this program. If not, see . */ -import React, { useEffect, useRef } from "react"; +import React from "react"; import { useTextInput } from "../../../../lib/form"; import { useLazyApURLQuery } from "../../../../lib/query/admin/debug"; import { TextInput } from "../../../../components/form/inputs"; import MutationButton from "../../../../components/form/mutation-button"; import { ApURLResponse } from "../../../../lib/types/debug"; import Loading from "../../../../components/loading"; - -// Used for syntax highlighting of json result. -import Prism from "../../../../../frontend/prism"; +import { HighlightedCode } from "../../../../components/highlightedcode"; export default function ApURL() { const urlField = useTextInput("url"); @@ -102,26 +100,5 @@ function ApURLResult({ }; const jsonStr = JSON.stringify(jsonObj, null, 2); - return ; -} - -function Highlighted({ jsonStr }: { jsonStr: string }) { - const ref = useRef(null); - useEffect(() => { - if (ref.current) { - Prism.highlightElement(ref.current); - } - }, []); - - // Prism takes control of the `pre` so wrap - // the whole thing in a div that we control. - return ( -
-
-				
-					{jsonStr}
-				
-			
-
- ); + return ; } diff --git a/web/source/settings/views/user/applications/callback.tsx b/web/source/settings/views/user/applications/callback.tsx new file mode 100644 index 000000000..f1634cc6f --- /dev/null +++ b/web/source/settings/views/user/applications/callback.tsx @@ -0,0 +1,121 @@ +/* + GoToSocial + Copyright (C) GoToSocial Authors admin@gotosocial.org + SPDX-License-Identifier: AGPL-3.0-or-later + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +import React from "react"; +import { useSearch } from "wouter"; +import { Error as ErrorCmp } from "../../../components/error"; +import { useGetAccessTokenForAppMutation, useGetAppQuery } from "../../../lib/query/user/applications"; +import { useCallbackURL } from "./common"; +import useFormSubmit from "../../../lib/form/submit"; +import { useValue } from "../../../lib/form"; +import MutationButton from "../../../components/form/mutation-button"; +import FormWithData from "../../../lib/form/form-with-data"; +import { App } from "../../../lib/types/application"; +import { OAuthAccessToken } from "../../../lib/types/oauth"; + +export function AppTokenCallback({}) { + // Read the callback authorization + // information from the search params. + const search = useSearch(); + const urlQueryParams = new URLSearchParams(search); + const code = urlQueryParams.get("code"); + const appId = urlQueryParams.get("state"); + const error = urlQueryParams.get("error"); + const errorDescription = urlQueryParams.get("error_description"); + + if (error) { + let errString = error; + if (errorDescription) { + errString += ": " + errorDescription; + } + if (error === "invalid_scope") { + errString += ". You probably requested a token (sub-)scope that wasn't contained in the scopes of your application."; + } + const err = Error(errString); + return ; + } + + if (!code || !appId) { + const err = Error("code or app id not defined"); + return ; + } + + return( + <> + + + ); +} + + +function AccessForAppForm({ data: app, code }: { data: App, code: string }) { + const redirectURI = useCallbackURL(); + + // Prepare to call /oauth/token to + // exchange code for access token. + const form = { + client_id: useValue("client_id", app.client_id), + client_secret: useValue("client_secret", app.client_secret), + redirect_uri: useValue("redirect_uri", redirectURI), + code: useValue("code", code), + grant_type: useValue("grant_type", "authorization_code"), + + }; + const [ submit, result ] = useFormSubmit(form, useGetAccessTokenForAppMutation()); + + return ( +
+ + + { result.data + ?
{(result.data as OAuthAccessToken).access_token}
+ :
+ } + + + + ); +} diff --git a/web/source/settings/views/user/applications/common.tsx b/web/source/settings/views/user/applications/common.tsx new file mode 100644 index 000000000..44f5570cb --- /dev/null +++ b/web/source/settings/views/user/applications/common.tsx @@ -0,0 +1,85 @@ +/* + GoToSocial + Copyright (C) GoToSocial Authors admin@gotosocial.org + SPDX-License-Identifier: AGPL-3.0-or-later + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +import React, { useMemo } from "react"; +import { App } from "../../../lib/types/application"; +import { useStore } from "react-redux"; +import { RootState } from "../../../redux/store"; + +export const useAppWebsite = (app: App) => { + return useMemo(() => { + if (!app.website) { + return ""; + } + + try { + // Try to parse nicely and return link. + const websiteURL = new URL(app.website); + const websiteURLStr = websiteURL.toString(); + return ( + {websiteURLStr} + ); + } catch { + // Fall back to returning string. + return app.website; + } + }, [app.website]); +}; + +export const useCreated = (app: App) => { + return useMemo(() => { + const createdAt = new Date(app.created_at); + return ; + }, [app.created_at]); +}; + +export const useRedirectURIs= (app: App) => { + return useMemo(() => { + const length = app.redirect_uris.length; + if (length === 1) { + return app.redirect_uris[0]; + } + + return app.redirect_uris.map((redirectURI, i) => { + return i === 0 ? <>{redirectURI} : <>
{redirectURI}; + }); + + }, [app.redirect_uris]); +}; + +export const useCallbackURL = () => { + const state = useStore().getState() as RootState; + const instanceUrl = state.login.instanceUrl; + if (instanceUrl === undefined) { + throw "instanceUrl undefined"; + } + + return useMemo(() => { + const url = new URL(instanceUrl); + if (url === null) { + throw "redirectURI null"; + } + url.pathname = "/settings/user/applications/callback"; + return url.toString(); + }, [instanceUrl]); +}; diff --git a/web/source/settings/views/user/applications/detail.tsx b/web/source/settings/views/user/applications/detail.tsx new file mode 100644 index 000000000..5beeb0cce --- /dev/null +++ b/web/source/settings/views/user/applications/detail.tsx @@ -0,0 +1,226 @@ +/* + GoToSocial + Copyright (C) GoToSocial Authors admin@gotosocial.org + SPDX-License-Identifier: AGPL-3.0-or-later + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +import React, { useState } from "react"; +import { useLocation, useParams } from "wouter"; +import FormWithData from "../../../lib/form/form-with-data"; +import BackButton from "../../../components/back-button"; +import { useBaseUrl } from "../../../lib/navigation/util"; +import { useDeleteAppMutation, useGetAppQuery, useGetOOBAuthCodeMutation } from "../../../lib/query/user/applications"; +import { App } from "../../../lib/types/application"; +import { useAppWebsite, useCallbackURL, useCreated, useRedirectURIs } from "./common"; +import MutationButton from "../../../components/form/mutation-button"; +import { useTextInput } from "../../../lib/form"; +import { TextInput } from "../../../components/form/inputs"; +import { useScopesPermittedBy, useScopesValidator } from "../../../lib/util/formvalidators"; + +export default function AppDetail({ }) { + const params: { appId: string } = useParams(); + const baseUrl = useBaseUrl(); + const backLocation: String = history.state?.backLocation ?? `~${baseUrl}`; + + return ( +
+

Application Details

+ +
+ ); +} + +function AppDetailForm({ data: app, backLocation }: { data: App, backLocation: string }) { + return ( + <> + + + + + ); +} + +function AppBasicInfo({ app }: { app: App }) { + const appWebsite = useAppWebsite(app); + const created = useCreated(app); + const redirectURIs = useRedirectURIs(app); + const [ showClient, setShowClient ] = useState(false); + const [ showSecret, setShowSecret ] = useState(false); + + return ( +
+
+
Name:
+
{app.name}
+
+ + { appWebsite && +
+
Website:
+
{appWebsite}
+
+ } + +
+
Created:
+
{created}
+
+ +
+
Scopes:
+
{app.scopes.join(" ")}
+
+ +
+
Redirect URI(s):
+
{redirectURIs}
+
+ +
+
Vapid key:
+
{app.vapid_key}
+
+ +
+
Client ID:
+ { showClient + ?
{app.client_id}
+ :
+ } +
+ +
+
Client secret:
+ { showSecret + ?
{app.client_secret}
+ :
+ } +
+
+ ); +} + +function AccessTokenForm({ app }: { app: App }) { + const [ getOOBAuthCode, result ] = useGetOOBAuthCodeMutation(); + const permittedScopes = useScopesPermittedBy(); + const validateScopes = useScopesValidator(); + const scope = useTextInput("scope", { + defaultValue: app.scopes.join(" "), + validator: (wantsScopesStr: string) => { + if (wantsScopesStr === "") { + return ""; + } + + // Check requested scopes are valid scopes. + const wantsScopes = wantsScopesStr.split(" "); + const invalidScopesMsg = validateScopes(wantsScopes); + if (invalidScopesMsg !== "") { + return invalidScopesMsg; + } + + // Check requested scopes are permitted by the app. + return permittedScopes(app.scopes, wantsScopes); + } + }); + + const callbackURL = useCallbackURL(); + const disabled = !app.redirect_uris.includes(callbackURL); + return ( +
{ + e.preventDefault(); + getOOBAuthCode({ + app, + scope: scope.value ?? "", + redirectURI: callbackURL, + }); + }} + > +
+

Request An API Access Token

+

+ If your application redirect URIs includes the settings panel callback URL, + you can use this section to request an access token that you can use to make API calls. +
The token scopes specified below must be equal to, or a subset of, the scopes + you provided when you created the application. +
After clicking "Request access token", you will be redirected to the sign in + page for your instance, where you must provide your credentials in order to authorize + your application to act on your behalf. You will then be redirected again to a page + where you can view your new access token. +

+ + Learn more about the OAuth authentication flow (opens in a new tab) + +
+ + + + + + ); +} + +function DeleteAppForm({ app, backLocation }: { app: App, backLocation: string }) { + const [ _location, setLocation ] = useLocation(); + const [ deleteApp, result ] = useDeleteAppMutation(); + + return ( +
+
+

Delete Application

+

+ You can use this button to delete the application. +
Any tokens created by the application will also be deleted. +

+
+ { + e.preventDefault(); + deleteApp(app.id); + setLocation(backLocation); + }} + disabled={false} + showError={false} + result={result} + /> + + ); +} diff --git a/web/source/settings/views/user/applications/index.tsx b/web/source/settings/views/user/applications/index.tsx new file mode 100644 index 000000000..0a86adf16 --- /dev/null +++ b/web/source/settings/views/user/applications/index.tsx @@ -0,0 +1,44 @@ +/* + GoToSocial + Copyright (C) GoToSocial Authors admin@gotosocial.org + SPDX-License-Identifier: AGPL-3.0-or-later + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +import React from "react"; +import AppsSearchForm from "./search"; + +export default function Applications() { + return ( +
+
+

Applications

+

+ On this page you can search through applications you've created. + To manage an application, click on it to go to the detailed view. +

+ + Learn more about managing your applications (opens in a new tab) + +
+ +
+ ); +} diff --git a/web/source/settings/views/user/applications/new.tsx b/web/source/settings/views/user/applications/new.tsx new file mode 100644 index 000000000..fc5e5cc42 --- /dev/null +++ b/web/source/settings/views/user/applications/new.tsx @@ -0,0 +1,150 @@ +/* + GoToSocial + Copyright (C) GoToSocial Authors admin@gotosocial.org + SPDX-License-Identifier: AGPL-3.0-or-later + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +import React from "react"; +import useFormSubmit from "../../../lib/form/submit"; +import { useTextInput } from "../../../lib/form"; +import MutationButton from "../../../components/form/mutation-button"; +import { TextArea, TextInput } from "../../../components/form/inputs"; +import { useLocation } from "wouter"; +import { useCreateAppMutation } from "../../../lib/query/user/applications"; +import { urlValidator, useScopesValidator } from "../../../lib/util/formvalidators"; +import { useCallbackURL } from "./common"; +import { HighlightedCode } from "../../../components/highlightedcode"; + +export default function NewApp() { + const [ _location, setLocation ] = useLocation(); + const callbackURL = useCallbackURL(); + const scopesValidator = useScopesValidator(); + + const form = { + name: useTextInput("client_name"), + redirect_uris: useTextInput("redirect_uris", { + validator: (redirectURIs: string) => { + if (redirectURIs === "") { + return ""; + } + + const invalids = redirectURIs. + split("\n"). + map(redirectURI => redirectURI === "urn:ietf:wg:oauth:2.0:oob" ? "" : urlValidator(redirectURI)). + flatMap((invalid) => invalid || []); + + return invalids.join(", "); + } + }), + scopes: useTextInput("scopes", { + validator: (scopesStr: string) => { + if (scopesStr === "") { + return ""; + } + return scopesValidator(scopesStr.split(" ")); + } + }), + website: useTextInput("website", { + validator: urlValidator, + }), + }; + + const [formSubmit, result] = useFormSubmit( + form, + useCreateAppMutation(), + { + changedOnly: false, + onFinish: (res) => { + if (res.data) { + // Creation successful, + // redirect to apps overview. + setLocation(`/search`); + } + }, + }); + + return ( +
+
+

New Application

+

+ On this page you can create a new managed OAuth client application, with the specified redirect URIs and scopes. +
If not specified, redirect URIs defaults to urn:ietf:wg:oauth:2.0:oob, and scopes defaults to read. +
If you want to obtain an access token for your application here in the settings panel, include this settings panel callback URL in your redirect URIs: + +

+ + Learn more about application redirect URIs and scopes (opens in a new tab) + +
+ + + + + +

oapS=VRp>^DO$aO`3_|W%CY?;BYSn_MN@dPs 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%0Dw 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