Skip to content

New Components - sibfly#21294

Open
james-sib wants to merge 1 commit into
PipedreamHQ:masterfrom
james-sib:add-sibfly
Open

New Components - sibfly#21294
james-sib wants to merge 1 commit into
PipedreamHQ:masterfrom
james-sib:add-sibfly

Conversation

@james-sib

@james-sib james-sib commented Jul 1, 2026

Copy link
Copy Markdown

Adds a SibFly app + two actions.

SibFly returns satellite-measured ground motion (subsidence/uplift, mm/year) for any US address, from NASA OPERA Sentinel-1 InSAR.

  • Check Ground Motion — measured velocity for an address/point ($0.40 covered; misses free; free Dry Run preview).
  • Check Coverage — free preflight (covered? data age? would_cost).

Auth = SibFly API key (sf_live_...). App slug sibfly will need managed auth stood up. Docs: https://sibfly.com/docs · OpenAPI: https://sibfly.com/openapi.json

Summary by CodeRabbit

  • New Features
    • Added SibFly support for checking coverage and ground motion from either an address or coordinates.
    • Added batch ground-motion requests for multiple locations.
    • Added balance lookup for the connected account.
    • Ground-motion results now include a clear human-readable summary with measurement, status, and cost details when available.

@vercel

vercel Bot commented Jul 1, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
pipedream-docs-redirect-do-not-edit Ignored Ignored Jul 1, 2026 1:33am

Request Review

@pipedream-component-development

Copy link
Copy Markdown
Collaborator

Thank you so much for submitting this! We've added it to our backlog to review, and our team has been notified.

@pipedream-component-development

Copy link
Copy Markdown
Collaborator

Thanks for submitting this PR! When we review PRs, we follow the Pipedream component guidelines. If you're not familiar, here's a quick checklist:

@coderabbitai

coderabbitai Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Adds a new Sibfly Pipedream component consisting of an app client (sibfly.app.mjs) with propDefinitions and API methods for ground motion, coverage, portfolio batch, and balance, plus package metadata, and two actions (check-coverage, check-ground-motion) that validate input and format human-readable summaries from the app responses.

Changes

Sibfly App and Actions

Layer / File(s) Summary
Sibfly app client and package metadata
components/sibfly/sibfly.app.mjs, components/sibfly/package.json
Defines propDefinitions for address/lat/lon/dryRun/addresses, auth headers, Axios request helper, location normalization, and API methods (checkGroundMotion, checkCoverage, checkPortfolio, getBalance); adds package metadata with a dependency on @pipedream/platform.
Check-coverage action
components/sibfly/actions/check-coverage/check-coverage.mjs
New sibfly-check-coverage action validates address or lat/lon, calls app.checkCoverage, and returns a summary with cost/data age when covered.
Check-ground-motion action
components/sibfly/actions/check-ground-motion/check-ground-motion.mjs
New sibfly-check-ground-motion action validates address or lat/lon, calls app.checkGroundMotion with dryRun, and returns a summary with velocity/assessment/cost or fallback status.

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant Action
  participant SibflyApp
  participant SibflyAPI

  User->>Action: run(address or lat/lon)
  Action->>Action: validate input
  Action->>SibflyApp: checkGroundMotion/checkCoverage(params)
  SibflyApp->>SibflyApp: _location(), _headers()
  SibflyApp->>SibflyAPI: _makeRequest(path, params)
  SibflyAPI-->>SibflyApp: response data
  SibflyApp-->>Action: response
  Action->>Action: build $summary
  Action-->>User: return response
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~15 minutes

Suggested reviewers

  • lcaresia
🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description has a summary, but it omits the required checklist items and key template details like versioning and integration status. Add the template checklist, confirm version bumps and app integration status, and note any CodeRabbit comments addressed.
Title check ❓ Inconclusive The title is related to the change, but it's too generic to describe the new SibFly app and actions clearly. Use a specific title like "Add SibFly app with ground motion and coverage actions".
✅ Passed checks (3 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@components/sibfly/actions/check-coverage/check-coverage.mjs`:
- Around line 36-38: The pre-flight validation in checkCoverageAction is
throwing a generic Error for missing address/lat/lon input, but this repo
expects user-input validation failures to use ConfigurationError from
`@pipedream/platform`. Update the validation branch in checkCoverageAction to
raise ConfigurationError instead of Error, keeping the same message and
preserving the existing address/lat/lon check.

In `@components/sibfly/actions/check-ground-motion/check-ground-motion.mjs`:
- Around line 42-44: The pre-flight validation in checkGroundMotion should use
the same ConfigurationError pattern as check-coverage.mjs instead of throwing a
generic Error. Update the address/coordinate guard in the checkGroundMotion
logic to raise ConfigurationError with the same message, and keep the validation
flow consistent with the other action’s configuration checks. Use the existing
checkGroundMotion method and any imported ConfigurationError symbol to locate
and update the exception type.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: a1e0e5dc-b258-4ab2-bc17-e20d40db4c53

📥 Commits

Reviewing files that changed from the base of the PR and between 01dccc2 and 74a9497.

📒 Files selected for processing (4)
  • components/sibfly/actions/check-coverage/check-coverage.mjs
  • components/sibfly/actions/check-ground-motion/check-ground-motion.mjs
  • components/sibfly/package.json
  • components/sibfly/sibfly.app.mjs

Comment on lines +36 to +38
if (!this.address && (!this.lat || !this.lon)) {
throw new Error("Provide an Address, or both Latitude and Longitude.");
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Use ConfigurationError for pre-flight validation instead of generic Error.

This is a pre-call user-input validation check (missing address/lat/lon), which the repo convention handles via ConfigurationError from @pipedream/platform rather than a plain Error.

♻️ Proposed fix
-import app from "../../sibfly.app.mjs";
+import { ConfigurationError } from "`@pipedream/platform`";
+import app from "../../sibfly.app.mjs";
     if (!this.address && (!this.lat || !this.lon)) {
-      throw new Error("Provide an Address, or both Latitude and Longitude.");
+      throw new ConfigurationError("Provide an Address, or both Latitude and Longitude.");
     }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
if (!this.address && (!this.lat || !this.lon)) {
throw new Error("Provide an Address, or both Latitude and Longitude.");
}
import { ConfigurationError } from "`@pipedream/platform`";
import app from "../../sibfly.app.mjs";
if (!this.address && (!this.lat || !this.lon)) {
throw new ConfigurationError("Provide an Address, or both Latitude and Longitude.");
}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@components/sibfly/actions/check-coverage/check-coverage.mjs` around lines 36
- 38, The pre-flight validation in checkCoverageAction is throwing a generic
Error for missing address/lat/lon input, but this repo expects user-input
validation failures to use ConfigurationError from `@pipedream/platform`. Update
the validation branch in checkCoverageAction to raise ConfigurationError instead
of Error, keeping the same message and preserving the existing address/lat/lon
check.

Source: Path instructions

Comment on lines +42 to +44
if (!this.address && (!this.lat || !this.lon)) {
throw new Error("Provide an Address, or both Latitude and Longitude.");
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Same ConfigurationError concern as check-coverage.mjs.

Same pre-flight validation pattern — should throw ConfigurationError instead of a generic Error.

♻️ Proposed fix
-import app from "../../sibfly.app.mjs";
+import { ConfigurationError } from "`@pipedream/platform`";
+import app from "../../sibfly.app.mjs";
     if (!this.address && (!this.lat || !this.lon)) {
-      throw new Error("Provide an Address, or both Latitude and Longitude.");
+      throw new ConfigurationError("Provide an Address, or both Latitude and Longitude.");
     }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
if (!this.address && (!this.lat || !this.lon)) {
throw new Error("Provide an Address, or both Latitude and Longitude.");
}
import { ConfigurationError } from "`@pipedream/platform`";
import app from "../../sibfly.app.mjs";
if (!this.address && (!this.lat || !this.lon)) {
throw new ConfigurationError("Provide an Address, or both Latitude and Longitude.");
}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@components/sibfly/actions/check-ground-motion/check-ground-motion.mjs` around
lines 42 - 44, The pre-flight validation in checkGroundMotion should use the
same ConfigurationError pattern as check-coverage.mjs instead of throwing a
generic Error. Update the address/coordinate guard in the checkGroundMotion
logic to raise ConfigurationError with the same message, and keep the validation
flow consistent with the other action’s configuration checks. Use the existing
checkGroundMotion method and any imported ConfigurationError symbol to locate
and update the exception type.

Source: Path instructions

@michelle0927

Copy link
Copy Markdown
Collaborator

Hello @james-sib, thank you for your contribution! If you haven't already, would you mind submitting an app request for Sibfly to https://github.com/PipedreamHQ/pipedream/issues/new?template=app---service-integration.md? Once we have a base integration in place, we can review and test this PR. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

User submitted Submitted by a user

Projects

Status: Ready for PR Review

Development

Successfully merging this pull request may close these issues.

5 participants