httpHeaderAddActions.ts 1.0 KB

123456789101112131415161718192021222324252627282930
  1. import type { KeyValueFieldArrayAction } from 'ui-patterns/form/KeyValueFieldArray/KeyValueFieldArray'
  2. interface BuildEdgeFunctionHeaderAddActionsParams<TRow> {
  3. apiKey: string
  4. includeApiKeyHeader?: boolean
  5. createRow: (name: string, value: string) => TRow
  6. }
  7. export const buildEdgeFunctionHeaderAddActions = <TRow>({
  8. apiKey,
  9. includeApiKeyHeader = false,
  10. createRow,
  11. }: BuildEdgeFunctionHeaderAddActionsParams<TRow>): KeyValueFieldArrayAction<TRow>[] => [
  12. {
  13. key: 'add-auth-header',
  14. label: 'Add auth header with secret key',
  15. description: 'Required if your edge function enforces JWT verification',
  16. createRows: () => [
  17. createRow('Authorization', `Bearer ${apiKey}`),
  18. ...(includeApiKeyHeader ? [createRow('apikey', apiKey)] : []),
  19. ],
  20. },
  21. {
  22. key: 'add-source-header',
  23. label: 'Add custom source header',
  24. description: 'Useful to verify that the edge function was triggered from this webhook',
  25. createRows: () => createRow('x-briven-webhook-source', '[Use a secret value]'),
  26. separatorAbove: true,
  27. },
  28. ]