snapshot of https://github.com/mountain-loop/yaak.git (main, 2026-09-23; blobs > 131072B omitted)
This commit is contained in:
16
plugins/auth-apikey/package.json
Normal file
16
plugins/auth-apikey/package.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"name": "@yaak/auth-apikey",
|
||||
"displayName": "API Key Authentication",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"description": "Authenticate requests using an API key",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/mountain-loop/yaak.git",
|
||||
"directory": "plugins/auth-apikey"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "yaakcli build",
|
||||
"dev": "yaakcli dev"
|
||||
}
|
||||
}
|
||||
54
plugins/auth-apikey/src/index.ts
Normal file
54
plugins/auth-apikey/src/index.ts
Normal file
@@ -0,0 +1,54 @@
|
||||
import type { PluginDefinition } from "@yaakapp/api";
|
||||
|
||||
export const plugin: PluginDefinition = {
|
||||
authentication: {
|
||||
name: "apikey",
|
||||
label: "API Key",
|
||||
shortLabel: "API Key",
|
||||
args: [
|
||||
{
|
||||
type: "select",
|
||||
name: "location",
|
||||
label: "Behavior",
|
||||
defaultValue: "header",
|
||||
options: [
|
||||
{ label: "Insert Header", value: "header" },
|
||||
{ label: "Append Query Parameter", value: "query" },
|
||||
],
|
||||
},
|
||||
{
|
||||
type: "text",
|
||||
name: "key",
|
||||
label: "Key",
|
||||
dynamic: (_ctx, { values }) => {
|
||||
return values.location === "query"
|
||||
? {
|
||||
label: "Parameter Name",
|
||||
description: "The name of the query parameter to add to the request",
|
||||
}
|
||||
: {
|
||||
label: "Header Name",
|
||||
description: "The name of the header to add to the request",
|
||||
};
|
||||
},
|
||||
},
|
||||
{
|
||||
type: "text",
|
||||
name: "value",
|
||||
label: "API Key",
|
||||
optional: true,
|
||||
password: true,
|
||||
},
|
||||
],
|
||||
async onApply(_ctx, { values }) {
|
||||
const key = String(values.key ?? "");
|
||||
const value = String(values.value ?? "");
|
||||
const location = String(values.location);
|
||||
|
||||
if (location === "query") {
|
||||
return { setQueryParameters: [{ name: key, value }] };
|
||||
}
|
||||
return { setHeaders: [{ name: key, value }] };
|
||||
},
|
||||
},
|
||||
};
|
||||
3
plugins/auth-apikey/tsconfig.json
Normal file
3
plugins/auth-apikey/tsconfig.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"extends": "../../tsconfig.json"
|
||||
}
|
||||
Reference in New Issue
Block a user