Raw JSON report machine-readable
{
"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"
}