Skip to content

Add Support for Firebolt Core#152

Merged
wagjamin merged 18 commits into
firebolt-db:mainfrom
wagjamin:main
Dec 27, 2025
Merged

Add Support for Firebolt Core#152
wagjamin merged 18 commits into
firebolt-db:mainfrom
wagjamin:main

Conversation

@wagjamin
Copy link
Copy Markdown
Contributor

This PR adds support for Firebolt Core in our Node SDK. Core is often used in CI/testing pipelines. Having wider SDK support is great as it makes it easier for users to write tests using Core with their custom software.

Note that I'm not a Typescript expert. The diff is large, but most of it is tests. The change contains:

  • Changes to the SDK that allow connecting to Core
  • Updated README, and architecture sketch as a Cursor rule
  • Unit and Integration tests for the SDK changes
  • CI improvements that make sure we run these unit and integration tests

One thing I'd be very curious about, my changes to src/http/node.ts seem far too complex. This much code just to make HTTP work (HTTPs is default right now, but Core doesn't support it). Would love a detailed review/feedback here on how we can make this easier.

@wagjamin wagjamin requested a review from a team as a code owner December 14, 2025 23:24
Comment thread src/auth/index.ts
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Diff is not shown in a nice way here, all of this just got refactored and moved to managed.ts

Comment thread src/client/index.ts
* For managed Firebolt connections, this is always defined.
* For Firebolt Core connections, accessing this will throw an error.
*/
get resourceManager(): ResourceManager {
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should make sure that this isn't a breaking change in the library API. You can still call client.resourceManager in the new version, it just fails for Core.
Making the resourceManager itself optional would cause a breaking change.

Comment thread src/http/node.ts Outdated
Copy link
Copy Markdown

@goprean goprean left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Few comments, otherwise looks good to me.

Comment thread .github/actions/setup-firebolt-core/action.yml
Comment thread .github/actions/teardown-firebolt-core/action.yml
Comment thread .github/workflows/integration-tests-core.yaml Outdated
Comment thread .github/workflows/nightly.yaml Outdated
Comment thread src/connection/connection_core.ts Outdated
Comment thread test/integration/core/connection.test.ts Outdated
Comment thread test/integration/core/setStatement.test.ts Outdated
Comment thread test/integration/core/transaction.test.ts
Comment thread .env.example Outdated
Comment thread README.md Outdated
Comment thread src/index.ts Outdated
Comment thread src/core/index.ts Outdated
Copy link
Copy Markdown
Contributor

@bogdantruta-firebolt bogdantruta-firebolt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure I am ready to tackle the rest of the PR now, but I'll try later

Comment thread .env.example
Comment thread README.md Outdated
Copy link
Copy Markdown

@goprean goprean left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm!

@wagjamin wagjamin merged commit 62050fb into firebolt-db:main Dec 27, 2025
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants