Git Product home page Git Product logo

highstorm's Introduction

Sadly I don't have the time to maintain this project. I'm building unkey.dev to solve API authentication and authorization with DX in mind. It's also 100% open source!




Highstorm

Open Source Event Monitoring

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:

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:

    npm install -g pnpm
  2. Run the following command to install the project dependencies:

    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:
    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:
    cd apps/web
  2. Run the following command to push the database schema and generate Prisma Client:
    npx prisma db push

Tinybird

To prepare the Tinybird database, follow these steps:

  1. Download the Tinybird CLI from here and install it on your system.
  2. After authenticating with the Tinybird CLI, navigate to the /apps/web/lib/tinybird directory:
    cd apps/web/lib/tinybird
  3. Push the necessary datasources using the following command:
    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:

pnpm build

Run

To run the project locally, use the following command:

pnpm turbo run dev --filter=web

highstorm's People

Contributors

amosbastian avatar ayanmta avatar bartvdbraak avatar chronark avatar mfts avatar sandervspl avatar souravpakhira avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

highstorm's Issues

Proposal for Streamlining the Onboarding Process and Enhancing Documentation Clarity

Dear Highstorm Maintainers,

I trust this message finds you well. I am writing to you today as an enthusiastic user and prospective contributor to the Highstorm project. Upon reviewing the project's documentation, I have identified a couple of areas where I believe enhancements could significantly improve the onboarding experience for new contributors and provide greater clarity in the setup instructions.

Firstly, I would like to suggest the implementation of a more detailed onboarding guide that encompasses common pitfalls and troubleshooting steps. This guide could be particularly beneficial for contributors who may encounter issues when setting up the various third-party services required by Highstorm.

Secondly, the current documentation assumes a level of familiarity with the services like Planetscale, Tinybird, Upstash, and Clerk. While these services are indeed integral to the project, a brief introduction or overview of each service's role within Highstorm could aid contributors in understanding the architecture and the workflow of the project more comprehensively.

To this end, I propose the following enhancements to the README.md and the project documentation:

  1. Expanded Onboarding Guide: A dedicated section that walks new contributors through the setup process step-by-step, including screenshots and a FAQ section to address common issues.

  2. Service Overviews: A brief description of each third-party service, highlighting its purpose and how it integrates into the Highstorm ecosystem. This could be included in the 'Services' section of the README.md.

  3. Environment Variable Clarification: Additional comments in the .env.example file to explain the significance of each variable and provide guidance on where to find the necessary information.

  4. Prisma and Tinybird Setup: A more detailed explanation of the Prisma and Tinybird setup processes, potentially with a link to external resources or official documentation for users unfamiliar with these tools.

  5. Onboarding Endpoint: Clarification on the purpose of visiting the /onboarding endpoint post-signup, and what actions a user should expect to take once there.

I am more than willing to assist in the drafting and implementation of these enhancements, should you find them to be beneficial for the project. I believe that by making these improvements, we can make Highstorm even more accessible and welcoming to new contributors, thereby fostering a more vibrant and collaborative community.

Thank you for considering my suggestions. I am looking forward to your feedback and the opportunity to contribute to Highstorm's success.

Best regards,
yihong1120

Hero page github links redirecting on same page

Hi ,

on Hero section i found the github link buttons redirects on the same page ,

highstorm.issue.1.-.Made.with.Clipchamp.mp4

i would suggest to open them on the new tab as :

  • it increases user retention
  • makes it easier to switch back to project

Redundant code ?

In the trpc file this code

export const auth = t.middleware(({ next, ctx }) => {
if (!ctx.user?.id) {
throw new TRPCError({ code: "UNAUTHORIZED" });
}
return next({
ctx: {
user: ctx.user,
tenant: ctx.tenant ?? { id: ctx.user.id, slug: "home", role: "owner" }, //this seems unnecessary as we are already doing this in the Context file
},
});
});

Docker support

Hi for an easy and quick start to run this app, docker would be a great addition.
So could we create a docker stack (compose) for a simple and quick deployment?

Error when creating API Key

Hi there,

I am testing out this environment locally and getting the following error:

image

Could not create api Key
Digest method not supported

Browser Console

Here are (some) of the messages I see in my browser's console:

[Vercel Web Analytics] Debug mode is enabled by default in development. No requests will be sent to the server. script.debug.js:1:137
[Vercel Web Analytics] [pageview] http://localhost:3000/onboarding 
Object { o: "http://localhost:3000/onboarding", sv: "0.1.1", sdkn: "@vercel/analytics", sdkv: "1.0.1", ts: 1686094442277, r: "" }
script.debug.js:1:137
Cookie “__client_uat” has been rejected for invalid domain. environment
Cookie “__client_uat” has been rejected for invalid domain. client
Cookie “__client_uat” has been rejected for invalid domain. environment
Cookie “__client_uat” has been rejected for invalid domain. client
The resource at “http://localhost:3000/_next/static/media/162bf645eb375add-s.p.ttf” preloaded with link preload was not used within a few seconds. Make sure all attributes of the preload tag are set correctly. onboarding
Cookie “__client_uat” has been rejected for invalid domain. 2 tokens
TRPCClientError: Digest method not supported
    TRPCClientError transformResult-9a244fe7.mjs:23
    from transformResult-9a244fe7.mjs:4
    httpBatchLink httpBatchLink.mjs:201
Caused by: undefined
app-index.js:32:21
TRPCClientError: Digest method not supported
    TRPCClientError transformResult-9a244fe7.mjs:23
    from transformResult-9a244fe7.mjs:4
    httpBatchLink httpBatchLink.mjs:201
Caused by: undefined
app-index.js:32:21
Cookie “__client_uat” has been rejected for invalid domain. 2 tokens
GET
http://localhost:3000/_next/static/media/2aaf0723e720e8b9-s.p.woff2
[HTTP/1.1 200 OK 3ms]

Server logs

This is the output when I start my development server:

.venv ❯ pnpm turbo run dev --filter=web
• Packages in scope: @highstorm/web
• Running dev in 1 packages
• Remote caching disabled
@highstorm/web:dev: cache bypass, force executing ebe7a5a734763a48
@highstorm/web:dev: 
@highstorm/web:dev: > @highstorm/[email protected] dev /Users/bart.vanderbraak/Personal/repositories/Github/highstorm/apps/web
@highstorm/web:dev: > next dev
@highstorm/web:dev: 
@highstorm/web:dev: - ready started server on 0.0.0.0:3000, url: http://localhost:3000
@highstorm/web:dev: - info Loaded env from /Users/bart.vanderbraak/Personal/repositories/Github/highstorm/apps/web/.env
@highstorm/web:dev: - warn You have enabled experimental feature (esmExternals) in next.config.mjs.
@highstorm/web:dev: - warn Experimental features are not covered by semver, and may cause unexpected or broken application behavior. Use at your own risk.
@highstorm/web:dev: 
@highstorm/web:dev: - event compiled client and server successfully in 1305 ms (313 modules)
@highstorm/web:dev: - wait compiling...
@highstorm/web:dev: - wait compiling /middleware (client and server)...
@highstorm/web:dev: - warn Your project has `@next/font` installed as a dependency, please use the built-in `next/font` instead. The `@next/font` package will be removed in Next.js 14. You can migrate by running `pnpm dlx @next/codemod@latest built-in-next-font .`. Read more: https://nextjs.org/docs/messages/built-in-next-font
@highstorm/web:dev: - event compiled client and server successfully in 567 ms (426 modules)
@highstorm/web:dev: - wait compiling /(authenticated)/(app)/onboarding/page (client and server)...
@highstorm/web:dev: - wait compiling /api/trpc/[trpc] (client and server)...
@highstorm/web:dev: - wait compiling /(authenticated)/(app)/overview/page (client and server)...
@highstorm/web:dev: - event compiled client and server successfully in 8s (2329 modules)
@highstorm/web:dev: 
@highstorm/web:dev: - warn metadata.metadataBase is not set for resolving social open graph or twitter images, fallbacks to "http://localhost:3000". See https://nextjs.org/docs/app/api-reference/functions/generate-metadata#metadatabase

Environment variables

Here is the .env file I am using:

# https://planetscale.com/
DATABASE_URL='mysql://<redacted>:<redacted>@aws.connect.psdb.cloud/<redacted>sslaccept=strict'

# https://www.tinybird.co/
TINYBIRD_TOKEN='p.e<redacted>d8'

# https://upstash.com/qstash
QSTASH_TOKEN="eyJ<redacted>In0="
QSTASH_CURRENT_SIGNING_KEY="sig_<redacted>9B"
QSTASH_NEXT_SIGNING_KEY="sig_<redacted>Yv"

# https://upstash.com/redis
UPSTASH_REDIS_REST_URL="https://<redacted>.upstash.io"
UPSTASH_REDIS_REST_TOKEN="AZ<redacted>mM="

NEXT_PUBLIC_APP_URL="http://localhost:3000"

# https://clerk.com/
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY="pk_test_<redacted>"
CLERK_SECRET_KEY="sk_test_<redacted>"
CLERK_WEBHOOK_SECRET=""

System information

❯ neofetch            
                    'c.          <user>@<hostname> 
                 ,xNMM.          ---------------------------------- 
               .OMMMMo           OS: macOS 13.3.1 22E261 x86_64 
               OMMM0,            Host: MacBookPro16,1 
     .;loddo:' loolloddol;.      Kernel: 22.4.0 
   cKMMMMMMMMMMNWMMMMMMMMMM0:    Uptime: 7 days, 16 hours, 28 mins 
 .KMMMMMMMMMMMMMMMMMMMMMMMWd.    Packages: 296 (brew) 
 XMMMMMMMMMMMMMMMMMMMMMMMX.      Shell: zsh 5.9 
;MMMMMMMMMMMMMMMMMMMMMMMM:       Resolution: 2560x1440, 1792x1120, 2560x1440 
:MMMMMMMMMMMMMMMMMMMMMMMM:       DE: Aqua 
.MMMMMMMMMMMMMMMMMMMMMMMMX.      WM: Rectangle 
 kMMMMMMMMMMMMMMMMMMMMMMMMWd.    Terminal: vscode 
 .XMMMMMMMMMMMMMMMMMMMMMMMMMMk   CPU: Intel i9-9880H (16) @ 2.30GHz 
  .XMMMMMMMMMMMMMMMMMMMMMMMMK.   GPU: Intel UHD Graphics 630, AMD Radeon Pro 5500M 
    kMMMMMMMMMMMMMMMMMMMMMMd     Memory: 18871MiB / 32768MiB 
     ;KMMMMMMMWXXWMMMMMMMk.
       .cooc,.    .,coo:.                                                                                    

Documentation link broken

Hi, I saw this project on Twitter, and wanted to give it a spin.
Apologies if "Issues" is not the right spot.

I've signed up for an account, however, when I drop onto the overview page nothing seems like it is enabled.
I can't create an API key, or a team, it seems like all options are disabled?

I tried visiting the docs from the account button bottom-left, but it leads to a 404.
So I'm a bit lost on next steps or how to get it going.

There was an error during the signup flow after entering the verification number in the email, so I'm wondering if my account wasn't validated correctly?

Here are a couple of screenshots. The second is the docs page when I click the docs button

CleanShot 2023-04-30 at 20 08 06

CleanShot 2023-04-30 at 20 07 33

Can't get auth to work

I believe I have everything set up. Planetscale is setup and working, Tinybird is setup, Clerk is setup and working. But, I'm running into issues with auth. After authorizing with Google I get sent back to /overview which loads for a bit but then throws me a 404 page. In the code I see that happens when a tenant cannot be found in the DB, and indeed my tenant table is empty.

There are no errors.

I can see that the Clerk webhook is working.

Screenshot 2023-05-01 at 18 27 21

Screenshot 2023-05-01 at 18 27 37

Does this look good? I'm not sure after looking at this and the docs.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.