docs(http): Replace allowlist scope with capability scope

pull/1446/head
FabianLars 1 year ago
parent 264a044097
commit 8e1ae08c69
No known key found for this signature in database

@ -7,16 +7,18 @@
*
* ## Security
*
* This API has a scope configuration that forces you to restrict the URLs and paths that can be accessed using glob patterns.
* This API has a scope configuration that forces you to restrict the URLs that can be accessed using glob patterns.
*
* For instance, this scope configuration only allows making HTTP requests to the GitHub API for the `tauri-apps` organization:
* For instance, this scope configuration only allows making HTTP requests to all subdomains for `tauri.app` except for `https://private.tauri.app`:
* ```json
* {
* "plugins": {
* "http": {
* "scope": ["https://api.github.com/repos/tauri-apps/*"]
* "permissions": [
* {
* "identifier": "http:default",
* "allow": [{ "url": "https://*.tauri.app" }],
* "deny": [{ "url": "https://private.tauri.app" }]
* }
* }
* ]
* }
* ```
* Trying to execute any API with a URL not configured on the scope results in a promise rejection due to denied access.
@ -100,7 +102,7 @@ export interface ClientOptions {
*/
export async function fetch(
input: URL | Request | string,
init?: RequestInit & ClientOptions,
init?: RequestInit & ClientOptions
): Promise<Response> {
const maxRedirections = init?.maxRedirections;
const connectTimeout = init?.connectTimeout;
@ -148,7 +150,7 @@ export async function fetch(
// we need to ensure we have all header values as strings
// eslint-disable-next-line
typeof val === "string" ? val : (val as any).toString(),
],
]
);
const rid = await invoke<number>("plugin:http|fetch", {
@ -191,7 +193,7 @@ export async function fetch(
"plugin:http|fetch_read_body",
{
rid: responseRid,
},
}
);
const res = new Response(
@ -204,7 +206,7 @@ export async function fetch(
headers: responseHeaders,
status,
statusText,
},
}
);
// url is read only but seems like we can do this

Loading…
Cancel
Save