Google Cloud Platform server destination for walkerOS (BigQuery)
npm install @walkeros/server-destination-gcpwalkerOS follows a source → collector → destination architecture. This GCP
destination receives processed events from the walkerOS collector and streams
them to Google BigQuery, enabling real-time data warehousing and analytics with
Google Cloud's powerful data processing and machine learning capabilities.
``sh`
npm install @walkeros/server-destination-gcp
Configure in your Flow JSON:
`json`
{
"version": 1,
"flows": {
"default": {
"server": {},
"destinations": {
"bigquery": {
"package": "@walkeros/server-destination-gcp",
"config": {
"settings": {
"projectId": "YOUR_PROJECT_ID",
"datasetId": "YOUR_DATASET_ID",
"tableId": "YOUR_TABLE_ID"
}
}
}
}
}
}
}
Or programmatically:
`typescript
import { startFlow } from '@walkeros/collector';
import { destinationBigQuery } from '@walkeros/server-destination-gcp';
const { elb } = await startFlow({
destinations: [
{
destination: destinationBigQuery,
config: {
settings: {
projectId: 'YOUR_PROJECT_ID',
datasetId: 'YOUR_DATASET_ID',
tableId: 'YOUR_TABLE_ID',
},
},
},
],
});
`
| Name | Type | Description | Required | Example |
| ----------- | ----------------- | ------------------------------------------------ | -------- | ------------------------------------------ |
| client | BigQuery | Google Cloud BigQuery client instance | Yes | new BigQuery({ projectId, keyFilename }) |projectId
| | string | Google Cloud Project ID | Yes | 'my-gcp-project' |datasetId
| | string | BigQuery dataset ID where events will be stored | Yes | 'walker_events' |tableId
| | string | BigQuery table ID for event storage | Yes | 'events' |location
| | string | Geographic location for the BigQuery dataset | No | 'US' |bigquery
| | BigQueryOptions | Additional BigQuery client configuration options | No | { keyFilename: "path/to/key.json" } |
By default, the destination sends the full walkerOS event. Create the table
with:
`sqlYOUR_PROJECT.walkeros.events
CREATE TABLE IF NOT EXISTS (group
timestamp TIMESTAMP,
createdAt TIMESTAMP,
name STRING,
id STRING,
entity STRING,
action STRING,
trigger STRING,
STRING,`
timing FLOAT64,
count INT64,
data STRING,
context STRING,
globals STRING,
custom STRING,
user STRING,
nested STRING,
consent STRING,
version STRING,
source STRING
);
Object and array fields (data, context, globals, etc.) are JSONdata` mapping config, see the
stringified. For custom schemas using the
full documentation.
See src/types/ for TypeScript interfaces.
- Website Documentation
- Destination Interface
Feel free to contribute by submitting an
issue, starting a
discussion, or getting in
contact.
This project is licensed under the MIT License.