公开记录
软件健康报告模式 0.27.0 · 指标 2.5.0 · 2026-08-01 02:44 UTC

fivetran / terraform-provider-fivetran

Terraform Provider for Fivetran

GoApache-2.0★ 45 星标⑂ 27 复刻始于 2021年5月在 GitHub 上查看 ↗

fivetran/terraform-provider-fivetran 的健康指数为 100 分中的 88 分,处于「优秀」区间。 其得分最高的类别是Vitality(94/100),最低的是Community & Adoption(58/100)。 最近一次更新在今天。 近期的大部分工作由 2 位贡献者完成。

88
总分 / 100
优秀

软件健康指数

指标归入加权类别,统一采用 1–100 量表。总体分先取类别加权平均,再依据公开记录的分布进行校准,使各等级具有百分位含义;当公开证据触发高风险司法辖区政策时,评级会按政策调整,并设置 34(存在风险)的上限。

88
卓越93-100公开记录中的最高层级(约前 5%);基本满足所有检验标准
优秀80-92各方面均表现强劲;仅有少量不足
良好65-79健康;不足之处有限且可控
中等50-64可接受,但存在明显不足;建议进行审查
薄弱35-49多个领域存在实质性薄弱环节
存在风险20-34存在重大薄弱环节;采用时应保持审慎
危急1-19问题严重(项目被弃置、仅有单一维护者、缺乏基本工程规范)
活力社区与采用可持续性与治理工程质量安全AI 就绪度

评分画像

每条轴代表一个类别。形状比平均值更重要——健康的对象会填满整个图形,而“一峰一谷”式画像意味着某一维度的优势正掩盖另一维度的风险。

加权总体分 74 经校准后在公布的指数量表上为 88(记录校准 2026-08-02)。

所有权

Fivetran组织
405 关注者314 个公开仓库始于 2012年11月

该仓库由组织支持——共同承担、可问责的托管责任,可延续于任何单一维护者之后。

软件包生态系统

注册表软件包版本月下载量版本数最近发布
Gogithub.com/fivetran/terraform-provider-fivetranv1.9.38-14911 天前

按类别列示的指标

活力

项目是否仍有生命——是否仍在编写代码,是否仍在发布版本?

94卓越 · 占总体的 21%
评分方式
36/36推送新近度 — 最近一次推送于 0 天前
27/36提交节奏 — 52 周中有 39 周有提交
18/18提交量 — 最近一年 107 次提交
10/10OpenSSF Scorecard:Maintained — 30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
所用输入
commits_last_year107
human_commit_share1
days_since_last_push0
active_weeks_last_year39

发布纪律

98卓越
评分方式
27/27有发布版本 — 已发布 100 个发布版本
36/36发布时效 — 最近一次发布版本于 11 天前
27/27发布节奏 — 约每 12.3 天发布一次
8/10OpenSSF Scorecard:Signed-Releases — 5 out of the last 5 releases have a total of 5 signed artifacts.
所用输入
releases_count100
latest_release_tagv1.9.38
releases_from_tags
days_since_latest_release11
mean_days_between_releases12.3

社区与采用

项目是否拥有用户、下载量与关注度,并具备欢迎贡献者参与的配置?

58中等 · 占总体的 17%
评分方式
26.7/60星标 — 45 个星标
11.8/25复刻 — 27 个复刻
9.2/15关注者 — 46 位关注者
所用输入
forks27
stars45
watchers46
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history

社区健康

70良好
评分方式
22.5/22.5README
22.5/22.5许可证 — 可识别的许可证(Apache-2.0)
18/18CONTRIBUTING 指南
0/13.5行为准则
0/7.2议题模板
0/6.3PR 模板
所用输入
has_readme
has_license
readme_badges
has_contributing
has_issue_template
has_code_of_conduct
readme_badge_services
has_pull_request_template

可持续性与治理

项目能否在其成员之外延续——巴士系数、响应能力、由谁支持,以及软件包的维护状况?

79良好 · 占总体的 23%
评分方式
25.2/54巴士系数 — 2 位贡献者贡献了半数提交
13.5/22.5提交分布 — 头号贡献者编写了 40% 的提交
13.5/13.5贡献者广度 — 19 位贡献者
3/10OpenSSF Scorecard:Contributors — project has 1 contributing companies or organizations -- score normalized to 3
所用输入
bus_factor2
contributors_sampled19
top_contributor_share0.402
评分方式
39.3/42议题解决 — 94% 的议题已关闭
28.1/30PR 接受 — 已裁定的 PR 中 365/390 已合并
0/13Newcomer PR acceptance — 30 天内没有首次贡献者的 PR 得到裁决
15/15OpenSSF Scorecard:Code-Review — all changesets reviewed
所用输入
merged_prs365
open_issues13
closed_issues189
prs_merged_7d
prs_decided_7d
prs_merged_30d
prs_decided_30d
issue_closed_ratio0.936
closed_unmerged_prs25
first_time_authors_30d
first_time_prs_merged_30d
first_time_prs_decided_30d
已排除计分(无数据或不适用):newcomer_pr_acceptance。 其余权重已重新归一化。
评分方式
30/30所有权背书 — 组织持有
0/20已验证域名
18.8/25所有者影响力 — fivetran 有 405 位关注者
25/25既往记录 — 314 个公开仓库,账户约 13 年
所用输入
followers405
owner_typeOrganization
is_verified
owner_loginfivetran
public_repos314
account_age_days5,017
评分方式
25/25已发布且可解析 — go 上有 1 个软件包
35/35发布时效 — 最近一次发布于 11 天前
20/20版本历史 — 149 个已发布版本
20/20未被弃用 — 活跃,未被弃用或撤回
所用输入
packagesgithub.com/fivetran/terraform-provider-fivetran
ecosystemsgo
any_deprecated
min_days_since_publish11

工程质量

基础的工程与文档实践是否到位?

72良好 · 占总体的 19%

工程实践

66良好
评分方式
24/24CI 工作流 — 2 个工作流
24/24存在测试
0/16Linter 配置
0/9.6Pre-commit 钩子
0/6.4.editorconfig
18/20OpenSSF Scorecard:CI-Tests — 27 out of 30 merged PRs checked by a CI test -- score normalized to 9
所用输入
has_ci
has_tests
has_editorconfig
has_linter_config
has_precommit_config

文档

80优秀
评分方式
30/30README
25/25文档目录
15/15文档 / 主页站点 — https://fivetran.com
10/10仓库描述
0/10主题标签
0/10Wiki
所用输入
topics
has_wiki
homepagehttps://fivetran.com
has_readme
has_docs_dir
has_description

安全

可见的安全与供应链实践是否稳固,且不存在未解决的高风险司法辖区暴露?

61中等 · 占总体的 16%

安全态势

51中等
评分方式
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — 无数据
2.2/2.5CI-Tests — 27 out of 30 merged PRs checked by a CI test -- score normalized to 9
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
7.5/7.5Code-Review — all changesets reviewed
0.8/2.5Contributors — project has 1 contributing companies or organizations -- score normalized to 3
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5许可证 — license file detected
7.5/7.5Maintained — 30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0.5/5SAST — SAST tool is not run on all commits -- score normalized to 1
0/5Security-Policy — security policy file not detected
6/7.5Signed-Releases — 5 out of the last 5 releases have a total of 5 signed artifacts.
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 27 existing vulnerabilities detected
所用输入
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate5.1
已排除计分(无数据或不适用):branch_protection。 其余权重已重新归一化。
评分方式
35/35直接依赖不含已知公告 — 没有直接依赖携带已知公告
0/25间接依赖不含已知公告 — 在此范围内,传递依赖集合无法与开发和测试依赖区分
0/40没有长期未处理的公告 — 没有公告带有发布日期
所用输入
sourceosv
advisories44
affected_packages6
assessed_packages58
unassessed_packages0
affected_by_severitycritical 2, moderate 2, unknown 2
direct_affected_packages0
已排除计分(无数据或不适用):间接依赖不含已知公告, 没有长期未处理的公告。 其余权重已重新归一化。 已将 58 个已解析依赖与 OSV 比对。 该仓库未发布任何索引可解析的软件包,因此改为评估仓库依赖图。该图将开发与测试版本固定同交付的依赖混在一起,因此仅对声明的运行时依赖计分;传递性发现仅作为背景信息列出,不计入评分。 未对可达性进行分析。

AI 就绪度

该仓库在多大程度上具备与 AI 编码代理协同开发与维护的条件?权重刻意设小(4%):代理工具链是一项真实的维护信号,但完全不具备的仓库仍可达到 100/100。

65良好 · 占总体的 4%
评分方式
0/45代理指令 — 没有 CLAUDE.md / AGENTS.md / 编辑器规则
0/15机器可读文档(llms.txt)
40/40可读的提交历史 — 100 次人类提交中有 94 次说明了意图(结构化标题或解释性正文)
所用输入
has_llms_txt
legible_history_share0.94
agent_instruction_files
agent_instruction_max_bytes
评分方式
18/18一条命令的引导启动 — Makefile
22/22自动化测试
0/11Lint / 格式化配置
11/11静态类型检查 — Go(静态类型)
10/10可复现环境 — lockfile
10/10已体现的代理实践 — 最近 100 次提交中有 5 次由代理编写或署名代理
0/8自动化维护 — 未观察到自动依赖更新
0/10OpenSSF Scorecard:Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
所用输入
has_nix
has_tests
lockfilesgo.sum
has_dockerfile
typed_language
bootstrap_filesMakefile
has_devcontainer
has_linter_config
typecheck_configs
agent_commit_share0.05
toolchain_manifestsgo.mod
dependency_bot_commit_share0
评分方式
45/45可类型检查的代码 — Go(静态类型)
54.3/55可控的文件大小 — 采样的 314 个源文件中有 4 个超过 60KB
所用输入
primary_languageGo
largest_source_bytes143,493
source_files_sampled314
oversized_source_files4

关键数据

45GitHub 星标
19贡献者
107最近 12 个月提交数
0距最近推送天数
100发布版本数
2巴士系数(bus factor)
13开放议题
Go软件包生态系统数

数据采集警告

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token

更多细节

Star 与 Fork 历史 0 ★ / 27 ⇿
0Star
27Fork
91发布

每颗 star 和每个 fork 的添加时间,来自 GitHub 并按天汇总。累计增长位于其构成来源——每日新增——的正上方,二者可相互对照:稳定的自然增长与短暂的突增形态截然不同。当这一差别可被衡量时,它会作为增长真实性予以报告。

4812162024282642021-092023-122026-04
主版本 1次版本 8修订 81

每个点涵盖 5 天。

OpenSSF Scorecard 5.1 / 10
5.1综合

来自开源项目 OpenSSF Scorecard 的独立、工具无关的安全评估。每项检查奖励的是安全实践本身,而非特定供应商的工具。Scorecard 无法判定的检查项标记为 不适用,并从安全评分中剔除(绝不按零分计)。Scorecard v5.5.0 · 2026-08-01 02:44 UTC

10Binary-Artifactsno binaries found in the repo
不适用Branch-Protectioninternal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
9CI-Tests27 out of 30 merged PRs checked by a CI test -- score normalized to 9
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
10Code-Reviewall changesets reviewed
3Contributorsproject has 1 contributing companies or organizations -- score normalized to 3
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
1SASTSAST tool is not run on all commits -- score normalized to 1
0Security-Policysecurity policy file not detected
8Signed-Releases5 out of the last 5 releases have a total of 5 signed artifacts.
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities27 existing vulnerabilities detected
直接依赖 7
注册表软件包版本约束清单文件
Gogithub.com/fivetran/go-fivetranv1.3.7go.mod
Gogithub.com/hashicorp/terraform-plugin-frameworkv1.18.0go.mod
Gogithub.com/hashicorp/terraform-plugin-framework-timeoutsv0.7.0go.mod
Gogithub.com/hashicorp/terraform-plugin-framework-validatorsv0.19.0go.mod
Gogithub.com/hashicorp/terraform-plugin-testingv1.7.0go.mod
Gogithub.com/Jeffail/gabs/v2v2.7.0go.mod
Gogithub.com/hashicorp/terraform-plugin-gov0.30.0go.mod
全部依赖 58

来自 GitHub 依赖图的完整解析依赖集合:7 个直接依赖与 51 个间接(传递)软件包。仓库提交锁文件时,传递闭包才是完整的。

注册表软件包版本关系
Gogithub.com/fivetran/go-fivetranv1.3.7直接
Gogithub.com/hashicorp/terraform-plugin-frameworkv1.18.0直接
Gogithub.com/hashicorp/terraform-plugin-framework-timeoutsv0.7.0直接
Gogithub.com/hashicorp/terraform-plugin-framework-validatorsv0.19.0直接
Gogithub.com/hashicorp/terraform-plugin-gov0.30.0直接
Gogithub.com/hashicorp/terraform-plugin-testingv1.7.0直接
Gogithub.com/jeffail/gabs/v2v2.7.0直接
Gogithub.com/agext/levenshteinv1.2.2间接
Gogithub.com/apparentlymart/go-textseg/v15v15.0.0间接
Gogithub.com/cloudflare/circlv1.6.1间接
Gogithub.com/fatih/colorv1.18.0间接
Gogithub.com/golang/protobufv1.5.4间接
Gogithub.com/google/go-cmpv0.7.0间接
Gogithub.com/hashicorp/errwrapv1.1.0间接
Gogithub.com/hashicorp/go-checkpointv0.5.0间接
Gogithub.com/hashicorp/go-cleanhttpv0.5.2间接
Gogithub.com/hashicorp/go-ctyv1.5.0间接
Gogithub.com/hashicorp/go-hclogv1.6.3间接
Gogithub.com/hashicorp/go-multierrorv1.1.1间接
Gogithub.com/hashicorp/go-pluginv1.7.0间接
Gogithub.com/hashicorp/go-retryablehttpv0.7.8间接
Gogithub.com/hashicorp/go-uuidv1.0.3间接
Gogithub.com/hashicorp/go-versionv1.8.0间接
Gogithub.com/hashicorp/hc-installv0.9.3间接
Gogithub.com/hashicorp/hcl/v2v2.24.0间接
Gogithub.com/hashicorp/logutilsv1.0.0间接
Gogithub.com/hashicorp/terraform-execv0.25.0间接
Gogithub.com/hashicorp/terraform-jsonv0.27.2间接
Gogithub.com/hashicorp/terraform-plugin-logv0.10.0间接
Gogithub.com/hashicorp/terraform-plugin-sdk/v2v2.39.0间接
Gogithub.com/hashicorp/terraform-registry-addressv0.4.0间接
Gogithub.com/hashicorp/terraform-svchostv0.1.1间接
Gogithub.com/hashicorp/yamuxv0.1.2间接
Gogithub.com/kr/textv0.2.0间接
Gogithub.com/mattn/go-colorablev0.1.14间接
Gogithub.com/mattn/go-isattyv0.0.20间接
Gogithub.com/mitchellh/copystructurev1.2.0间接
Gogithub.com/mitchellh/go-testing-interfacev1.14.1间接
Gogithub.com/mitchellh/go-wordwrapv1.0.1间接
Gogithub.com/mitchellh/mapstructurev1.5.0间接
Gogithub.com/mitchellh/reflectwalkv1.0.2间接
Gogithub.com/oklog/runv1.1.0间接
Gogithub.com/protonmail/go-cryptov1.3.0间接
Gogithub.com/vmihailenco/msgpackv4.0.4+incompatible间接
Gogithub.com/vmihailenco/msgpack/v5v5.4.1间接
Gogithub.com/vmihailenco/tagparser/v2v2.0.0间接
Gogithub.com/zclconf/go-ctyv1.17.0间接
Gogolang.org/x/cryptov0.48.0间接
Gogolang.org/x/modv0.33.0间接
Gogolang.org/x/netv0.49.0间接
Gogolang.org/x/syncv0.19.0间接
Gogolang.org/x/sysv0.41.0间接
Gogolang.org/x/textv0.34.0间接
Gogolang.org/x/toolsv0.41.0间接
Gogoogle.golang.org/appenginev1.6.8间接
Gogoogle.golang.org/genproto/googleapis/rpcv0.0.0-20251202230838-ff82c1b0f217间接
Gogoogle.golang.org/grpcv1.79.1间接
Gogoogle.golang.org/protobufv1.36.11间接
依赖安全公告 6

该仓库未发布可被索引解析的包,因此评估的是其自身的依赖图——共 58 个包,其中也包含从不交付的开发与测试版本固定:6 个存在已知公告,0 个为直接依赖。

软件包版本关系严重程度公告数修复版本
golang.org/x/cryptov0.48.0间接严重270.52.0
google.golang.org/grpcv1.79.1间接严重41.82.1
github.com/cloudflare/circlv1.6.1间接21.6.3
golang.org/x/netv0.49.0间接91.26.3
golang.org/x/sysv0.41.0间接未知10.44.0
golang.org/x/textv0.34.0间接未知10.39.0

公告表示依赖图中记录的版本落入某条公告的受影响范围。可达性未经分析,且依赖图包含开发与测试的版本固定——某项发现可能只涉及工具链而非交付的软件。

原始 JSON 报告 机器可读
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": false,
      "size_kb": 5928,
      "has_wiki": false,
      "homepage": "https://fivetran.com",
      "languages": {
        "Go": 2065083,
        "HCL": 3116,
        "Makefile": 1685,
        "Go Template": 97702
      },
      "pushed_at": "2026-07-31T10:38:04Z",
      "created_at": "2021-05-10T10:23:23Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-30T08:44:53Z",
      "description": "Terraform Provider for Fivetran",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "Apache-2.0",
      "default_branch": "main",
      "license_spdx_raw": "Apache-2.0",
      "primary_language": "Go",
      "significant_languages": [
        "Go"
      ]
    },
    "owner": {
      "blog": "https://fivetran.com",
      "name": "Fivetran",
      "type": "Organization",
      "login": "fivetran",
      "company": null,
      "location": null,
      "followers": 405,
      "avatar_url": "https://avatars.githubusercontent.com/u/2722259?v=4",
      "created_at": "2012-11-04T21:27:00Z",
      "is_verified": null,
      "public_repos": 314,
      "account_age_days": 5017
    },
    "license": {
      "state": "standard",
      "spdx_id": "Apache-2.0",
      "raw_spdx": "Apache-2.0",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v1.9.38",
          "kind": "patch",
          "published_at": "2026-07-20T16:01:56Z"
        },
        {
          "tag": "v1.9.37",
          "kind": "patch",
          "published_at": "2026-07-02T09:00:57Z"
        },
        {
          "tag": "v1.9.36",
          "kind": "patch",
          "published_at": "2026-06-30T09:19:08Z"
        },
        {
          "tag": "v1.9.35",
          "kind": "patch",
          "published_at": "2026-06-26T13:33:13Z"
        },
        {
          "tag": "v1.9.34",
          "kind": "patch",
          "published_at": "2026-06-16T09:12:40Z"
        },
        {
          "tag": "v1.9.33",
          "kind": "patch",
          "published_at": "2026-06-11T09:56:56Z"
        },
        {
          "tag": "v1.9.32",
          "kind": "patch",
          "published_at": "2026-06-03T14:47:00Z"
        },
        {
          "tag": "v1.9.31",
          "kind": "patch",
          "published_at": "2026-05-28T15:47:21Z"
        },
        {
          "tag": "v1.9.30",
          "kind": "patch",
          "published_at": "2026-04-23T13:44:50Z"
        },
        {
          "tag": "v1.9.29",
          "kind": "patch",
          "published_at": "2026-03-31T13:05:56Z"
        },
        {
          "tag": "v1.9.28",
          "kind": "patch",
          "published_at": "2026-03-27T13:30:18Z"
        },
        {
          "tag": "v1.9.27",
          "kind": "patch",
          "published_at": "2026-03-26T12:54:17Z"
        },
        {
          "tag": "v1.9.26",
          "kind": "patch",
          "published_at": "2026-03-20T17:07:56Z"
        },
        {
          "tag": "v1.9.25",
          "kind": "patch",
          "published_at": "2026-02-24T14:15:33Z"
        },
        {
          "tag": "v1.9.24",
          "kind": "patch",
          "published_at": "2026-02-19T12:02:50Z"
        },
        {
          "tag": "v1.9.23",
          "kind": "patch",
          "published_at": "2026-02-12T13:04:26Z"
        },
        {
          "tag": "v1.9.22",
          "kind": "patch",
          "published_at": "2026-01-29T15:17:04Z"
        },
        {
          "tag": "v1.9.21",
          "kind": "patch",
          "published_at": "2026-01-23T12:57:47Z"
        },
        {
          "tag": "v1.9.20",
          "kind": "patch",
          "published_at": "2026-01-14T14:26:12Z"
        },
        {
          "tag": "v1.9.19",
          "kind": "patch",
          "published_at": "2025-12-31T10:03:18Z"
        },
        {
          "tag": "v1.9.18",
          "kind": "patch",
          "published_at": "2025-12-19T11:30:52Z"
        },
        {
          "tag": "v1.9.17",
          "kind": "patch",
          "published_at": "2025-12-03T12:37:24Z"
        },
        {
          "tag": "v1.9.16",
          "kind": "patch",
          "published_at": "2025-12-01T11:52:38Z"
        },
        {
          "tag": "v1.9.15",
          "kind": "patch",
          "published_at": "2025-11-20T08:29:36Z"
        },
        {
          "tag": "v1.9.14",
          "kind": "patch",
          "published_at": "2025-11-12T12:19:55Z"
        },
        {
          "tag": "v1.9.13",
          "kind": "patch",
          "published_at": "2025-11-04T09:22:04Z"
        },
        {
          "tag": "v1.9.12",
          "kind": "patch",
          "published_at": "2025-10-29T15:30:28Z"
        },
        {
          "tag": "v1.9.11",
          "kind": "patch",
          "published_at": "2025-10-20T15:19:19Z"
        },
        {
          "tag": "v1.9.10",
          "kind": "patch",
          "published_at": "2025-10-14T11:03:02Z"
        },
        {
          "tag": "v1.9.9",
          "kind": "patch",
          "published_at": "2025-10-01T12:31:37Z"
        },
        {
          "tag": "v1.9.8",
          "kind": "patch",
          "published_at": "2025-09-30T13:35:40Z"
        },
        {
          "tag": "v1.9.7",
          "kind": "patch",
          "published_at": "2025-09-25T08:39:02Z"
        },
        {
          "tag": "v1.9.6",
          "kind": "patch",
          "published_at": "2025-09-11T14:35:30Z"
        },
        {
          "tag": "v1.9.5",
          "kind": "patch",
          "published_at": "2025-08-26T12:39:47Z"
        },
        {
          "tag": "v1.9.4",
          "kind": "patch",
          "published_at": "2025-08-18T10:38:44Z"
        },
        {
          "tag": "v1.9.3",
          "kind": "patch",
          "published_at": "2025-08-13T14:03:39Z"
        },
        {
          "tag": "v1.9.2",
          "kind": "patch",
          "published_at": "2025-07-23T09:59:09Z"
        },
        {
          "tag": "v1.9.1",
          "kind": "patch",
          "published_at": "2025-07-15T08:02:09Z"
        },
        {
          "tag": "v1.9.0",
          "kind": "minor",
          "published_at": "2025-07-14T12:02:43Z"
        },
        {
          "tag": "v1.8.1",
          "kind": "patch",
          "published_at": "2025-05-28T10:57:09Z"
        },
        {
          "tag": "v1.7.0",
          "kind": "minor",
          "published_at": "2025-05-20T17:38:23Z"
        },
        {
          "tag": "v1.6.5",
          "kind": "patch",
          "published_at": "2025-05-13T15:48:25Z"
        },
        {
          "tag": "v1.6.4",
          "kind": "patch",
          "published_at": "2025-04-29T15:50:44Z"
        },
        {
          "tag": "v1.6.3",
          "kind": "patch",
          "published_at": "2025-04-23T13:41:08Z"
        },
        {
          "tag": "v1.6.2",
          "kind": "patch",
          "published_at": "2025-04-17T11:28:58Z"
        },
        {
          "tag": "v1.6.1",
          "kind": "patch",
          "published_at": "2025-03-31T14:43:47Z"
        },
        {
          "tag": "v1.6.0",
          "kind": "minor",
          "published_at": "2025-03-25T15:04:06Z"
        },
        {
          "tag": "v1.5.1",
          "kind": "patch",
          "published_at": "2025-02-12T14:02:55Z"
        },
        {
          "tag": "v1.5.0",
          "kind": "minor",
          "published_at": "2025-01-29T14:29:13Z"
        },
        {
          "tag": "v1.4.2",
          "kind": "patch",
          "published_at": "2024-12-16T10:26:23Z"
        },
        {
          "tag": "v1.4.1",
          "kind": "patch",
          "published_at": "2024-11-19T20:03:57Z"
        },
        {
          "tag": "v1.4.0",
          "kind": "minor",
          "published_at": "2024-11-12T12:17:30Z"
        },
        {
          "tag": "v1.3.3",
          "kind": "patch",
          "published_at": "2024-11-01T14:04:20Z"
        },
        {
          "tag": "v1.3.2",
          "kind": "patch",
          "published_at": "2024-09-24T11:28:35Z"
        },
        {
          "tag": "v1.3.1",
          "kind": "patch",
          "published_at": "2024-09-10T11:54:33Z"
        },
        {
          "tag": "v1.3.0",
          "kind": "minor",
          "published_at": "2024-09-09T09:40:07Z"
        },
        {
          "tag": "v1.2.10",
          "kind": "patch",
          "published_at": "2024-09-07T21:26:26Z"
        },
        {
          "tag": "v1.2.9",
          "kind": "patch",
          "published_at": "2024-09-05T09:21:01Z"
        },
        {
          "tag": "v1.2.8",
          "kind": "patch",
          "published_at": "2024-08-27T10:39:44Z"
        },
        {
          "tag": "v1.2.7",
          "kind": "patch",
          "published_at": "2024-08-19T09:16:24Z"
        },
        {
          "tag": "v1.2.6",
          "kind": "patch",
          "published_at": "2024-07-30T18:04:42Z"
        },
        {
          "tag": "v1.2.5",
          "kind": "patch",
          "published_at": "2024-07-26T16:24:25Z"
        },
        {
          "tag": "v1.2.4",
          "kind": "patch",
          "published_at": "2024-07-16T08:59:37Z"
        },
        {
          "tag": "v1.2.3",
          "kind": "patch",
          "published_at": "2024-07-09T16:01:02Z"
        },
        {
          "tag": "v1.2.2",
          "kind": "patch",
          "published_at": "2024-07-03T13:14:51Z"
        },
        {
          "tag": "v1.2.1",
          "kind": "patch",
          "published_at": "2024-07-03T08:35:55Z"
        },
        {
          "tag": "v1.2.0",
          "kind": "minor",
          "published_at": "2024-06-26T14:27:54Z"
        },
        {
          "tag": "v1.1.26",
          "kind": "patch",
          "published_at": "2024-06-12T18:15:22Z"
        },
        {
          "tag": "v1.1.25",
          "kind": "patch",
          "published_at": "2024-06-12T10:47:13Z"
        },
        {
          "tag": "v1.1.24",
          "kind": "patch",
          "published_at": "2024-05-22T14:36:23Z"
        },
        {
          "tag": "v1.1.23",
          "kind": "patch",
          "published_at": "2024-05-13T14:12:41Z"
        },
        {
          "tag": "v1.1.22",
          "kind": "patch",
          "published_at": "2024-04-18T16:15:25Z"
        },
        {
          "tag": "v1.1.21",
          "kind": "patch",
          "published_at": "2024-04-10T14:19:30Z"
        },
        {
          "tag": "v1.1.20",
          "kind": "patch",
          "published_at": "2024-04-03T14:36:45Z"
        },
        {
          "tag": "v1.1.19",
          "kind": "patch",
          "published_at": "2024-04-01T09:19:36Z"
        },
        {
          "tag": "v1.1.18",
          "kind": "patch",
          "published_at": "2024-03-29T15:41:09Z"
        },
        {
          "tag": "v1.1.17",
          "kind": "patch",
          "published_at": "2024-03-14T15:33:33Z"
        },
        {
          "tag": "v1.1.16",
          "kind": "patch",
          "published_at": "2024-03-13T14:53:26Z"
        },
        {
          "tag": "v1.1.15",
          "kind": "patch",
          "published_at": "2024-03-10T19:42:00Z"
        },
        {
          "tag": "v1.1.14",
          "kind": "patch",
          "published_at": "2024-03-08T16:49:03Z"
        },
        {
          "tag": "v1.1.13",
          "kind": "patch",
          "published_at": "2024-02-09T10:16:23Z"
        },
        {
          "tag": "v1.1.12",
          "kind": "patch",
          "published_at": "2024-02-07T12:43:50Z"
        },
        {
          "tag": "v1.1.11",
          "kind": "patch",
          "published_at": "2024-01-22T14:14:53Z"
        },
        {
          "tag": "v1.1.10",
          "kind": "patch",
          "published_at": "2024-01-17T16:30:58Z"
        },
        {
          "tag": "v1.1.9",
          "kind": "patch",
          "published_at": "2024-01-16T16:25:19Z"
        },
        {
          "tag": "v1.1.8",
          "kind": "patch",
          "published_at": "2024-01-16T11:13:20Z"
        },
        {
          "tag": "v1.1.7",
          "kind": "patch",
          "published_at": "2024-01-12T13:58:39Z"
        },
        {
          "tag": "v1.1.6",
          "kind": "patch",
          "published_at": "2024-01-10T14:48:35Z"
        },
        {
          "tag": "v1.1.5",
          "kind": "patch",
          "published_at": "2023-11-24T11:34:32Z"
        },
        {
          "tag": "v1.1.4",
          "kind": "patch",
          "published_at": "2023-11-22T13:05:49Z"
        },
        {
          "tag": "v1.1.3",
          "kind": "patch",
          "published_at": "2023-11-15T16:35:30Z"
        },
        {
          "tag": "v1.1.2",
          "kind": "patch",
          "published_at": "2023-11-15T09:59:43Z"
        },
        {
          "tag": "v1.1.1",
          "kind": "patch",
          "published_at": "2023-10-06T08:40:36Z"
        },
        {
          "tag": "v1.1.0",
          "kind": "minor",
          "published_at": "2023-09-20T14:58:47Z"
        },
        {
          "tag": "v1.0.2",
          "kind": "patch",
          "published_at": "2023-09-08T16:56:49Z"
        },
        {
          "tag": "v1.0.1",
          "kind": "patch",
          "published_at": "2023-09-06T12:47:19Z"
        },
        {
          "tag": "v1.0.0",
          "kind": "major",
          "published_at": "2023-08-16T11:44:03Z"
        },
        {
          "tag": "v1.0.0-pre",
          "kind": "prerelease",
          "published_at": "2023-08-09T14:42:36Z"
        },
        {
          "tag": "v0.7.3",
          "kind": "patch",
          "published_at": "2023-07-28T12:47:20Z"
        },
        {
          "tag": "v0.7.2",
          "kind": "patch",
          "published_at": "2023-07-25T15:39:52Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "235d109757410982f32be7616fddf537b62bc48e",
          "body": "…#601)\n\n* Fix connection_v2 nil-client error in ValidateConfig and ModifyPlan\n\nSkip both hooks early when the provider client is nil (Terraform calls\nthese before Configure runs). ValidateConfig and ModifyPlan share the\nsame guard so neither fires with an unconfigured client.\n\n* Fix connection_v2 ni\n[…]\nly, the post-Configure\ncall validates for real) from genuine metadata fetch failures (still\na hard error). Update the test that encoded the old error-always\nassumption to expect the new skip behavior.",
          "is_bot": false,
          "headline": "Fix connection_v2 nil-client error in ValidateConfig and ModifyPlan (…",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2026-07-30T08:44:47Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "16e2d05c94f76a4eacbee7603f80194c09185110",
          "body": "* Fix connection_v2 nil guard, schema Optional+Computed, config projection, bump go-fivetran to v1.3.7\n\n- ValidateConfig/ModifyPlan: add || r.GetClient() == nil early-return guard to prevent\n  panic when provider client is not yet configured at plan time\n- Schema: change run_setup_tests, trust_certi\n[…]\nateConfig early return;\n  connectorMetadata already handles nil client gracefully (uses cache if\n  populated, returns clear error otherwise), so the guard was blocking\n  cache-only validation in tests",
          "is_bot": false,
          "headline": "Fix/connection v2 bool fields and projection (#599)",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2026-07-27T15:24:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "944071116a18e930e0c4d1c510eb55e0e263f694",
          "body": "…mapping_method on import (#600)\n\nshare_point inherits file_mapping_method from FileOAuthCredentials with a default\nof DEFINE_PER_TABLE. The field is annotated @HiddenField in the backend so it\ndoesn't appear in the OAS spec, but the API always returns it. Import verify\nfails because the test config doesn't set it.",
          "is_bot": false,
          "headline": "Fix TestResourceConnectorImportingWithTableGroupNameE2E: ignore file_…",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2026-07-27T13:12:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c14c1e8aa6f031aea9df4fcb6c817e89b9f81e5d",
          "body": "* Update with latest OpenAPI schema\n\n* Fixed test, after azure_monitor_log log service started to require real workspace id",
          "is_bot": false,
          "headline": "Update with latest OpenAPI schema (#598)",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-07-20T16:00:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0298dc4dc1e290570ed6fa74fc76f4fcd055a537",
          "body": null,
          "is_bot": false,
          "headline": "Add resource user agent attribution (#597)",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2026-07-16T08:46:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f3f2c39e5d475cba1da261f7439868ea936adf6e",
          "body": "* Add connection v2 pause state implementation\n\n* Update connection v2 pause state changelog entry",
          "is_bot": false,
          "headline": "Add connection v2 pause state implementation (#595)",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2026-07-08T11:20:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dfd0aaca5a394d16b662304cdb052b6ae4d3b032",
          "body": null,
          "is_bot": false,
          "headline": "Add connection v2 plan replacement validation (#594)",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2026-07-07T09:27:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4d1b48e78b7cf0b81b2d2d5d18f80ca5463e614a",
          "body": "…t empty array in upstream.  (#593)\n\n* Reproduce an issue when fivetran_connector.config contained a field of type of array of sensitive strings, but then it became empty array\n\n* a fix\n\n* Bump patch version to 1.9.37\n\n* Fix test\n\n* do not fail if a field (of a type of sensitive strings array) is null,  upstream returned non-empty array (of masked values)",
          "is_bot": false,
          "headline": "`fivetran_connector` config field of strings array is null locally bu…",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-07-02T09:00:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6cf6367a337cc10804a66efa7527901493be7812",
          "body": "* Add connection v2 plan-time validation\n\n* Address connection v2 validation review comments\n\n* Dedupe slot-prop lookup: export core.SlotProp and reuse in validation\n\n* Address connection v2 validation review feedback\n\n* Handle invalid connector metadata cache entries\n\n* Expand connection v2 validat\n[…]\ntest coverage\n\n* Handle null validation and nil metadata cache\n\n* Preserve unknown dynamic values during validation\n\n* Address validation review feedback\n\n* Address connection v2 validation edge cases",
          "is_bot": false,
          "headline": "Add connection v2 plan-time validation (#590)",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2026-07-01T10:57:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4a7e50e046a72568dc043c6c4c2eec4f847b466f",
          "body": null,
          "is_bot": false,
          "headline": "Update with latest OpenAPI schema (#592)",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-06-30T09:18:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "26568deb98e05c88c158d7e8c35305d04f928a5c",
          "body": "…er apply' error (#591)\n\n* Reproducing issue #589. fivetran_connector_schema_config produces 'Provider produced inconsistent result after apply' error, when nested table inside disabled schema is having enabled:true\n\n* In fivetran_connector_schema_config, when schema_change_handling is not ALLOW_ALL, and API returns schema{enabled: false, tables: {t: {enabled: true}}}, consider table disabled, as enclosing schema is disabled\n\n* Bump patch version. Changelog updated\n\n* More correct fix",
          "is_bot": false,
          "headline": "`fivetran_connector_schema_config` - fix for 'inconsistent result aft…",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-06-30T07:55:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3f49182bceac7b3308fa5799f158829776380bd3",
          "body": "…re changed, but state attributes are not (#588)\n\n* fivetran_connection_config: do not fail when plan-only attributes are changed\n\n* fixed e2e test, as it used sunset fields",
          "is_bot": false,
          "headline": "`fivetran_connection_config`: do not fail when plan-only attributes a…",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-06-26T13:32:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bea00354e3f957e55a88d2d680469c80553bfbb8",
          "body": "* Add connection v2 resource skeleton\n\n* Remove paused from connection v2 skeleton\n\n* Implement connection v2 CRUD\n\n* Make connection v2 auth non-computed",
          "is_bot": false,
          "headline": "Connection v2 resource skeleton and CRUD (#587)",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2026-06-22T09:31:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d12fbfb04485f9a92ead5c3b6030e0127c5186e5",
          "body": "* Add connector metadata field status support\n\n* Add metadata field status e2e coverage\n\n* Relax metadata field status e2e assertion\n\n* Allow warning metadata field statuses\n\n* Simplify metadata field status helpers\n\n* Neutralize field status changelog wording",
          "is_bot": false,
          "headline": "Add connector metadata field status support (#586)",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2026-06-18T17:21:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9f463a7c7de4fa2ca703061ee23916d35d04a890",
          "body": "* Update with latest OpenAPI schema\n\n* Update with latest OpenAPI schema\n\n* Removed unsupported auth fields from unti test",
          "is_bot": false,
          "headline": "Update with latest OpenAPI schema (#585)",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-06-16T09:11:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b4441ecbbf437e72b6785a58cf8a3d3cf3b1961b",
          "body": "* Make destination region optional\n\n* Respect explicit empty destination region",
          "is_bot": false,
          "headline": "Make destination region optional (#584)",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2026-06-12T11:09:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "da2aa97863f49a60199764fc80632976abb0a6d6",
          "body": null,
          "is_bot": false,
          "headline": "Update with latest OpenAPI schema (#582)",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-06-11T09:54:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a27aa8f4afa4ab37c28610aa857a2474fbebddc9",
          "body": "…ic, just show an error (#581)",
          "is_bot": false,
          "headline": "When importing a fivetran_connector with unknown service - do not pan…",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-06-10T16:08:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3af31d4bed70cb2fa047c995ff803e4d44787231",
          "body": "* Fix panic in fivetran_connector_schema_config\n\n* -",
          "is_bot": false,
          "headline": "Fix panic in `fivetran_connector_schema_config` (#580)",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-06-10T10:58:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4fe82d010bc9c8143d76998df1854a206bf9cd8b",
          "body": "…577)",
          "is_bot": false,
          "headline": "FIxed documentation for fivetran_connector_schedule.sync_frequency (#…",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-06-09T12:22:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "df15ebec20112b786b80429a3576763cb4f418be",
          "body": "* Add metadata cache and provider resource data wrapper\n\n- Add ProviderResourceData struct in fivetran/framework/core/ with Client and MetadataCache fields\n- Add metadataCache *sync.Map field on fivetranProvider, initialised in FivetranProvider() and FivetranProviderMock()\n- Update provider Configur\n[…]\ne, nullable, normal, nil metadata) and race-safe\n\n* Update CHANGELOG for provider foundation utilities\n\n- Document metadata cache, config projection layer, and go-fivetran v1.3.4 bump under Unreleased",
          "is_bot": false,
          "headline": "Rd/rd 1207458 provider foundation utilities (#576)",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2026-06-09T10:58:51Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "17970ff97f4bfc018a01299996e369e015c8661a",
          "body": "…t, let's reflect this in documentation (#575)\n\n* fivetran_connector_schedule.schedule is in private preview at the moment\n\n* Fixed description\n\n* Fixed description",
          "is_bot": false,
          "headline": "`fivetran_connector_schedule.schedule` is in alpha state at the momen…",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-06-09T08:26:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1a8ccce6af0cab60ce5e7333aa5b88ca46ece0de",
          "body": null,
          "is_bot": false,
          "headline": "Prepare v1.9.32 release (#572)",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2026-06-03T14:45:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d2fb0448daa803c4d8462897c58207ae93e34c0e",
          "body": null,
          "is_bot": false,
          "headline": "fix(connection.schedule): fix issue with empty patch request (#570)",
          "author_name": "Fivetran-RomanKolesnikov",
          "author_login": "Fivetran-RomanKolesnikov",
          "committed_at": "2026-06-02T12:22:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f279d11be23dfc1a7da78aa7931f834b1dcfd6c6",
          "body": null,
          "is_bot": false,
          "headline": "fix(connections): fix for schedule update (#569)",
          "author_name": "Fivetran-RomanKolesnikov",
          "author_login": "Fivetran-RomanKolesnikov",
          "committed_at": "2026-06-02T09:26:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7057ff94a4e20372334103d395a081cb57476da0",
          "body": "…s object was empty, but now null failure (#562)\n\n* Attempt to reproduce GH issue\n\n* fivetran_connector_schema_config - fixed Schema table columns object was empty, but now null\n\n* Updated changelog\n\n* Fixed regression where schemas.{}.tables.{}.columns can be null. Fixed tests",
          "is_bot": false,
          "headline": "`fivetran_connector_schema_config` resource - fix schema table column…",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-05-28T14:25:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5926fb1cc27532ee9effc0c596e78b82bdb4c721",
          "body": "…nation resource  (#563)\n\n* reproducing a test where destination resource is having null networking_method (due to importing for example)\n\n* Allow for networking_method null for destination resource, as existing destination can be imported and some of existing destinations have null here\n\n* Updated changelog",
          "is_bot": false,
          "headline": "Do not fail if upstream returns null in `networking_method` for desti…",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-05-28T14:24:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d7d5a4a680099c03206b4aaf1dbc3bbde8e2b655",
          "body": "…neration_counter` in Terraform Config (#564)\n\n* 'fivetran_proxy_agent': fix regeneration of secrets by updating 'regeneration_counter' in Terraform Config\n\n* Extra test step",
          "is_bot": false,
          "headline": "`fivetran_proxy_agent`: fix regeneration of secrets by updating `rege…",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-05-28T14:23:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "71704e1ce7c245db85f86e05883e30fefbbcaf70",
          "body": "…atory, and 'schedule.days_of_week' is not mandatory (#565)",
          "is_bot": false,
          "headline": "'fivetran_connector_schedule': fix 'schedule'. 'schedule' is not mand…",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-05-28T14:22:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "49397b18b4a5898e263e34b6086d981b455d422b",
          "body": null,
          "is_bot": false,
          "headline": "Update with latest OpenAPI schema (#561)",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-05-26T10:14:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "30c5f1edb821b295a5dee50a9097da2f17da302f",
          "body": "…ies (#560)\n\n* Better attribution for 'fivetran_proxy_agent' resource properties\n\n* Fixed changelog message\n\n* Better attribution for 'fivetran_hybrid_deployment_agent' resource properties",
          "is_bot": false,
          "headline": "Better attribution for proxy-agent and hybrid-agent resources propert…",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-05-26T09:46:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f16fde4293dc6734efda7b674d6b7552b74867cf",
          "body": "* RD-1188225: Add Registry docs template for fivetran_connector_sdk_package\n\n- templates/resources/connector_sdk_package.md.tmpl\n- Example Usage shows package + connector wiring with service = \"connector_sdk\"\n- SchemaMarkdown placeholder for auto-generated field docs\n- Import section documents the p\n[…]\nndocs from templates/resources/connector_sdk_package.md.tmpl\n- Schema section auto-populated from the Go schema\n- Addresses review feedback that generated MD should be committed alongside the template",
          "is_bot": false,
          "headline": "Add Registry docs template for fivetran_connector_sdk_pac… (#555)",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2026-04-23T13:26:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ce59546e15ac2d1df9a5268a7540f9a54f8b4dcd",
          "body": "…= connector_sdk (#554)\n\n- TestResourceConnectorSdkServiceE2E: create package + SDK connector, verify package_id/python_version/secrets_list wiring, destroy in correct order (connector before package before group)\n- TestResourceConnectorSdkServiceSecretsListValueChangeE2E: value-only change to an ex\n[…]\n add a second key, then drop the first, asserting cardinality and key name changes\n- Adds checkDestroyConnectorAndPackage helper that runs both per-resource destroy checks plus a group existence check",
          "is_bot": false,
          "headline": "RD-1188220: Add acceptance tests for fivetran_connector with service …",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2026-04-22T11:18:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "78a69472df53b09abdf584fe17924e1f77508847",
          "body": "* Unit test\n\n* Fix importing of `fivetran_connector_schema_config` resource\n\n* Changelog updated\n\n* Code review fix",
          "is_bot": false,
          "headline": "Fix importing of `fivetran_connector_schema_config` resource (#553)",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-04-22T09:42:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "362c4c29e7f2e12df683d0d702458f01e2799232",
          "body": "* RD-1188219: Add acceptance tests for fivetran_connector_sdk_package\n\n- TestResourceConnectorSdkPackageE2E: create + read + destroy + verifies API-reported file_sha256_hash matches state\n- TestResourceConnectorSdkPackageUpdateE2E: file rewritten in place produces PATCH (same id, new hash)\n- TestRes\n[…]\nd the old state timestamp and apply would return a fresh one from the PATCH response, causing \"provider produced inconsistent result after apply\"\n- Surfaced by TestResourceConnectorSdkPackageUpdateE2E",
          "is_bot": false,
          "headline": "Add acceptance tests for fivetran_connector_sdk_package (#552)",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2026-04-21T16:48:00Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "86c5fb20815fdbcbdb1464a2fea31c8c63cafb68",
          "body": "… into Go struct field` error (#550)\n\n* connector resource - fix deserialisation of setup test details\n\n* test for destination resource\n\n* bump patch version",
          "is_bot": false,
          "headline": "`fivetran_connector` resource - fix for `json: cannot unmarshal array…",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-04-21T13:37:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "791f27fe7ee8112680149badec75bf5be3412898",
          "body": null,
          "is_bot": false,
          "headline": "Update with latest OpenAPI schema (#551)",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-04-21T13:19:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "982aa51282ddc4369fae8181cf830abb80187c12",
          "body": "* RD-1188214: Add fivetran_connector_sdk_package resource — full CRUD\n\n- Create connector_sdk_package resource with inline schema (no core.Schema abstractions)\n- Plan-time change detection: reads file, computes SHA-256, compares against state\n- Create: uploads zip via multipart, corruption guard on \n[…]\n tests from fivetran/tests/mock/ to fivetran/framework/resources/connector_sdk_package_test.go (per-resource convention)\n- Bump go-fivetran to v1.3.2, remove local replace directive\n- Update CHANGELOG",
          "is_bot": false,
          "headline": "Connector sdk package resource (#548)",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2026-04-21T12:41:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8c2f827bfb7896f1a0f32698c744973e765e064a",
          "body": "- Add hashicorp/setup-terraform@v3 step before Build\n- Pin terraform_version to 1.9.8, disable wrapper for raw stdio compat with terraform-plugin-testing\n- Fixes CI failures on main and all open PRs caused by expired GPG key in the framework's Terraform CLI auto-download path",
          "is_bot": false,
          "headline": "CI: Install Terraform CLI in testing workflow (#549)",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2026-04-21T11:20:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3c30e106ca63cd6b337cc5bbd68aff2b486069a4",
          "body": "- Add TestConnectorSdkFieldsExistInFieldsJson to validate package_id, python_version, and secrets_list exist for connector_sdk service\n- Verify field types, readonly flags, secrets_list.value sensitivity, and destination_schema uses name (not prefix)\n- Confirm connector_sdk is recognized as a valid service via GetFieldsForService",
          "is_bot": false,
          "headline": "RD-1188218: Verify connector_sdk fields in fields.json (#547)",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2026-04-20T09:15:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d2f5e6068b8dc71d0013bd5420b587fafa73df8b",
          "body": "* Release v1.9.29: update CHANGELOG\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n* Add Unreleased section to CHANGELOG\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Release v1.9.29: update CHANGELOG (#544)",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2026-03-31T13:01:35Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "b27639de67a3356ff0470ee74f32c81c7847edfb",
          "body": "…… (#543)\n\n* RD-1175410 RD-1175411: Add configurable_variables to fivetran_transformation resource and datasource\n\n- Add configurable_variables MapAttribute (Optional+Computed) to transformationConfigResourceSchema\n- Add configurable_variables MapAttribute (Computed) to transformationConfigDatasourc\n[…]\ntasource model\n\n- Populate configurable_variables in Transformations.ReadFromResponse\n- Add fmt import\n- Update transformations list datasource test with configurable_variables mock data and assertion",
          "is_bot": false,
          "headline": "RD-1175410 RD-1175411: Add configurable_variables to fivetran_transfo…",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2026-03-30T14:40:48Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7262dc1f70ce4c69b6ee8089a56b7c8c5fff8657",
          "body": "…ces (#542)\n\n- Add configurable_variables computed attribute to fivetran_quickstart_package datasource\n- Add configurable_variables computed attribute to fivetran_quickstart_packages datasource\n- Rename all quickstart files with _metadata suffix to reflect package metadata API\n- Bump go-fivetran to v1.3.1 (QuickstartPackageMetadataResponse, QuickstartPackagesMetadataListResponse, ConfigurableVariableDefinition)\n- Update CHANGELOG",
          "is_bot": false,
          "headline": "RD-1175408: Add configurable_variables to quickstart package datasour…",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2026-03-30T09:24:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "262b4fa0b306b50b9ccd97690b09b87355beee65",
          "body": "* Add configurable_vars to fivetran_quickstart_package datasource\n\n- Bump go-fivetran to v1.3.0 which adds ConfigurableVarDefinition and configurable_variables deserialization\n- Add configurableVarsSchema() helper and wire configurable_vars into QuickstartPackageDatasource schema\n- Add ConfigurableV\n[…]\n commit ce632deb3a488b855ac7027161b61c4c7cce3562.\n\n* Rename quickstart files with _metadata suffix to reflect package metadata API\n\n---------\n\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Add configurable_vars to fivetran_quickstart_package datasource (#537)",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2026-03-27T14:09:28Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a6e6ee075f2c555f70538feb44d3b6f23fdc8380",
          "body": "…onfig` nested fields, which are not used by any service (effectively cannot be used) (#541)",
          "is_bot": false,
          "headline": "Documentation of destination resource/data source - remove unused `.c…",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-03-27T13:18:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3e1dda8e4be47d85d8ea89b8c8f1a3ebd35cdaff",
          "body": null,
          "is_bot": false,
          "headline": "undoing whitespace changes (#540)",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-03-27T13:01:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "29ea56bd01dd483e1f7eb03da494a499673edd99",
          "body": "…o not read state from `v1/destination/{id}/test` response, because previously it had some data absent. Do `GET v1/destination/{id}` instead. (#539)\n\n* In `fivetran_destination` resource when plan only flags are changed do not read state from `v1/destination/{id}/test` response, because previously it has some data absent. Do `GET v1/destination/{id}` instead.\n\n* Code review change - avoid unnecessary /test call (if PATCH /v1/destinations/{} is taking a place)",
          "is_bot": false,
          "headline": "In `fivetran_destination` resource when plan only flags are changed d…",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-03-26T12:37:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5b58074c4b5daf63c5194bbc5371b2c93b7e7967",
          "body": "…rces to  general availability (#536)\n\n* fivetran_transformation and fivetran_transformation_project resources are now  generally available\n\n* Update CHANGELOG.md\n\nCo-authored-by: Vitaly Mosin <73104048+beevital@users.noreply.github.com>\n\n---------\n\nCo-authored-by: Vitaly Mosin <73104048+beevital@users.noreply.github.com>",
          "is_bot": false,
          "headline": "`fivetran_transformation` and `fivetran_transformation_project` resou…",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-03-19T14:16:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7ee308c991d7916d7526d7da2d4147db6f9f3c02",
          "body": null,
          "is_bot": false,
          "headline": "Update with the latest OpenAPI schema. Bump version to 1.9.26 (#535)",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-03-19T13:07:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "55ea048af9083b8eddce3a6c20f39f59675e4cbd",
          "body": "… (#534)\n\n* Better fivetran_connection fields description, which lost in previous PR\n\n* Improve description of fivetran_connector.destination_schema fields, which field is required for which service",
          "is_bot": false,
          "headline": "Improve description of `fivetran_connector.destination_schema` fields…",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-03-19T12:16:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3df834af1ff4aa7d4553bbd45d0687962b66e80d",
          "body": "…field description to mention PrivateLink, added MD template. Added MD template for  fivetran_connection_config resource (#533)",
          "is_bot": false,
          "headline": "fivetran_connection resource and data source - fix networking_method …",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-03-17T09:50:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c533d0b81b53e78a9135693ce9c1b5e30d1742bf",
          "body": null,
          "is_bot": false,
          "headline": "Fix docs template for a new action (#531)",
          "author_name": "Vitaly Mosin",
          "author_login": "beevital",
          "committed_at": "2026-02-27T15:55:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e3954d6ede11cb4c421e150694bd78ed2afc6d02",
          "body": "* Add fivetran_transformation_project_run_tests action\n\nIntroduce the first Action in the provider (requires Terraform 1.14+).\nThe action triggers setup tests for a transformation project independently\nof create/update operations, with a fail_on_tests_failure parameter to\ncontrol whether test failur\n[…]\n string concatenation\nto resolve go vet warnings.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Add fivetran_transformation_project_run_tests action (#530)",
          "author_name": "Vitaly Mosin",
          "author_login": "beevital",
          "committed_at": "2026-02-27T15:47:38Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "286b69c62a6c703331c5174445a949a8314fcff3",
          "body": null,
          "is_bot": false,
          "headline": "Updated with latest OpenAPI schema (#528)",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-02-24T14:13:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9abc06f5f8247b5412d14ecce85d9bde56b3d35b",
          "body": "…… (#527)\n\n* RD-1159307: Add flexible sync schedule support to fivetran_connector_schedule resource\n\n* RD-1159307: Add mock test for schedule block in fivetran_connector_schedule resource\n\n* RD-1159307: Fix schedule block mock test for connector_schedule resource\n\n* RD-1159307: Update go-fivetran to v1.2.8, remove local replace directive\n\n* RD-1159307: Make schedule_type optional in schedule block to not break existing configs\n\n* RD-1159307: Update CHANGELOG with flexible sync schedule support",
          "is_bot": false,
          "headline": "RD-1159307: Add flexible sync schedule support to fivetran_connector_…",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2026-02-24T12:33:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9adbd3f1cba0b1d7fe920112e96bb891ec442fb5",
          "body": "…ating schema of fivetran_connector.auth from on OpenAPI schema (#526)",
          "is_bot": false,
          "headline": "Fix generating auth-fields.json. Some parts were missing during popul…",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-02-24T10:22:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5fee75a864201fecf6d5c4c38684db05c33415aa",
          "body": "…or_schedule' with 'paused = false' to enable data syncs. Fixed doc for 'fivetran_destination' - added missed 'proxy_agent_id' field. (#525)",
          "is_bot": false,
          "headline": "Improved 'fivetran_connector' doc - added a link to 'fivetran_connect…",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-02-19T17:20:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "de77fbb4806c329c2daa2b5f55d89b59f71ec60b",
          "body": "…to be present in 'config' (e.g. connector resource with service 'pendo') (#524)",
          "is_bot": false,
          "headline": "'fivetran_connector' resource  - do not require empty nested objects …",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-02-19T12:00:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c168c3044a00abe1e75a9f2581f77f2970357e35",
          "body": "…ma.table_group_name` (#523)\n\n* Fix importing of fivetran_connector with destination_schema.table_group_name (used in these services: azure_blob_storage, box, dropbox, email, ftp, gcs, google_drive, s3, s3_compatible_storage, sftp, share_point, workday)\n\n* bump version to 1.9.24",
          "is_bot": false,
          "headline": "Fix importing of `fivetran_connector` resource with `destination_sche…",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-02-19T10:30:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a753c6236e2a427324f8fc8051a49b5a93488bc6",
          "body": "* Update with latest OpenAPI schema\n\n* Fix after rebase",
          "is_bot": false,
          "headline": "Update with latest OpenAPI schema (#521)",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-02-12T13:02:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ff97f0c0cba5a854ccdc45e4900194804d6d6511",
          "body": "…/data source (#520)\n\n* Use go-fivetran v1.2.7\n\n* fivetran_destination resource: support proxy_agent_id\n\n* Version bump. Changelog updated",
          "is_bot": false,
          "headline": "Support `fivetran_destination.proxy_agent_id` in destination resource…",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-02-12T10:37:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4a511606635824afae1b00bc0962f388966a52c7",
          "body": "* Update go-fivetran\n\n* Update external_logging resource with new fields\n\n* Switch fivetran_external_logging.config on OAS-based config\n\n* Cleanup commented lines\n\n* Revert unrelated changes\n\n* Revert unrelated changes in connection docs\n\n* Revert destination_resource_model\n\n* Disable run_setup_tests to overcome e2e tests issue",
          "is_bot": false,
          "headline": "Update external logging schema (#517)",
          "author_name": "Vitaly Mosin",
          "author_login": "beevital",
          "committed_at": "2026-02-05T10:34:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c35d2d2e18cc42245bc4c88b7abba4ae3c41ce43",
          "body": "* Updated with latest OpenAPI schema\n\n* Code review fix - roll back unnecessary changes",
          "is_bot": false,
          "headline": "Update with the latest OpenAPI schema. Bump version to 1.9.22 (#515)",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-01-29T15:11:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c919d72412d809f0f8d0e61e583e719c64382653",
          "body": "…oved unsupported by API field from `.config.reports.accounts` (#514)\n\n* resource with , removed unsupported by API field from\n\n* fixed docs",
          "is_bot": false,
          "headline": "`fivetran_connector` resource with `service= \"workday_adaptive\"`, rem…",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-01-29T12:15:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3df6b03845b0ccde00bf277a4dbf47a6b37e8928",
          "body": "* Use dedicated /setup-tests endpoint for plan-only attributes\n\n* Add /setup-tests endpoint handlers to all mock tests\n\n* Always set plan-only attributes to false in PATCH requests\n\n* Run setup tests when config changes and run_setup_tests=true\n\n* Add /setup-tests handler to testConnectorCreateUpdate\n\n* Update CHANGELOG\n\n* Remove trust_certificates and trust_fingerprints from PATCH body",
          "is_bot": false,
          "headline": "Use dedicated /setup-tests endpoint for plan-only attributes (#513)",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2026-01-23T12:52:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ab46cb94788dc8ad71d0256ab494dc7c477cdb51",
          "body": "…nside config in upper snake case, compare them with TF Config values ignoring case  (#510)\n\n* /v1/destination can return enum values inside .config in upper snake case while the same value is in Pascal case in TF Config, let's use original Pascal case value, if values are the same ignoring case\n\n* Updated changelog",
          "is_bot": false,
          "headline": "`fivetran_destination` resource - API response may have enum values i…",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-01-21T10:35:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b7e898ea5a04fa73edf7ed382ad9813f4723a622",
          "body": "* Add E2E test for plan-only attributes change scenario\n\nTest verifies that changing run_setup_tests from false to true\ntriggers an update. This test currently demonstrates the bug where\nplan-only attributes saved to state prevent Terraform from detecting changes.\n\n* Fix test to use unique group nam\n[…]\nt step to verify\nthat the connector update actually occurs via API call. Also added\nadditional assertions for service and ID.\n\nhttps://github.com/fivetran/terraform-provider-fivetran/issues/RD-1080143",
          "is_bot": false,
          "headline": "Rd 1080143 fix connector plan only attributes (#508)",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2026-01-20T14:23:59Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "520c1a82b4c21dac02db7bbc5f37773b01f9ec18",
          "body": "* Update with latest OpenAPI schema. Bump patch version to 1.9.18\n\n* Fix for object type in connection's config\n\n* Fixed TestResourceConnectorDynamicMapping test' setup. Undo unnecessary change\n\n* typo fixed\n\n* Rebasing\n\n* Fix critical issues in connection_config resource\n\n- Add missing schema field\n[…]\nints)\nare not stored in state and should be ignored during import verification\n\n* Update CHANGELOG for v1.9.21 release\n\n---------\n\nCo-authored-by: RenatShaikhutdinov <renat.shaikhutdinov@fivetran.com>",
          "is_bot": false,
          "headline": "Rd 1092290 fix connection config issues (#506)",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2026-01-20T09:59:12Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ce77b577ac0e7717153cff55a7c00414b62508b5",
          "body": "* Fix fivetran_connector resource for workday_adaptive service\n\n* Changelog updated",
          "is_bot": false,
          "headline": "Fix `fivetran_connector` resource for `workday_adaptive` service (#505)",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-01-14T14:25:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "aebddd1ff64cc3cfe994f1ad58c041e925b8b3e6",
          "body": "…estination resource, tweak reading of sensitive fields - reuse local value of a sensitive field even if API returns null for it (#485)\n\n* Connection config: tweak reading of sensitive fields, reuse local value of the sensitive field even if API returned null\n\n* Better test setup\n\n* Fixing importing of `config` of `fivetran_connector` resource\n\n* populate config during importing of fivetran_destination resource",
          "is_bot": false,
          "headline": "Connection/destination config: fix config when importing connection/d…",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-01-14T11:32:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2cbf54c64223207eb4a7959bd9e46deae46131f3",
          "body": "* fivetran_destination with service managed_data_lake fails on creation at deserialising response of POST v1/destinations/{destination-id}/test. Unit test to reproduce\n\n* Fix\n\n* patch version bump",
          "is_bot": false,
          "headline": "Fix for `fivetran_destination` with service  `managed_data_lake` (#504)",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2026-01-13T16:03:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6b7edcd90118fce2b832d2b2d8c1ac0906ba84e1",
          "body": "…_video_360\"` (#501)\n\n* Fixed fivetran_connector resource with service = \"google_display_and_video_360\"\n\n* Changelog updated, patch version bump",
          "is_bot": false,
          "headline": "Fix `fivetran_connector` resource with `service = \"google_display_and…",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2025-12-31T10:01:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2632455a36f1a314bd62d39f5f7bec542e7866c6",
          "body": "* Add connection_config resource implementation\n\n- Add ConnectionConfig resource for managing connection configuration\n- Supports config and auth fields as JSON with semantic equality\n- Full CRUD operations with API validation via setup tests\n- Validates connection exists before applying configurati\n[…]\nscenario\n\nAll tests validate integration between fivetran_connection and\nfivetran_connection_config resources. Multiple connector type testing\nis already covered by fivetran_connection resource tests.",
          "is_bot": false,
          "headline": "Connection config resource (#500)",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2025-12-30T14:11:51Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ed71c6ac56968248bf93b1721d83288e4e595bc3",
          "body": "* Add fivetran_connection resource\n\nImplement connection resource for creating connections with basic\nmetadata and networking configuration.\n\nChanges:\n- Add connection resource with full CRUD operations\n- Add connection model and schema definitions\n- Register resource in provider\n- Add E2E tests (3 \n[…]\nCo-authored-by: Renat Shaikhutdinov <renat.shaikhutdinov@fivetran.com>\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>\nCo-authored-by: Renat Shaikhutdinov <renat.shaikhutdinov@fivetran.com>",
          "is_bot": false,
          "headline": "Add fivetran_connection resource (#497)",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2025-12-19T14:17:19Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "84d05e6030af59aab17f991fb1661cc11405ed81",
          "body": "* Update with latest OpenAPI schema. Bump patch version to 1.9.18\n\n* Fix for object type in connection's config\n\n* Fixed TestResourceConnectorDynamicMapping test' setup. Undo unnecessary change\n\n* typo fixed\n\n* Rebasing",
          "is_bot": false,
          "headline": "Update with latest OpenAPI schema. Bump patch version to 1.9.18 (#499)",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2025-12-19T11:29:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cf070ede906b93ac053471c91383cfe0ce7c5644",
          "body": "* Fix is_primary_key noise with conditional state tracking\n\nApply conditional tracking pattern to is_primary_key field to eliminate noisy terraform plan output when adding tables to large schemas.\n\nRoot cause: UseStateForUnknown plan modifier (v1.9.16) doesn't work for deeply nested map attributes w\n[…]\nis_primary_key tests pass\n- New test validates adding tables without column configuration produces no plan noise\n- TestResourceSchemaPrimaryKeyLargeSchemaNoNoiseMock continues to pass\n\n* fix changelog",
          "is_bot": false,
          "headline": "Fix is_primary_key noise with conditional state tracking (#498)",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2025-12-19T10:21:11Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "62da5cda89375b89e8ffdf574b1c86f690ebba1f",
          "body": "* reload schema with mode PRESERVE, this will keep all existing settings as is, the same as if customer clicks 'reload schema' button on UI\n\n* added a test that  is called with\n\n* extra check that after , schema resource reconsiles API response schema with the Terraform Config, and calls correct PAT\n[…]\n and schema has BLOCK_ALL handling, populate columns per table (for tables which are having non-empty columns list in Teraform Config) - because API omits columns in /connections/{id}/schemas response",
          "is_bot": false,
          "headline": "`connector_schema_resource` - reload schema with mode PRESERVE (#493)",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2025-12-19T08:54:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "560c1ecccc00d3eb55664d7013474af990462da0",
          "body": "Add reusable JsonConfigValue custom type for handling arbitrary JSON\nconfigurations in Terraform resources. Enables flexible connector\nconfiguration without schema definitions for 200+ connector types.\n\nChanges:\n- Add JsonConfigValue custom value type with semantic equality\n- Add JsonConfigType for \n[…]\nprehensive unit tests (56 test cases, 100% coverage)\n- Update CHANGELOG\n\nThis infrastructure enables the connection and connection_config\nresources to accept arbitrary JSON for config and auth fields.",
          "is_bot": false,
          "headline": "Add JSON custom types infrastructure (#495)",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2025-12-16T11:24:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "017721757a06efd1f7c673c0ea7891d7a0c8d9c2",
          "body": "- Fix config_map possible values to display on separate lines\n- Change incorrect markdown syntax from -- to - for proper bullet points\n- Remove trailing spaces from \"Possible values\" heading\n- Update formatting for 11 configuration fields (connection_service_name, account_url, vpce_id, aws_account_i\n[…]\nce_name, private_dns_regions, private_connection_service_id)\n\nImproves documentation readability by ensuring each config_map field\nrenders as a separate bullet point instead of a continuous paragraph.",
          "is_bot": false,
          "headline": "RD-1047517: Fix private link resource documentation formatting (#492)",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2025-12-03T14:17:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a2b99b6c2d6f53fd483620dfa382c00802d1078f",
          "body": "… GET response (#491)\n\n* fivetran_connector_schema_config - do not panic on absent column in GET response\n\n* Extra test steps for table and schema being removed\n\n* bump patch version",
          "is_bot": false,
          "headline": "`fivetran_connector_schema_config` - do not panic on absent column in…",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2025-12-03T12:36:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "aaabf1f9f78fa1a87767ca4ba3256f009b4dab17",
          "body": null,
          "is_bot": false,
          "headline": "1.9.16 patch version. Update with current Fivetran OpenAPI schema (#488)",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2025-12-01T11:07:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "696dcf8bf3243762ef1846f36295c4e85ef43ac0",
          "body": "* Add UseStateForUnknown plan modifier to is_primary_key attribute\n\n- Added UseStateForUnknown() plan modifier to prevent noisy terraform plan output\n- Changed is_primary_key from Optional+Computed to Computed-only (read-only field)\n- Applied to both new schemas format and legacy schema format\n- Eli\n[…]\n\n\n- Bumped provider version from 1.9.15 to 1.9.16\n- Added CHANGELOG entry documenting the is_primary_key fix\n- Documents that UseStateForUnknown plan modifier eliminates noisy plan output\n\n* Remove md",
          "is_bot": false,
          "headline": "Add UseStateForUnknown plan modifier to is_primary_key attribute (#490)",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2025-12-01T09:30:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "38da8634e4a07cd99a83d5f7bebbbe00fcd9c00a",
          "body": "…hanging sensitive config values (#487)\n\n* fivetran_external_logging resource after being imported - allow for changing sensitive config values\n\n* Code review fix - allow for consequent updates of sensitive values, better test coverage",
          "is_bot": false,
          "headline": "fivetran_external_logging resource after being imported - allow for c…",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2025-11-26T16:05:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "55ff851dc1daa832dba55e57e4bd5ab90d6330d4",
          "body": "…{}` (#484)\n\n* Allow for importing `fivetran_private_link` with empty `config_map = {}`\n\n* Fix after rebasing\n\n* Added a test for import when config_map is null\n\n* placeholders in e2e test",
          "is_bot": false,
          "headline": "Allow for importing `fivetran_private_link` with empty `config_map = …",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2025-11-18T16:34:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "555efe65417ac3b23628b494908dd8159476bac4",
          "body": null,
          "is_bot": false,
          "headline": "Update with latest Fivetran OpenAPI schema (#481)",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2025-11-12T12:17:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cfcef35016c1871418daddf77c4edd73ce65aceb",
          "body": "…rted (#480)",
          "is_bot": false,
          "headline": "Fix updating of fivetran_group_users resource, after it has been impo…",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2025-11-12T12:16:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cb01046433fc951480b84bd6a4ca3b5afa0eaa2e",
          "body": "…r specifying  as  in the TF config. (#479)",
          "is_bot": false,
          "headline": "Fix for switching a connection from ProxyAgent to SshTunnel. Allow fo…",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2025-11-10T15:38:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a157eb689be577c4fcd2942ebd6d867b05a33588",
          "body": "…r re-importing previously created resource. (#477)\n\n* In importing of a  resource exclude TF user (group admin) to allow for re-importing previously created resource.\n\n* Filtering for current API Key user in fivetran_group_users resource and data source",
          "is_bot": false,
          "headline": "In importing of a  resource exclude TF user (group admin) to allow fo…",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2025-11-04T09:17:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6be4334c0ad9a69b3af7aa6fb2a615ea0a520988",
          "body": null,
          "is_bot": false,
          "headline": "Update with latest FIvetran OpenAPI schema (#476)",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2025-10-29T15:26:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "af6ee551b97f62a03ca3a39124cd962a5c00266a",
          "body": "* a fix for import fivetran_group_users\n\n* reverted group users cleanup on group_users resource creation. Added e2e test step for checking import of group_users\n\n* bump patch version of provider",
          "is_bot": false,
          "headline": "a fix for import `fivetran_group_users` (#475)",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2025-10-29T14:42:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7ffceb854f33f99fb9b77663624e3e9edcde68bf",
          "body": "…471)\n\n* fix: resolve SFTP connector files block state reconciliation issue\n\n- Add key_field 'table_name' to files object list in fields.json\n- Fix 'Provider produced inconsistent result after apply' errors for SFTP connectors\n- Enable proper matching of file objects with null values for optional fi\n[…]\nKeyFieldE2E test\n\n- Remove the problematic test that was causing CI failures\n- Core SFTP files block state reconciliation fix remains in place\n- Rebased and merged changelog entries for version 1.9.11",
          "is_bot": false,
          "headline": "fix: resolve SFTP connector files block state reconciliation issue (#…",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2025-10-20T15:18:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0488a64746b6992b875bec9779f0aa6e1d9fa908",
          "body": "* Fix: Eliminate is_primary_key noise from terraform plan output\n\n- Omit is_primary_key from state when API doesn't provide it\n- Prevents is_primary_key noise in plan output for all columns\n- Never send is_primary_key in API requests (computed-only field)\n- Add comprehensive mock tests to verify beh\n[…]\nter apply operations\n- Updated CHANGELOG.md to version v1.9.11\n- Resolves build failures in TestResourceSchemaPrimaryKeyLargeSchemaNoNoiseMock\n\nRelated to PR #472: Fix is_primary_key noise elimination",
          "is_bot": false,
          "headline": "Fix: Eliminate is_primary_key noise from terraform plan output (#472)",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2025-10-20T14:47:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "47a4f67b22d878dd01467ea51c19228c4edd49ea",
          "body": "…(#470)\n\n* Fix is_primary_key null defaults causing noisy terraform plan output\n\nChanges:\n- Default is_primary_key to false when API doesn't provide it\n- Filter out is_primary_key from PATCH requests in mapRawSchemas\n- Added comprehensive test coverage with 3 tests:\n  * TestResourceSchemaPrimaryKeyC\n[…]\n CHANGELOG entry\n\n- Changed version from 1.9.11 to 1.9.10 (not yet released)\n- Merged CHANGELOG entry into existing v1.9.10 section\n- Updated description to clarify fix applies to newer schemas format",
          "is_bot": false,
          "headline": "Fix is_primary_key null defaults causing noisy terraform plan output …",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2025-10-14T11:00:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ec0656225038f02f790a0be40ae4ad532609f46d",
          "body": "* Updated with latest Fivetran OpenAPI\n\n* updated with latest OpenAPI",
          "is_bot": false,
          "headline": "Updated with the latest Fivetran OpenAPI (#468)",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2025-10-14T09:19:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "62f8dc6ddbd0a1bd5613da9ebdb7e9fd5dcf7c77",
          "body": null,
          "is_bot": false,
          "headline": "Fixed importing of  resources, and retrieving  data sources. (#469)",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2025-10-10T09:15:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9a36481692fcaafb48b562e061b1b7d85e6220cf",
          "body": "* Updating with latest Fivetran OpenAPI schema\n\n* fixing tests\n\n* fixing tests",
          "is_bot": false,
          "headline": "Updating with latest Fivetran OpenAPI schema (#467)",
          "author_name": "Renat Shaikhutdinov",
          "author_login": "fivetran-renat-sh",
          "committed_at": "2025-10-01T12:19:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ffac59ebce699685ebd436ef9c7821b5ae3f77bc",
          "body": "…a config (#466)\n\n- Changed is_primary_key from Optional+Computed to Computed-only\n- Prevents showing '+ is_primary_key = (known after apply)' for all columns\n- Updated model to always populate is_primary_key from API responses\n- Added comprehensive test (TestResourceSchemaPrimaryKeyComputedMock) with:\n  * Validation that is_primary_key is not sent in PATCH requests\n  * Plan-only test to verify no drift from is_primary_key values\n- Updated CHANGELOG and bumped version to 1.9.9",
          "is_bot": false,
          "headline": "Fix noisy terraform plan output for is_primary_key in connector schem…",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2025-10-01T10:40:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7d019db6b506b0708ff2448d1cec99ada176509b",
          "body": "* feat: add tenant_id support for SharePoint connectors\n\n- Add tenant_id field to auth-fields.json for SharePoint service\n- Update fields.json to include SharePoint in tenant_id field descriptions\n- Add tenant_id test to existing static mapping test\n- Update CHANGELOG.md with version 1.9.8\n\nFixes th\n[…]\n 1.9.6 to 1.9.8\n- Reflects the SharePoint tenant_id fix and PostgreSQL E2E test fix\n- Aligns with CHANGELOG.md version 1.9.8\n\n* Fix PostgreSQL connector E2E test by adding required update_method field",
          "is_bot": false,
          "headline": "feat: add tenant_id support for SharePoint connectors (#463)",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2025-09-30T13:33:38Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "55fcc8467be05308ba77520ec655c0e56b4b02ce",
          "body": "* fix: prevent panic when importing private link with nil config values\n\n- Add nil checks in ReadFromCustomResponse method to prevent interface conversion panic\n- Skip nil and empty string values when building config map\n- Add test case to verify fix works with nil values in API response\n\nFixes RD-1\n[…]\n.noreply.github.com>\n\n---------\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>\nCo-authored-by: Aleksandr Boldyrev <125960514+fivetran-aleksandrboldyrev@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Fix/private link import panic (#462)",
          "author_name": "Jovan Manojlovic",
          "author_login": "fivetran-jovanmanojlovic",
          "committed_at": "2025-09-25T08:38:35Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d433718f0d42222dbf58a83f167c7617c11828ba",
          "body": null,
          "is_bot": false,
          "headline": "Release v1.9.6 (#451)",
          "author_name": "Aleksandr Boldyrev",
          "author_login": "adboldyrev",
          "committed_at": "2025-09-11T14:34:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 100,
      "commits_last_year": 107,
      "latest_release_at": "2026-07-20T16:01:56Z",
      "latest_release_tag": "v1.9.38",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 39,
      "days_since_latest_release": 11,
      "mean_days_between_releases": 12.3
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 62,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "github.com/fivetran/terraform-provider-fivetran",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "go",
          "matches_repo": true,
          "registry_url": "https://pkg.go.dev/github.com/fivetran/terraform-provider-fivetran",
          "is_deprecated": false,
          "latest_version": "v1.9.38",
          "repository_url": "https://github.com/fivetran/terraform-provider-fivetran",
          "versions_count": 149,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-20T16:00:46Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 11
        }
      ]
    },
    "popularity": {
      "forks": 27,
      "stars": 45,
      "watchers": 46,
      "fork_history": {
        "days": [
          {
            "date": "2021-09-14",
            "count": 1
          },
          {
            "date": "2021-09-17",
            "count": 3
          },
          {
            "date": "2021-11-09",
            "count": 1
          },
          {
            "date": "2022-01-26",
            "count": 1
          },
          {
            "date": "2022-02-24",
            "count": 1
          },
          {
            "date": "2022-04-14",
            "count": 1
          },
          {
            "date": "2022-04-21",
            "count": 1
          },
          {
            "date": "2022-05-24",
            "count": 1
          },
          {
            "date": "2022-08-17",
            "count": 1
          },
          {
            "date": "2023-02-07",
            "count": 1
          },
          {
            "date": "2023-02-16",
            "count": 1
          },
          {
            "date": "2023-04-14",
            "count": 1
          },
          {
            "date": "2023-04-26",
            "count": 1
          },
          {
            "date": "2023-08-29",
            "count": 1
          },
          {
            "date": "2024-02-01",
            "count": 1
          },
          {
            "date": "2024-04-05",
            "count": 1
          },
          {
            "date": "2024-04-11",
            "count": 1
          },
          {
            "date": "2024-06-20",
            "count": 1
          },
          {
            "date": "2024-09-14",
            "count": 1
          },
          {
            "date": "2024-10-11",
            "count": 1
          },
          {
            "date": "2025-07-31",
            "count": 1
          },
          {
            "date": "2025-08-13",
            "count": 1
          },
          {
            "date": "2025-11-13",
            "count": 1
          },
          {
            "date": "2026-04-07",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 26,
        "total_forks": 27
      },
      "star_history": null,
      "open_issues_and_prs": 22
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [
        "Makefile"
      ],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [
        "go.mod"
      ],
      "largest_source_bytes": 143493,
      "source_files_sampled": 314,
      "oversized_source_files": 4,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "go.mod"
      ],
      "advisories": {
        "error": null,
        "scope": "repository_graph",
        "source": "osv",
        "findings": [
          {
            "name": "golang.org/x/crypto",
            "direct": false,
            "version": "v0.48.0",
            "severity": "critical",
            "ecosystem": "go",
            "cvss_score": 10,
            "advisory_ids": [
              "GHSA-45gg-vh54-h5m9",
              "GHSA-5cgq-3rg8-m6cv",
              "GHSA-78mq-xcr3-xm33",
              "GHSA-89gr-r52h-f8rx",
              "GHSA-9m57-25v3-79x9",
              "GHSA-f5wc-c3c7-36mc",
              "GHSA-jppx-rxg9-jmrx",
              "GHSA-q4h4-gmj2-qvw2",
              "GHSA-qpw4-5x99-6vjp",
              "GHSA-rm3j-f69w-wqmq"
            ],
            "fixed_version": "0.52.0",
            "advisory_count": 27,
            "oldest_advisory_days": 71
          },
          {
            "name": "google.golang.org/grpc",
            "direct": false,
            "version": "v1.79.1",
            "severity": "critical",
            "ecosystem": "go",
            "cvss_score": 9.1,
            "advisory_ids": [
              "GHSA-hrxh-6v49-42gf",
              "GHSA-p77j-4mvh-x3m3",
              "GO-2026-4762",
              "GO-2026-6061"
            ],
            "fixed_version": "1.82.1",
            "advisory_count": 4,
            "oldest_advisory_days": 135
          },
          {
            "name": "github.com/cloudflare/circl",
            "direct": false,
            "version": "v1.6.1",
            "severity": "moderate",
            "ecosystem": "go",
            "cvss_score": 5.6,
            "advisory_ids": [
              "GHSA-q9hv-hpm4-hj6x",
              "GO-2026-4550"
            ],
            "fixed_version": "1.6.3",
            "advisory_count": 2,
            "oldest_advisory_days": 156
          },
          {
            "name": "golang.org/x/net",
            "direct": false,
            "version": "v0.49.0",
            "severity": "moderate",
            "ecosystem": "go",
            "cvss_score": 6.5,
            "advisory_ids": [
              "GHSA-5cv4-jp36-h3mw",
              "GO-2026-4918",
              "GO-2026-5025",
              "GO-2026-5026",
              "GO-2026-5027",
              "GO-2026-5028",
              "GO-2026-5029",
              "GO-2026-5030",
              "GO-2026-5942"
            ],
            "fixed_version": "1.26.3",
            "advisory_count": 9,
            "oldest_advisory_days": 85
          },
          {
            "name": "golang.org/x/sys",
            "direct": false,
            "version": "v0.41.0",
            "severity": "unknown",
            "ecosystem": "go",
            "cvss_score": null,
            "advisory_ids": [
              "GO-2026-5024"
            ],
            "fixed_version": "0.44.0",
            "advisory_count": 1,
            "oldest_advisory_days": 70
          },
          {
            "name": "golang.org/x/text",
            "direct": false,
            "version": "v0.34.0",
            "severity": "unknown",
            "ecosystem": "go",
            "cvss_score": null,
            "advisory_ids": [
              "GO-2026-5970"
            ],
            "fixed_version": "0.39.0",
            "advisory_count": 1,
            "oldest_advisory_days": 17
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "unknown": 2,
          "critical": 2,
          "moderate": 2
        },
        "advisory_count": 44,
        "affected_count": 6,
        "assessed_count": 58,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "go"
      ],
      "dependencies": [
        {
          "name": "github.com/fivetran/go-fivetran",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.3.7"
        },
        {
          "name": "github.com/hashicorp/terraform-plugin-framework",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.18.0"
        },
        {
          "name": "github.com/hashicorp/terraform-plugin-framework-timeouts",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.7.0"
        },
        {
          "name": "github.com/hashicorp/terraform-plugin-framework-validators",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.19.0"
        },
        {
          "name": "github.com/hashicorp/terraform-plugin-testing",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.7.0"
        },
        {
          "name": "github.com/Jeffail/gabs/v2",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v2.7.0"
        },
        {
          "name": "github.com/hashicorp/terraform-plugin-go",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.30.0"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "github.com/fivetran/go-fivetran",
            "direct": true,
            "version": "v1.3.7",
            "ecosystem": "go"
          },
          {
            "name": "github.com/hashicorp/terraform-plugin-framework",
            "direct": true,
            "version": "v1.18.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/hashicorp/terraform-plugin-framework-timeouts",
            "direct": true,
            "version": "v0.7.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/hashicorp/terraform-plugin-framework-validators",
            "direct": true,
            "version": "v0.19.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/hashicorp/terraform-plugin-go",
            "direct": true,
            "version": "v0.30.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/hashicorp/terraform-plugin-testing",
            "direct": true,
            "version": "v1.7.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/jeffail/gabs/v2",
            "direct": true,
            "version": "v2.7.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/agext/levenshtein",
            "direct": false,
            "version": "v1.2.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/apparentlymart/go-textseg/v15",
            "direct": false,
            "version": "v15.0.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/cloudflare/circl",
            "direct": false,
            "version": "v1.6.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/fatih/color",
            "direct": false,
            "version": "v1.18.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/golang/protobuf",
            "direct": false,
            "version": "v1.5.4",
            "ecosystem": "go"
          },
          {
            "name": "github.com/google/go-cmp",
            "direct": false,
            "version": "v0.7.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/hashicorp/errwrap",
            "direct": false,
            "version": "v1.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/hashicorp/go-checkpoint",
            "direct": false,
            "version": "v0.5.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/hashicorp/go-cleanhttp",
            "direct": false,
            "version": "v0.5.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/hashicorp/go-cty",
            "direct": false,
            "version": "v1.5.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/hashicorp/go-hclog",
            "direct": false,
            "version": "v1.6.3",
            "ecosystem": "go"
          },
          {
            "name": "github.com/hashicorp/go-multierror",
            "direct": false,
            "version": "v1.1.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/hashicorp/go-plugin",
            "direct": false,
            "version": "v1.7.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/hashicorp/go-retryablehttp",
            "direct": false,
            "version": "v0.7.8",
            "ecosystem": "go"
          },
          {
            "name": "github.com/hashicorp/go-uuid",
            "direct": false,
            "version": "v1.0.3",
            "ecosystem": "go"
          },
          {
            "name": "github.com/hashicorp/go-version",
            "direct": false,
            "version": "v1.8.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/hashicorp/hc-install",
            "direct": false,
            "version": "v0.9.3",
            "ecosystem": "go"
          },
          {
            "name": "github.com/hashicorp/hcl/v2",
            "direct": false,
            "version": "v2.24.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/hashicorp/logutils",
            "direct": false,
            "version": "v1.0.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/hashicorp/terraform-exec",
            "direct": false,
            "version": "v0.25.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/hashicorp/terraform-json",
            "direct": false,
            "version": "v0.27.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/hashicorp/terraform-plugin-log",
            "direct": false,
            "version": "v0.10.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/hashicorp/terraform-plugin-sdk/v2",
            "direct": false,
            "version": "v2.39.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/hashicorp/terraform-registry-address",
            "direct": false,
            "version": "v0.4.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/hashicorp/terraform-svchost",
            "direct": false,
            "version": "v0.1.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/hashicorp/yamux",
            "direct": false,
            "version": "v0.1.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/kr/text",
            "direct": false,
            "version": "v0.2.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mattn/go-colorable",
            "direct": false,
            "version": "v0.1.14",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mattn/go-isatty",
            "direct": false,
            "version": "v0.0.20",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mitchellh/copystructure",
            "direct": false,
            "version": "v1.2.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mitchellh/go-testing-interface",
            "direct": false,
            "version": "v1.14.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mitchellh/go-wordwrap",
            "direct": false,
            "version": "v1.0.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mitchellh/mapstructure",
            "direct": false,
            "version": "v1.5.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mitchellh/reflectwalk",
            "direct": false,
            "version": "v1.0.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/oklog/run",
            "direct": false,
            "version": "v1.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/protonmail/go-crypto",
            "direct": false,
            "version": "v1.3.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/vmihailenco/msgpack",
            "direct": false,
            "version": "v4.0.4+incompatible",
            "ecosystem": "go"
          },
          {
            "name": "github.com/vmihailenco/msgpack/v5",
            "direct": false,
            "version": "v5.4.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/vmihailenco/tagparser/v2",
            "direct": false,
            "version": "v2.0.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/zclconf/go-cty",
            "direct": false,
            "version": "v1.17.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/crypto",
            "direct": false,
            "version": "v0.48.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/mod",
            "direct": false,
            "version": "v0.33.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/net",
            "direct": false,
            "version": "v0.49.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/sync",
            "direct": false,
            "version": "v0.19.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/sys",
            "direct": false,
            "version": "v0.41.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/text",
            "direct": false,
            "version": "v0.34.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/tools",
            "direct": false,
            "version": "v0.41.0",
            "ecosystem": "go"
          },
          {
            "name": "google.golang.org/appengine",
            "direct": false,
            "version": "v1.6.8",
            "ecosystem": "go"
          },
          {
            "name": "google.golang.org/genproto/googleapis/rpc",
            "direct": false,
            "version": "v0.0.0-20251202230838-ff82c1b0f217",
            "ecosystem": "go"
          },
          {
            "name": "google.golang.org/grpc",
            "direct": false,
            "version": "v1.79.1",
            "ecosystem": "go"
          },
          {
            "name": "google.golang.org/protobuf",
            "direct": false,
            "version": "v1.36.11",
            "ecosystem": "go"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 58,
        "direct_count": 7,
        "indirect_count": 51
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 9,
        "merged_prs": 365,
        "open_issues": 13,
        "closed_ratio": 0.936,
        "closed_issues": 189,
        "closed_unmerged_prs": 25
      },
      "bus_factor": 2,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "beevital",
          "commits": 146,
          "avatar_url": "https://avatars.githubusercontent.com/u/73104048?v=4"
        },
        {
          "type": "User",
          "login": "adboldyrev",
          "commits": 58,
          "avatar_url": "https://avatars.githubusercontent.com/u/125960514?v=4"
        },
        {
          "type": "User",
          "login": "fivetran-renat-sh",
          "commits": 57,
          "avatar_url": "https://avatars.githubusercontent.com/u/124685599?v=4"
        },
        {
          "type": "User",
          "login": "fivetran-jovanmanojlovic",
          "commits": 48,
          "avatar_url": "https://avatars.githubusercontent.com/u/152610450?v=4"
        },
        {
          "type": "User",
          "login": "LukaDevic",
          "commits": 17,
          "avatar_url": "https://avatars.githubusercontent.com/u/43738975?v=4"
        },
        {
          "type": "User",
          "login": "Fivetran-RomanKolesnikov",
          "commits": 12,
          "avatar_url": "https://avatars.githubusercontent.com/u/91958497?v=4"
        },
        {
          "type": "User",
          "login": "5tran-alexil",
          "commits": 6,
          "avatar_url": "https://avatars.githubusercontent.com/u/104075567?v=4"
        },
        {
          "type": "User",
          "login": "felipeneuwald",
          "commits": 4,
          "avatar_url": "https://avatars.githubusercontent.com/u/46167104?v=4"
        },
        {
          "type": "User",
          "login": "fivetran-denismutuzkin",
          "commits": 3,
          "avatar_url": "https://avatars.githubusercontent.com/u/77270290?v=4"
        },
        {
          "type": "User",
          "login": "dkanareykin",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/99188297?v=4"
        }
      ],
      "contributors_sampled": 19,
      "top_contributor_share": 0.402
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "release.yml",
        "testing.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "go.sum"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": null,
            "reason": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 9,
            "reason": "27 out of 30 merged PRs checked by a CI test -- score normalized to 9",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 10,
            "reason": "all changesets reviewed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 3,
            "reason": "project has 1 contributing companies or organizations -- score normalized to 3",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 1,
            "reason": "SAST tool is not run on all commits -- score normalized to 1",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": 8,
            "reason": "5 out of the last 5 releases have a total of 5 signed artifacts.",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 0,
            "reason": "27 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "235d109757410982f32be7616fddf537b62bc48e",
        "ran_at": "2026-08-01T02:44:03Z",
        "aggregate_score": 5.1,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-30T09:02:38Z",
      "oldest_open_prs": [
        {
          "number": 494,
          "created_at": "2025-12-12T14:09:29Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 509,
          "created_at": "2026-01-20T14:26:56Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 516,
          "created_at": "2026-02-04T11:34:48Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 518,
          "created_at": "2026-02-05T17:14:53Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 529,
          "created_at": "2026-02-26T17:42:13Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 532,
          "created_at": "2026-03-10T10:35:24Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 578,
          "created_at": "2026-06-09T11:19:53Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 579,
          "created_at": "2026-06-09T12:23:14Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 602,
          "created_at": "2026-07-31T10:47:41Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-07-30T08:44:48Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 350,
          "created_at": "2024-08-28T08:21:06Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 379,
          "created_at": "2024-11-25T13:08:06Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 424,
          "created_at": "2025-05-15T21:47:26Z",
          "last_comment_at": "2025-05-15T23:10:25Z",
          "last_comment_author": "nick-bosma"
        },
        {
          "number": 440,
          "created_at": "2025-07-31T09:41:15Z",
          "last_comment_at": "2025-08-19T14:10:34Z",
          "last_comment_author": "tcjdt"
        },
        {
          "number": 442,
          "created_at": "2025-07-31T10:45:57Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 473,
          "created_at": "2025-10-27T21:16:54Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 478,
          "created_at": "2025-11-04T11:32:21Z",
          "last_comment_at": "2025-11-06T18:45:38Z",
          "last_comment_author": "fivetran-jimmyhooker"
        },
        {
          "number": 482,
          "created_at": "2025-11-13T02:07:55Z",
          "last_comment_at": "2026-04-23T15:22:37Z",
          "last_comment_author": "fivetran-renat-sh"
        },
        {
          "number": 496,
          "created_at": "2025-12-16T01:18:11Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 503,
          "created_at": "2026-01-07T14:28:17Z",
          "last_comment_at": "2026-01-29T11:00:59Z",
          "last_comment_author": "beevital"
        },
        {
          "number": 507,
          "created_at": "2026-01-19T15:41:03Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 519,
          "created_at": "2026-02-10T13:54:26Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 545,
          "created_at": "2026-03-31T20:48:30Z",
          "last_comment_at": "2026-04-21T16:43:05Z",
          "last_comment_author": "fivetran-renat-sh"
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/fivetran/terraform-provider-fivetran",
    "host": "github.com",
    "name": "terraform-provider-fivetran",
    "owner": "fivetran"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "excellent",
      "name": "Overall health",
      "note": "The weighted overall 74 is calibrated to 88 on the published index scale (record calibration 2026-08-02).",
      "notes": [
        {
          "code": "overall_calibration",
          "params": {
            "raw": 74,
            "calibrated": 88,
            "calibration": "2026-08-02"
          }
        }
      ],
      "value": 88,
      "inputs": {
        "security": 61,
        "vitality": 94,
        "community": 58,
        "governance": 79,
        "calibration": "2026-08-02",
        "engineering": 72,
        "ai_readiness": 65,
        "weighted_overall_raw": 74
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "exceptional",
        "name": "Vitality",
        "value": 94,
        "weight": 0.21,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 91,
            "inputs": {
              "commits_last_year": 107,
              "human_commit_share": 1,
              "days_since_last_push": 0,
              "active_weeks_last_year": 39
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "39/52 weeks with commits",
                "points": 27,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 39
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "107 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 107
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "exceptional",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 98,
            "inputs": {
              "releases_count": 100,
              "latest_release_tag": "v1.9.38",
              "releases_from_tags": false,
              "days_since_latest_release": 11,
              "mean_days_between_releases": 12.3
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "100 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 100
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 11 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 11
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~12.3 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 12.3
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "5 out of the last 5 releases have a total of 5 signed artifacts.",
                "points": 8,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "exceptional",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 5,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 5 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "moderate",
        "name": "Community & Adoption",
        "value": 58,
        "weight": 0.17,
        "metrics": [
          {
            "key": "popularity",
            "band": "weak",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 48,
            "inputs": {
              "forks": 27,
              "stars": 45,
              "watchers": 46,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "45 stars",
                "points": 26.7,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 45
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "27 forks",
                "points": 11.8,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 27
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "46 watchers",
                "points": 9.2,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 46
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "good",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 70,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "readme_badges": null,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "readme_badge_services": [],
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (Apache-2.0)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "Apache-2.0"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "good",
        "name": "Sustainability & Governance",
        "value": 79,
        "weight": 0.23,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "moderate",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 55,
            "inputs": {
              "bus_factor": 2,
              "contributors_sampled": 19,
              "top_contributor_share": 0.402
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "2 contributor(s) cover half of all commits",
                "points": 25.2,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 40% of commits",
                "points": 13.5,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 40
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "19 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 19
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "exceptional",
            "name": "Issue & PR responsiveness",
            "note": "Excluded from scoring (no data or not applicable): Newcomer PR acceptance. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "newcomer_pr_acceptance"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 95,
            "inputs": {
              "merged_prs": 365,
              "open_issues": 13,
              "closed_issues": 189,
              "prs_merged_7d": null,
              "prs_decided_7d": null,
              "prs_merged_30d": null,
              "prs_decided_30d": null,
              "issue_closed_ratio": 0.936,
              "closed_unmerged_prs": 25,
              "first_time_authors_30d": null,
              "first_time_prs_merged_30d": null,
              "first_time_prs_decided_30d": null
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "94% of issues closed",
                "points": 39.3,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 94
                    }
                  }
                ],
                "max_points": 42
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "365/390 decided PRs merged",
                "points": 28.1,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 365,
                      "decided": 390
                    }
                  }
                ],
                "max_points": 30
              },
              {
                "key": "newcomer_pr_acceptance",
                "name": "Newcomer PR acceptance",
                "detail": "no first-time contributor's PR decided in 30d",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_newcomer_prs",
                    "params": {
                      "days": 30
                    }
                  }
                ],
                "max_points": 13
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "all changesets reviewed",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "good",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 74,
            "inputs": {
              "followers": 405,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "fivetran",
              "public_repos": 314,
              "account_age_days": 5017
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "405 followers of fivetran",
                "points": 18.8,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 405,
                      "login": "fivetran"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "314 public repos, account ~13 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 314
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 13
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "exceptional",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "github.com/fivetran/terraform-provider-fivetran"
              ],
              "ecosystems": "go",
              "any_deprecated": false,
              "min_days_since_publish": 11
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on go",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "go"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 11 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 11
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "149 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 149
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 72,
        "weight": 0.19,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "good",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 66,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "2 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "27 out of 30 merged PRs checked by a CI test -- score normalized to 9",
                "points": 18,
                "status": "partial",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 80,
            "inputs": {
              "topics": [],
              "has_wiki": false,
              "homepage": "https://fivetran.com",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://fivetran.com",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 61,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Branch-Protection. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "branch_protection"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 51,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 17,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 1,
              "scorecard_aggregate": 5.1
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "27 out of 30 merged PRs checked by a CI test -- score normalized to 9",
                "points": 2.2,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "all changesets reviewed",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 1",
                "points": 0.5,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "5 out of the last 5 releases have a total of 5 signed artifacts.",
                "points": 6,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "27 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "exceptional",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories, No advisories left outstanding. Remaining weights renormalized. Matched 58 resolved dependencies against OSV. This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "indirect_dependencies_free_of_known_advisories",
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_repository",
                "params": {
                  "assessed": 58
                }
              },
              {
                "code": "advisories_repo_graph_caveat",
                "params": {}
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 44,
              "affected_packages": 6,
              "assessed_packages": 58,
              "unassessed_packages": 0,
              "affected_by_severity": "critical 2, moderate 2, unknown 2",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "transitive set not separable from development and test dependencies in this scope",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_scope_not_separable",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "exceptional",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 58,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "exceptional",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "commit_weight_rule": {
                "min_commits": 50,
                "min_commit_share": 0.1
              },
              "review_only_matches": 0,
              "below_threshold_exposures": [],
              "assessed_self_published_locations": 4
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "good",
        "name": "AI Readiness",
        "value": 65,
        "weight": 0.04,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "weak",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.94,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "params": {}
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "94 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 94,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "good",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 71,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "go.sum"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [
                "Makefile"
              ],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0.05,
              "toolchain_manifests": [
                "go.mod"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "Makefile",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Makefile"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "Go (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Go"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "5 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 5,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "exceptional",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 99,
            "inputs": {
              "primary_language": "Go",
              "largest_source_bytes": 143493,
              "source_files_sampled": 314,
              "oversized_source_files": 4
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Go (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Go"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "4/314 source files over 60KB",
                "points": 54.3,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 314,
                      "oversized": 4
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? Carries a deliberately small weight: agent tooling is a real maintenance signal, but its absence must never gate the top of the scale (calibration saturates at raw 91, so 100/100 remains reachable with AI Readiness at zero)."
      }
    ],
    "classification": {
      "top": [],
      "labels": [],
      "scores": {
        "library": 3
      },
      "primary": null,
      "evidence": [
        {
          "tier": "distribution",
          "label": "library",
          "source": "registry:go",
          "weight": 3
        }
      ],
      "artifacts": [],
      "confidence": "none",
      "host_extension": false,
      "runs_as_process": false,
      "consumed_by_code": false
    },
    "metrics_version": "2.5.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
  ],
  "report_type": "repository",
  "generated_at": "2026-08-01T02:44:26.630334Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/f/fivetran/terraform-provider-fivetran.svg",
  "full_name": "fivetran/terraform-provider-fivetran",
  "license_state": "standard",
  "license_spdx": "Apache-2.0"
}

评分是信号,而非担保。 评分反映的是 GitHub 上公开可见的实践——不是代码审计,也不是安全保证。

缺失数据将被剔除并重新归一化权重,绝不按零分计。方法论已版本化并公开:指标 v2.5.0、模式 v0.27.0—— 完整方法论 · 指标知识库.

单项结果在整体记录中的位置: 汇总统计Go.