Add sibfly.com - #2737
Add sibfly.com#2737james-sib wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces the OpenAPI 3.1.0 specification for the SibFly API, which exposes endpoints for ground motion reports, geocoding, batch processing, and account management. The review feedback highlights several opportunities to strengthen the API contract, including defining explicit schemas for endpoints currently returning empty objects, ensuring type consistency for the 'brief' parameter, structuring the chat messages schema, adding email format validation, making support ticket fields required, and enforcing coordinate pair bounds on the pixel polygon coordinates.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
| '200': | ||
| description: Successful Response | ||
| content: | ||
| application/json: | ||
| schema: {} |
There was a problem hiding this comment.
Many endpoints in this specification (such as /api/v1/geocode, /api/v1/pixel, /api/v1/me, etc.) define their successful 200 response schema as an empty object (schema: {}). This indicates that the response can be any arbitrary JSON structure, which defeats the purpose of a typed OpenAPI specification. It prevents client SDK generators and LLMs from understanding the structure of the returned data.
Please define explicit schemas for these responses. For example, for /api/v1/geocode, you should define the expected lat and lon properties.
'200':
description: Successful Response
content:
application/json:
schema:
type: object
properties:
lat:
type: number
lon:
type: number
required:
- lat
- lon| - name: brief | ||
| in: query | ||
| required: false | ||
| schema: | ||
| type: integer | ||
| default: 0 | ||
| title: Brief |
There was a problem hiding this comment.
The brief parameter is defined as an integer with a default of 0 here, but in the batch endpoint /api/v1/motion/batch (line 408), it is defined as a boolean. Other flag parameters like teaser, dry_run, and compact are also defined as integers.
To ensure consistency across your API and to leverage standard boolean types in generated clients, it is highly recommended to define these flags as boolean types.
- name: brief
in: query
required: false
schema:
type: boolean
default: false
title: Brief| messages: | ||
| type: array | ||
| items: | ||
| type: object |
There was a problem hiding this comment.
The messages array is defined with items of type object without any properties. Defining a structured schema for chat messages (e.g., with role and content properties) will make the API contract much clearer and more useful for LLMs and client generators.
messages:
type: array
items:
type: object
properties:
role:
type: string
enum: [user, assistant, system]
content:
type: string
required:
- role
- content| email: | ||
| type: string |
| type: object | ||
| required: [] | ||
| properties: | ||
| subject: | ||
| type: string | ||
| message: | ||
| type: string | ||
| priority: | ||
| type: string |
There was a problem hiding this comment.
When creating a support ticket, the subject and message fields should typically be required to prevent the creation of empty tickets. Currently, required is defined as an empty array (required: []).
type: object
required:
- subject
- message
properties:
subject:
type: string
message:
type: string
priority:
type: string| pixel_polygon: | ||
| type: array | ||
| items: | ||
| type: array | ||
| items: | ||
| type: number |
There was a problem hiding this comment.
The pixel_polygon coordinate items are defined as generic arrays of numbers. Specifying minItems: 2 and maxItems: 2 on the inner array enforces that each coordinate pair contains exactly two elements (latitude and longitude).
pixel_polygon:
type: array
items:
type: array
minItems: 2
maxItems: 2
items:
type: number
Adds SibFly (https://sibfly.com) — a self-serve API returning satellite-measured ground motion (subsidence/uplift, mm/year) for any US address, from NASA OPERA Sentinel-1 InSAR.