Skip to content

Conversation

@thiagodma
Copy link

@thiagodma thiagodma commented Nov 13, 2025

Describe your changes

  • add the Vantage provider entry in packages/providers/providers.yaml with API key auth and /cost_reports verification
  • register Vantage in docs/docs.json
  • document setup, usage, and placeholders under docs/integrations/all/vantage.mdx and docs/snippets/generated/vantage/*

Issue ticket number and link

None

Test

  • npx tsx scripts/validation/providers/validate.ts
  • curl -X GET 'http://localhost:3003/proxy/workspaces' \ -H 'provider-config-key: vantage' \ -H 'connection-id: fe0fe25a-f0c6-4c28-b469-803b023bb9e6' \ -H 'Authorization: Bearer <dev-secret-key>'

Add First-Class Vantage Integration (Provider Registry, Validation & Docs)

This PR introduces official support for the Vantage cost-management platform. It adds a new “vantage” record to the provider registry with API-key authentication, a /cost_reports health-check endpoint, and conservative concurrency limits to avoid 429 responses. CI validation is extended via an updated provider-schema so the new entry is type-checked during builds.

To ensure a smooth developer and customer experience, full documentation—including a setup & usage guide, navigation updates, and autogenerated code snippets—has been added. Validation tooling and example cURL commands have also been updated so engineers can locally verify connectivity.

The change set is purely additive: no existing providers or client integrations are affected. Shipping this broadens the platform’s integration catalogue, enabling customers to ingest Vantage cost reports immediately while keeping rollout risk minimal.


This summary was automatically generated by @propel-code-bot

.map((line) => line.trim())
.join('\n');
.join('\n')
.concat(providerName === 'vantage' ? '\n' : '');
Copy link
Contributor

Choose a reason for hiding this comment

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

[BestPractice]

Inconsistent conditional formatting logic: The code adds a special case for vantage to append a newline (concat(providerName === 'vantage' ? '\n' : '')) on lines 140 and 218, but not on line 207. This creates inconsistent whitespace handling across similar output functions.

Why it matters: If the goal is to ensure proper spacing for Vantage docs, the same logic should apply to all snippet generation paths. If it's unnecessary, it should be removed.

Recommendation: Either apply the same formatting logic to all three locations or remove it entirely if it's not needed:

// Option 1: Apply everywhere
.join('\n')
.concat(providerName === 'vantage' ? '\n' : '');

// Option 2: Remove if unnecessary
.join('\n');
Context for Agents
[**BestPractice**]

**Inconsistent conditional formatting logic**: The code adds a special case for `vantage` to append a newline (`concat(providerName === 'vantage' ? '\n' : '')`) on lines 140 and 218, but not on line 207. This creates inconsistent whitespace handling across similar output functions.

**Why it matters**: If the goal is to ensure proper spacing for Vantage docs, the same logic should apply to all snippet generation paths. If it's unnecessary, it should be removed.

**Recommendation**: Either apply the same formatting logic to all three locations or remove it entirely if it's not needed:

```typescript
// Option 1: Apply everywhere
.join('\n')
.concat(providerName === 'vantage' ? '\n' : '');

// Option 2: Remove if unnecessary
.join('\n');
```

File: scripts/docs-gen-snippets.ts
Line: 218

`| - | - |`,
`| HTTP request logging | ✅ |`,
`| End-to-type type safety | ✅ |`,
`| ${providerName === 'vantage' ? 'End-to-end type safety' : 'End-to-type type safety'} | ✅ |`,
Copy link
Contributor

Choose a reason for hiding this comment

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

[BestPractice]

Typo fix hardcoded for single provider: The correction from "End-to-type" to "End-to-end type safety" is only applied when providerName === 'vantage'. This means all other providers will continue showing the typo "End-to-type type safety".

Issue: This is a global typo that affects all providers, not just Vantage. The fix should not be provider-specific.

Fix: Remove the conditional and fix the typo for all providers:

Suggested change
`| ${providerName === 'vantage' ? 'End-to-end type safety' : 'End-to-type type safety'} | ✅ |`,
`| End-to-end type safety | ✅ |`,

Committable suggestion

Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Context for Agents
[**BestPractice**]

**Typo fix hardcoded for single provider**: The correction from "End-to-type" to "End-to-end type safety" is only applied when `providerName === 'vantage'`. This means all other providers will continue showing the typo "End-to-type type safety".

**Issue**: This is a global typo that affects all providers, not just Vantage. The fix should not be provider-specific.

**Fix**: Remove the conditional and fix the typo for all providers:

```suggestion
`| End-to-end type safety | ✅ |`,
```

⚡ **Committable suggestion**

Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

File: scripts/docs-gen-snippets.ts
Line: 122

}

function emptyUseCases() {
function emptyUseCases(providerName: string) {
Copy link
Contributor

Choose a reason for hiding this comment

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

[BestPractice]

Inconsistent pluralization logic: The empty use-cases message uses "integrations" (plural) for Vantage but "integration" (singular) for all other providers. This creates documentation inconsistency without clear justification.

Why it matters: Users seeing different grammar for different providers may perceive it as an error or inconsistency in the platform.

Recommendation: Use consistent messaging:

Suggested change
function emptyUseCases(providerName: string) {
const message = 'No pre-built integrations yet (time to contribute: &lt;48h)';

Committable suggestion

Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Context for Agents
[**BestPractice**]

**Inconsistent pluralization logic**: The empty use-cases message uses "integrations" (plural) for Vantage but "integration" (singular) for all other providers. This creates documentation inconsistency without clear justification.

**Why it matters**: Users seeing different grammar for different providers may perceive it as an error or inconsistency in the platform.

**Recommendation**: Use consistent messaging:

```suggestion
const message = 'No pre-built integrations yet (time to contribute: &lt;48h)';
```

⚡ **Committable suggestion**

Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

File: scripts/docs-gen-snippets.ts
Line: 203

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.

1 participant