Skip to content

v0.0.13

Choose a tag to compare

@msywulak msywulak released this 12 Jun 15:07

What's Changed

  • feat(plugins): ES/OpenSearch datasource — connection foundation (#3261) by @msywulak in #3291
  • ci(publish): enable @useatlas/elasticsearch CI publishing (#3272) by @msywulak in #3292
  • feat(plugins): @useatlas/elasticsearch SQL query surface (#3262) by @msywulak in #3293
  • feat(datasource): @useatlas/elasticsearch Admin → Integrations install + credential mask/restore (#3270) by @msywulak in #3296
  • feat: ES/OpenSearch — atlas init + diff mapping→entity-YAML profiler (#3268) by @msywulak in #3294
  • feat(api): wire DB-stored plugin datasources via createFromConfig seam (#3253) by @msywulak in #3297
  • feat(datasource): url-optional adapter-only plugin registration for SaaS per-workspace connections by @msywulak in #3299
  • fix(saas): gate non-saas_eligible datasources out of the SaaS marketplace + mark duckdb saas_eligible=false (#3301) by @msywulak in #3305
  • feat(plugins): generic DatasourceFormInstallHandler — ClickHouse/Snowflake/BigQuery form-installable on SaaS (#3300) by @msywulak in #3304
  • feat(plugins): ES/OpenSearch Query DSL tool (queryElasticsearch) + read-only validator (#3267) by @msywulak in #3308
  • refactor(datasource): keep Salesforce on the OAuth path; drop inert bridge registration (#3302) by @msywulak in #3306
  • feat(elasticsearch): Basic + Cloud ID + SigV4 auth modes & OpenSearch engine (#3263 #3264 #3265 #3266) by @msywulak in #3310
  • fix(plugins): enforce per-index/object semantic whitelist in ES Query DSL & SOQL tools (#3307) by @msywulak in #3312
  • fix(plugins): fail closed on semantic-layer scan failure for plugin query tools (#3313) by @msywulak in #3314
  • feat(elasticsearch): index patterns / aliases / data-streams as single entities (#3269) by @msywulak in #3316
  • fix(api): don't split dotted ES index-pattern names into bogus whitelist keys (#3317) by @msywulak in #3318
  • docs(roadmap): tidy — v0.0.13 code-complete; v0.0.14 seed #3319 by @msywulak in #3320
  • fix(plugins): exclude system backing indices in parseAliases when includeSystem is false by @msywulak in #3321
  • fix(plugins): v0.0.13 pre-closeout review hardening for ES/OpenSearch datasource by @msywulak in #3322
  • fix(plugins): wire OAuth Salesforce agent query tool (#3311) by @msywulak in #3324
  • fix(plugins): clear CodeQL ReDoS in SOQL stripStringLiterals (follow-up to #3324) by @msywulak in #3327
  • chore/fix: lint all top-level trees (#3323) + close auto-LIMIT literal bypass (#3325) by @msywulak in #3328
  • fix(api): handle Postgres dollar-quoted literals in auto-LIMIT sanitizer + scope plugin install hints by @msywulak in #3329
  • docs(roadmap): tidy — record v0.0.13 OAuth-Salesforce + auto-LIMIT/lint tail; reseed v0.0.14 by @msywulak in #3330
  • feat(cli): ES profiler supports all plugin auth modes + OpenSearch by @msywulak in #3331
  • feat(plugin-sdk): semantic-whitelist load policy module by @msywulak in #3343
  • refactor(plugins): wire ES + Salesforce dialect tools onto the SDK semantic-whitelist policy by @msywulak in #3344
  • fix(security): sidecar fail-closed auth, no default admin password in prod, auto-LIMIT comment bypass by @msywulak in #3352
  • fix(security): remediate all ten Medium findings from the June 2026 security review by @msywulak in #3353
  • chore(security): dependency vulnerability triage — lockfile refresh clears 103 of 106 advisories by @msywulak in #3354
  • chore(security): low-severity hardening backlog + chat-adapter verification audit follow-ups by @msywulak in #3355
  • refactor(integrations): shared lazy-plugin tool scaffolding + boot-time tool-shadow warning (#3326) by @msywulak in #3359
  • refactor(scheduler): one shaped result behind the three delivery renderers by @msywulak in #3360
  • feat(web): deepen admin config pages behind a useConfigForm hook by @msywulak in #3356
  • refactor(install): collapse the form-install persistence spine — and fix the three handlers it exposed as broken by @msywulak in #3358
  • fix(api): pivot Salesforce + Jira OAuth installs onto the form-install upsert spine (#3357) by @msywulak in #3362
  • feat(api): recover from upstream OpenAPI spec drift at query time (#3315) by @msywulak in #3363
  • fix(web): blur-time clamp for numeric retention inputs (#3361) by @msywulak in #3364
  • docs(roadmap): tidy — record spec-drift recovery (#3363) + retention blur-clamp (#3364) by @msywulak in #3366
  • feat(plugin-sdk): per-workspace onUninstall hook to revoke external subscriptions (#3188) by @msywulak in #3365
  • docs: record arch-win #92 (onUninstall hook) + roadmap entries for #3364/#3365 by @msywulak in #3367
  • feat(sandbox): add railway-sandbox explore backend (self-hosted opt-in) (#3231) by @msywulak in #3369
  • docs: deploy-mode parity contract (out of the #3374 drift audit) by @msywulak in #3380
  • fix(sandbox): one backend-id vocabulary for ATLAS_SANDBOX_BACKEND end to end by @msywulak in #3383
  • fix(api): warn at scheduled-task create/update when the delivery channel has no sender; surface permanent failures distinctly by @msywulak in #3385
  • fix(api): saasWritable axis — settings PUT/DELETE enforce the saasVisible boundary for SaaS workspace admins by @msywulak in #3390
  • fix(web): route Add-datasource picker plugin tiles to the marketplace form-install by @msywulak in #3384
  • fix(web): useDeployMode consumers stop committing to a guessed mode (parity Rule 2 tiers) by @msywulak in #3391
  • chore(ci): settings-registry reader-presence drift check (parity contract Rule 1) by @msywulak in #3393
  • refactor(catalog): expose formInstallable on the pillar listing — picker derives tiles from the handler registry (#3387) by @msywulak in #3394
  • fix(api): close settings write-path guard gaps — DELETE immutable bypass, fail-closed mode probe, no-org edge (#3389) by @msywulak in #3396
  • docs(api): document 422 for shared-validationHook failures where route docs claimed 400 (#3388) by @msywulak in #3397
  • fix(semantic): read ATLAS_EXPERT_* keys through getSetting so admin overrides apply (#3392) by @msywulak in #3398
  • fix(integrations): resolve ATLAS_ROW_LIMIT lazily per call in salesforce-tool (#3400) by @msywulak in #3401
  • fix(api): block no-org SaaS workspace admins from the global row of workspace-scoped settings (#3395) by @msywulak in #3403
  • fix(api): scope SaaS requiresRestart suppression to hot-reloaded keys (#3399) by @msywulak in #3404
  • fix(integrations): resolve ATLAS_QUERY_TIMEOUT lazily per call in salesforce-tool (#3402) by @msywulak in #3405
  • fix(api): thread org context into every workspace-scoped settings reader (#3406) by @msywulak in #3407
  • fix(sandbox): consume BYOC provider credentials at runtime in the explore tool (#3370) by @msywulak in #3411
  • feat(deploy): ship E2B + Daytona BYOC sandbox runtimes in the SaaS image (#3409) by @msywulak in #3412
  • feat(sandbox): BYOC selection covers the Python tool for Vercel by @msywulak in #3413
  • fix(billing): wire org-scoped Stripe subscriptions — organization mode + authorizeReference (#3416) by @msywulak in #3440
  • fix(billing): plugin-owned org Stripe customer id — portal via Better Auth, retire dead column writers (#3417) by @msywulak in #3441
  • feat(billing): self-serve checkout and plan picker — close the trial→paid dead end (#3418) by @msywulak in #3442
  • fix(billing): churned SaaS orgs land on the locked tier, never free (#3421) by @msywulak in #3443
  • feat(billing): durable Stripe webhook sync via onEvent + event ledger (#3423) by @msywulak in #3444
  • chore(api): swap MIN_PLAN_TIERS local tuple for the @useatlas/types value export by @msywulak in #3448
  • chore(ci): add obsidian-reader-v* publish train by @msywulak in #3449

Full Changelog: v0.0.12...v0.0.13