palm-secure-backend/extension.yaml (145 lines of code) (raw):
# Learn detailed information about the fields of an extension.yaml file in the docs:
# https://firebase.google.com/docs/extensions/alpha/ref-extension-yaml
name: palm-secure-backend # Identifier for your extension
version: 0.1.5 # Follow semver versioning
specVersion: v1beta # Version of the Firebase Extensions specification
# Friendly display name for your extension (~3-5 words)
displayName: Call PaLM API Securely
# Brief description of the task your extension performs (~1 sentence)
description: >-
Protects your API key and prevents resource abuse by deploying a backend to
call the PaLM API, secured by App Check.
license: Apache-2.0 # https://spdx.org/licenses/
icon: icon.png
tags:
[
ai,
palm,
generative-ai,
text-ai,
language-ai,
large-language-models,
llm,
nlp,
google-ai,
]
author:
authorName: Google Cloud
url: https://cloud.google.com/
contributors:
- authorName: Invertase
email: oss@invertase.io
url: https://github.com/invertase
# Public URL for the source code of your extension
sourceUrl: https://github.com/GoogleCloudPlatform/firebase-extensions/tree/main/palm-secure-backend
releaseNotesUrl: https://github.com/GoogleCloudPlatform/firebase-extensions/tree/main/palm-secure-backend/CHANGELOG.md
# Specify whether a paid-tier billing plan is required to use your extension.
# Learn more in the docs: https://firebase.google.com/docs/extensions/alpha/ref-extension-yaml#billing-required-field
billingRequired: true
# In an `apis` field, list any Google APIs (like Cloud Translation, BigQuery, etc.)
# required for your extension to operate.
# Learn more in the docs: https://firebase.google.com/docs/extensions/alpha/ref-extension-yaml#apis-field
# In a `roles` field, list any IAM access roles required for your extension to operate.
# Learn more in the docs: https://firebase.google.com/docs/extensions/alpha/ref-extension-yaml#roles-field
# In the `resources` field, list each of your extension's functions, including the trigger for each function.
# Learn more in the docs: https://firebase.google.com/docs/extensions/alpha/ref-extension-yaml#resources-field
resources:
- name: post
type: firebaseextensions.v1beta.function
description: >-
https endpoint wrapping the PaLM API
properties:
# LOCATION is a user-configured parameter value specified by the user during installation.
location: ${LOCATION}
# httpsTrigger is used for an HTTP triggered function.
httpsTrigger: {}
runtime: nodejs18
- name: getModels
type: firebaseextensions.v1beta.function
description: >-
https endpoint wrapping the PaLM API
properties:
# LOCATION is a user-configured parameter value specified by the user during installation.
location: ${LOCATION}
# httpsTrigger is used for an HTTP triggered function.
httpsTrigger: {}
runtime: nodejs18
- name: getModel
type: firebaseextensions.v1beta.function
description: >-
https endpoint wrapping the PaLM API
properties:
# LOCATION is a user-configured parameter value specified by the user during installation.
location: ${LOCATION}
# httpsTrigger is used for an HTTP triggered function.
httpsTrigger: {}
runtime: nodejs18
# In the `params` field, set up your extension's user-configured parameters.
# Learn more in the docs: https://firebase.google.com/docs/extensions/alpha/ref-extension-yaml#params-field
params:
- param: LOCATION
label: Cloud Functions location
description: >-
Where do you want to deploy the functions created for this extension? For
help selecting a location, refer to the [location selection
guide](https://firebase.google.com/docs/functions/locations).
type: select
options:
- label: Iowa (us-central1)
value: us-central1
- label: South Carolina (us-east1)
value: us-east1
- label: Northern Virginia (us-east4)
value: us-east4
- label: Los Angeles (us-west2)
value: us-west2
- label: Salt Lake City (us-west3)
value: us-west3
- label: Las Vegas (us-west4)
value: us-west4
- label: Warsaw (europe-central2)
value: europe-central2
- label: Belgium (europe-west1)
value: europe-west1
- label: London (europe-west2)
value: europe-west2
- label: Frankfurt (europe-west3)
value: europe-west3
- label: Zurich (europe-west6)
value: europe-west6
- label: Hong Kong (asia-east2)
value: asia-east2
- label: Tokyo (asia-northeast1)
value: asia-northeast1
- label: Osaka (asia-northeast2)
value: asia-northeast2
- label: Seoul (asia-northeast3)
value: asia-northeast3
- label: Mumbai (asia-south1)
value: asia-south1
- label: Jakarta (asia-southeast2)
value: asia-southeast2
- label: Montreal (northamerica-northeast1)
value: northamerica-northeast1
- label: Sao Paulo (southamerica-east1)
value: southamerica-east1
- label: Sydney (australia-southeast1)
value: australia-southeast1
required: true
immutable: true
- param: API_KEY
label: API Key
description: >-
Google Cloud API Key with PaLM API access enabled.
type: secret
required: true
- param: ENFORCE_APP_CHECK
label: Enforce App Check
description: >-
If enabled, App check will be enforced for function calls.
type: select
options:
- label: Yes
value: yes
- label: No
value: no
default: no
required: true
- param: CUSTOM_HOOK_URL
label: Custom hook function url
description: >
An HTTPS callable function that will be called with the request and
response body of the PaLM API call, as well as user context.
type: string
example: https://us-west1-my-project-id.cloudfunctions.net/customHook
required: false
events:
- type: firebase.extensions.palm-secure-backend.v1.onStart
description: Occurs when any of the extensions functions receive a request.
- type: firebase.extensions.palm-secure-backend.v1.onRequest
description:
Occurs when the extension attempts to fetch a response from the PaLM API.
- type: firebase.extensions.palm-secure-backend.v1.onResponse
description:
Occurs when the extension successfully receives a reponse from the PaLM
API.
- type: firebase.extensions.palm-secure-backend.v1.onError
description: Occurs when the extension fails to complete execution.