-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathextension.yaml
141 lines (131 loc) · 6.07 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
# 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: firebase-logsnag-extension # Identifier for your extension
version: 0.0.1 # Follow semver versioning
specVersion: v1beta # Version of the Firebase Extensions specification
# Friendly display name for your extension (~3-5 words)
displayName: Firebase LogSnag Extension (Unofficial)
# Brief description of the task your extension performs (~1 sentence)
description: >-
Publishes events and insights to LogSnag based on the contents of a document written to a specified Cloud Firestore collection.
license: Apache-2.0 # https://spdx.org/licenses/
# Public URL for the source code of your extension
sourceUrl: https://github.com/nikkothari22/firebase-logsnag-extension
author:
authorName: Nikhil Kothari
email: nik.kothari22@live.com
url: https://github.com/nikkothari22 # Author URL
# 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
roles:
- role: datastore.user
reason: Allows this extension to access Cloud Firestore to read and process added event and insight documents.
# 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: processEvent
type: firebaseextensions.v1beta.function
description: Publishes LogSnag event, and updates the document with delivery status information whenever a new document is created in the specified Cloud Firestore collection.
properties:
location: ${param:LOCATION}
runtime: nodejs16
eventTrigger:
eventType: providers/cloud.firestore/eventTypes/document.create
resource: projects/${param:PROJECT_ID}/databases/(default)/documents/${param:LOGSNAG_EVENT_COLLECTION}/{id}
- name: processInsight
type: firebaseextensions.v1beta.function
description: Publishes LogSnag insight, and updates the document with delivery status information whenever a new document is created in the specified Cloud Firestore collection.
properties:
location: ${param:LOCATION}
runtime: nodejs16
eventTrigger:
eventType: providers/cloud.firestore/eventTypes/document.create
resource: projects/${param:PROJECT_ID}/databases/(default)/documents/${param:LOGSNAG_INSIGHT_COLLECTION}/{id}
# 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: LOGSNAG_PROJECT_NAME
label: LogSnag Project Name
description: You can find your LogSnag Project Name in the [LogSnag Dashboard](https://app.logsnag.com/dashboard)
example: test-project
type: string
required: true
- param: LOGSNAG_API_TOKEN
label: LogSnag API Token
description: You can find your LogSnag API Token in the [LogSnag Dashboard](https://app.logsnag.com/dashboard)
type: secret
required: true
- param: LOGSNAG_EVENT_COLLECTION
label: LogSnag event documents collection
description: >-
What is the path to the collection that contains the documents used to publish an event in LogSnag?
type: string
default: logsnagEvents
validationRegex: "^[^/]+(/[^/]+/[^/]+)*$"
validationErrorMessage: Must be a valid Cloud Firestore collection
required: true
- param: LOGSNAG_INSIGHT_COLLECTION
label: LogSnag insight documents collection
description: >-
What is the path to the collection that contains the documents used to publish an insight in LogSnag?
type: string
default: logsnagInsights
validationRegex: "^[^/]+(/[^/]+/[^/]+)*$"
validationErrorMessage: Must be a valid Cloud Firestore collection
required: true