-
Notifications
You must be signed in to change notification settings - Fork 35
/
extension.yaml
188 lines (167 loc) · 6.45 KB
/
extension.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
# 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.