base on Open Source Event Monitoring <div align="center"> <h1 align="center">Sadly I don't have the time to maintain this project. I'm building <a href="https://unkey.dev?utm_source=highstorm">unkey.dev</a> to solve API authentication and authorization with DX in mind. It's also <a href="https://github.com/unkeyed/unkey">100% open source</a>! </h1> </div> <br/><br/><br/> <div align="center"> <h1 align="center">Highstorm</h1> <h5>Open Source Event Monitoring</h5> </div> <div align="center"> <a href="https://highstorm.app?ref=github">highstorm.app</a> </div> <br/> ## Contributing Thank you for considering contributing to our open source project! We appreciate your interest and are excited to have you on board. This document outlines the steps you need to follow to contribute to the project effectively. Please read the guidelines carefully and feel free to reach out if you have any questions. ### Services Before getting started, please ensure that you have the following third-party services set up: - [planetscale](https://planetscale.com?ref=highstorm): Database - [tinybird](https://www.tinybird.co?ref=highstorm): Time series database - [upstash](https://upstash.com/qstash?ref=highstorm): Optional, only required for reports - [clerk](https://clerk.com?ref=highstorm): Authentication ## Installation To install the project and its dependencies, follow these steps: 1. Ensure you have `pnpm` installed on your system. If not, you can install it by running: ```sh-session npm install -g pnpm ``` 2. Run the following command to install the project dependencies: ```sh-session pnpm install ``` ### Environment Variables After setting up the required services, you need to set the corresponding environment variables in the `/apps/web/.env` file. To do this, follow these steps: 1. Make a copy of the `.env.example` file: ```sh-session cp apps/web/.env.example apps/web/.env ``` 2. Open the `/apps/web/.env` file in a text editor and populate the values for the services mentioned above. ## Database Preparation ### Prisma To prepare the Prisma database, follow these steps: 1. Navigate to the `/apps/web` directory: ```sh-session cd apps/web ``` 2. Run the following command to push the database schema and generate Prisma Client: ```sh-session npx prisma db push ``` ### Tinybird To prepare the Tinybird database, follow these steps: 1. Download the Tinybird CLI from [here](https://www.tinybird.co/docs/cli.html) and install it on your system. 2. After authenticating with the Tinybird CLI, navigate to the `/apps/web/lib/tinybird` directory: ```sh-session cd apps/web/lib/tinybird ``` 3. Push the necessary datasources using the following command: ```sh-session tb push datasources/ tb push ``` **Note: If the CLERK_WEBHOOK_SECRET env variable is not set, pass an empty string, and make sure to visit `/onboarding` after signing up.** ## Build To build the project, execute the following command: ```sh-session pnpm build ``` ## Run To run the project locally, use the following command: ```sh-session pnpm turbo run dev --filter=web ``` ", Assign "at most 3 tags" to the expected json: {"id":"4554","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"