Skip to content

Commit f4d22ff

Browse files
v0.7.3: jira oauth scope fix, read-replica client, table wire data fix, db migrations from ci, docs updates, read replicas
v0.7.3: jira oauth scope fix, read-replica client, table wire data fix, db migrations from ci, docs updates, read replicas
2 parents d4722f9 + aa39974 commit f4d22ff

733 files changed

Lines changed: 19562 additions & 16086 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.agents/skills/add-block/SKILL.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ export const {ServiceName}Block: BlockConfig = {
4141
name: '{Service Name}', // Human readable
4242
description: 'Brief description', // One sentence
4343
longDescription: 'Detailed description for docs',
44-
docsLink: 'https://docs.sim.ai/tools/{service}',
44+
docsLink: 'https://docs.sim.ai/integrations/{service}',
4545
category: 'tools', // 'tools' | 'blocks' | 'triggers'
4646
integrationType: IntegrationType.X, // Primary category (see IntegrationType enum)
4747
tags: ['oauth', 'api'], // Cross-cutting tags (see IntegrationTag type)
@@ -732,7 +732,7 @@ export const ServiceBlock: BlockConfig = {
732732
name: 'Service',
733733
description: 'Integrate with Service API',
734734
longDescription: 'Full description for documentation...',
735-
docsLink: 'https://docs.sim.ai/tools/service',
735+
docsLink: 'https://docs.sim.ai/integrations/service',
736736
category: 'tools',
737737
integrationType: IntegrationType.DeveloperTools,
738738
tags: ['oauth', 'api'],

.agents/skills/add-integration/SKILL.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ export const {Service}Block: BlockConfig = {
137137
name: '{Service}',
138138
description: '...',
139139
longDescription: '...',
140-
docsLink: 'https://docs.sim.ai/tools/{service}',
140+
docsLink: 'https://docs.sim.ai/integrations/{service}',
141141
category: 'tools',
142142
bgColor: '#HEXCOLOR',
143143
icon: {Service}Icon,
@@ -425,7 +425,7 @@ Run the documentation generator:
425425
bun run scripts/generate-docs.ts
426426
```
427427

428-
This creates `apps/docs/content/docs/en/tools/{service}.mdx`
428+
This creates `apps/docs/content/docs/en/integrations/{service}.mdx` — one page per service carrying the block's Actions and, if it has one, its Triggers section. Never hand-edit generated pages; the only editable region is the `{/* MANUAL-CONTENT */}` block (see `scripts/README.md`).
429429

430430
## V2 Integration Pattern
431431

.agents/skills/validate-integration/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ For **each tool** in `tools.access`:
200200
- [ ] `name` is human-readable (e.g., `'X'`, `'Cloudflare'`)
201201
- [ ] `description` is a concise one-liner
202202
- [ ] `longDescription` provides detail for docs
203-
- [ ] `docsLink` points to `'https://docs.sim.ai/tools/{service}'`
203+
- [ ] `docsLink` points to `'https://docs.sim.ai/integrations/{service}'`
204204
- [ ] `category` is `'tools'`
205205
- [ ] `bgColor` uses the service's brand color hex
206206
- [ ] `icon` references the correct icon component from `@/components/icons`

.github/workflows/ci.yml

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,33 @@ jobs:
4646
echo "ℹ️ Not a release commit"
4747
fi
4848
49+
# Run database migrations before images are pushed: the ECR push triggers
50+
# CodePipeline, so migrating first guarantees the schema is in place before
51+
# the new app version deploys (replaces the removed ECS migration sidecar)
52+
migrate:
53+
name: Migrate DB
54+
needs: [test-build]
55+
if: >-
56+
github.event_name == 'push' &&
57+
(github.ref == 'refs/heads/main' || github.ref == 'refs/heads/staging')
58+
uses: ./.github/workflows/migrations.yml
59+
with:
60+
environment: ${{ github.ref == 'refs/heads/main' && 'production' || 'staging' }}
61+
secrets: inherit
62+
63+
# Same ordering for dev (schema push before the dev image lands in ECR)
64+
migrate-dev:
65+
name: Migrate Dev DB
66+
if: github.event_name == 'push' && github.ref == 'refs/heads/dev'
67+
uses: ./.github/workflows/migrations.yml
68+
with:
69+
environment: dev
70+
secrets: inherit
71+
4972
# Dev: build all 3 images for ECR only (no GHCR, no ARM64)
5073
build-dev:
5174
name: Build Dev ECR
52-
needs: [detect-version]
75+
needs: [detect-version, migrate-dev]
5376
if: github.event_name == 'push' && github.ref == 'refs/heads/dev'
5477
runs-on: blacksmith-8vcpu-ubuntu-2404
5578
permissions:
@@ -108,7 +131,7 @@ jobs:
108131
# Main/staging: build AMD64 images and push to ECR + GHCR
109132
build-amd64:
110133
name: Build AMD64
111-
needs: [test-build, detect-version]
134+
needs: [test-build, detect-version, migrate]
112135
if: >-
113136
github.event_name == 'push' &&
114137
(github.ref == 'refs/heads/main' || github.ref == 'refs/heads/staging')
@@ -318,14 +341,6 @@ jobs:
318341
docker manifest push "${IMAGE_BASE}:${VERSION}"
319342
fi
320343
321-
# Run database migrations for dev
322-
migrate-dev:
323-
name: Migrate Dev DB
324-
needs: [build-dev]
325-
if: github.event_name == 'push' && github.ref == 'refs/heads/dev'
326-
uses: ./.github/workflows/migrations.yml
327-
secrets: inherit
328-
329344
# Check if docs changed
330345
check-docs-changes:
331346
name: Check Docs Changes

.github/workflows/migrations.yml

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,21 @@ name: Database Migrations
22

33
on:
44
workflow_call:
5+
inputs:
6+
environment:
7+
description: Target environment (production, staging, or dev)
8+
required: true
9+
type: string
510
workflow_dispatch:
11+
inputs:
12+
environment:
13+
description: Target environment
14+
required: true
15+
type: choice
16+
options:
17+
- production
18+
- staging
19+
- dev
620

721
permissions:
822
contents: read
@@ -35,15 +49,28 @@ jobs:
3549
- name: Install dependencies
3650
run: bun install --frozen-lockfile
3751

52+
# The expression maps the explicit environment input to exactly one repo
53+
# secret, so the job never holds another environment's database URL. An
54+
# unknown environment resolves to empty and the guard below fails the job.
55+
# MIGRATION_DATABASE_URL is the optional direct (non-pooled) DSN preferred
56+
# by migrate.ts; when the secret is unset it resolves to empty and the
57+
# script falls back to DATABASE_URL.
3858
- name: Apply database schema changes
3959
working-directory: ./packages/db
4060
env:
41-
DATABASE_URL: ${{ github.ref == 'refs/heads/main' && secrets.DATABASE_URL || github.ref == 'refs/heads/dev' && secrets.DEV_DATABASE_URL || secrets.STAGING_DATABASE_URL }}
61+
DATABASE_URL: ${{ inputs.environment == 'production' && secrets.DATABASE_URL || inputs.environment == 'staging' && secrets.STAGING_DATABASE_URL || inputs.environment == 'dev' && secrets.DEV_DATABASE_URL || '' }}
62+
MIGRATION_DATABASE_URL: ${{ inputs.environment == 'production' && secrets.MIGRATION_DATABASE_URL || inputs.environment == 'staging' && secrets.STAGING_MIGRATION_DATABASE_URL || '' }}
63+
ENVIRONMENT: ${{ inputs.environment }}
4264
run: |
43-
if [ "${{ github.ref }}" = "refs/heads/dev" ]; then
44-
echo "Dev environment detected — pushing schema with drizzle-kit (db:push)"
65+
if [ -z "$DATABASE_URL" ]; then
66+
echo "ERROR: no database URL secret resolved for environment '${ENVIRONMENT}'" >&2
67+
exit 1
68+
fi
69+
70+
if [ "${ENVIRONMENT}" = "dev" ]; then
71+
echo "Dev environment — pushing schema directly (db:push)"
4572
bun run db:push --force
4673
else
4774
echo "Applying versioned migrations (db:migrate)"
4875
bun run ./scripts/migrate.ts
49-
fi
76+
fi

apps/docs/.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,5 @@ bun-debug.log*
3636
next-env.d.ts
3737

3838
# Fumadocs
39-
/.source/
39+
/.source/
40+
.plans/

apps/docs/app/[lang]/[[...slug]]/page.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@ import type { ApiPageProps } from 'fumadocs-openapi/ui'
55
import { createAPIPage } from 'fumadocs-openapi/ui'
66
import { Pre } from 'fumadocs-ui/components/codeblock'
77
import defaultMdxComponents from 'fumadocs-ui/mdx'
8-
import { DocsBody, DocsDescription, DocsPage, DocsTitle } from 'fumadocs-ui/page'
8+
import { DocsBody, DocsPage, DocsTitle } from 'fumadocs-ui/page'
99
import { notFound } from 'next/navigation'
1010
import { PageFooter } from '@/components/docs-layout/page-footer'
1111
import { PageNavigationArrows } from '@/components/docs-layout/page-navigation-arrows'
1212
import { LLMCopyButton } from '@/components/page-actions'
13+
import { PageTypeBadge } from '@/components/page-type-badge'
1314
import { StructuredData } from '@/components/structured-data'
1415
import { CodeBlock } from '@/components/ui/code-block'
1516
import { Heading } from '@/components/ui/heading'
@@ -173,7 +174,6 @@ export default async function Page(props: { params: Promise<{ slug?: string[]; l
173174
<PageNavigationArrows previous={neighbours?.previous} next={neighbours?.next} />
174175
</div>
175176
<DocsTitle className='mb-2'>{data.title}</DocsTitle>
176-
<DocsDescription>{data.description}</DocsDescription>
177177
</div>
178178
<DocsBody>
179179
<APIPage {...apiProps} />
@@ -222,8 +222,8 @@ export default async function Page(props: { params: Promise<{ slug?: string[]; l
222222
</div>
223223
<PageNavigationArrows previous={neighbours?.previous} next={neighbours?.next} />
224224
</div>
225+
{data.pageType && <PageTypeBadge type={data.pageType} className='mb-3' />}
225226
<DocsTitle className='mb-2'>{data.title}</DocsTitle>
226-
<DocsDescription>{data.description}</DocsDescription>
227227
</div>
228228
<DocsBody>
229229
<MDX

apps/docs/app/[lang]/layout.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import { i18n } from '@/lib/i18n'
1414
import { serializeJsonLd } from '@/lib/json-ld'
1515
import { source } from '@/lib/source'
1616
import { DOCS_BASE_URL } from '@/lib/urls'
17+
import { season } from '@/app/fonts/season'
1718
import '../global.css'
1819

1920
const inter = Inter({
@@ -84,7 +85,7 @@ export default async function Layout({ children, params }: LayoutProps) {
8485
return (
8586
<html
8687
lang={lang}
87-
className={`${inter.variable} ${geistMono.variable}`}
88+
className={`${inter.variable} ${geistMono.variable} ${season.variable}`}
8889
suppressHydrationWarning
8990
>
9091
<head>
87.5 KB
Binary file not shown.

apps/docs/app/fonts/season.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import localFont from 'next/font/local'
2+
3+
/**
4+
* Season Sans variable font — the platform's UI font, mirrored from
5+
* `apps/sim/app/_styles/fonts/season/season.ts` so docs chip chrome renders
6+
* with the same typeface as the main app. Variable font supports weights
7+
* 300-800.
8+
*/
9+
export const season = localFont({
10+
src: [{ path: './SeasonSansUprightsVF.woff2', weight: '300 800', style: 'normal' }],
11+
display: 'swap',
12+
preload: true,
13+
variable: '--font-season',
14+
fallback: ['system-ui', 'Segoe UI', 'Roboto', 'Helvetica Neue', 'Arial', 'Noto Sans'],
15+
adjustFontFallback: 'Arial',
16+
})

0 commit comments

Comments
 (0)