Registro público
Informe de salud del softwareesquema 0.27.0 · métricas 1.13.0 · 2026-07-29 18:02 UTC

rubrikinc / terraform-provider-rubrik

Terraform provider for all Rubrik Platforms

GoMIT★ 2 estrellas⑂ 1 forkdesde abr 2026Ver en GitHub ↗

rubrikinc/terraform-provider-rubrik tiene un índice de salud de 70 sobre 100, lo que lo sitúa en la banda Bueno. Su puntuación más alta es Vitality (94/100) y la más baja, Community & Adoption (43/100). Se actualizó por última vez hace 2 días. Una sola persona concentra la mayor parte del trabajo reciente.

70
global / 100
Bueno

Índice de salud del software

Las métricas se agrupan en categorías ponderadas sobre una escala de 1 a 100. El resultado global parte de su media; cuando la evidencia pública activa la Política de Jurisdicciones de Alto Riesgo, la calificación se ajusta y recibe el límite 49 (En riesgo). Preparación para IA queda fuera.

70
Excelente85-100Ejemplar; cumple prácticamente todos los criterios evaluados
Bueno70-84Saludable; carencias menores
Moderado50-69Aceptable con carencias notables; se recomienda revisión
En riesgo30-49Debilidades significativas; su adopción exige cautela
Crítico1-29Problemas graves (proyecto abandonado, un solo mantenedor, sin higiene)
VitalidadComunidad yAdopciónSostenibilidady GobernanzaCalidad deIngenieríaSeguridadPreparaciónpara IA

Perfil de puntuación

Cada eje es una categoría. La forma importa más que la media: un proyecto sano llena toda la figura, mientras que un perfil de picos y cráteres indica que la fortaleza en una dimensión enmascara el riesgo en otra.

Titularidad

RubrikincOrganización
175 seguidores134 repositorios públicosdesde jun 2015

Este repositorio está respaldado por una organización: una custodia compartida y responsable que puede sobrevivir a cualquier mantenedor individual.

Ecosistemas de paquetes

RegistroPaqueteVersiónDescargas / mesVersionesÚltima publicación
Gogithub.com/rubrikinc/terraform-provider-rubrikv1.9.0-8hace 9 días

Métricas por categoría

Vitalidad

¿Está vivo el proyecto: se escribe código y se publican versiones?

94Excelente · 22% del índice global
Cómo se puntúa
36/36Recencia de push — último push hace 2 días
28.4/36Cadencia de commits — 41/52 semanas con commits
18/18Volumen de commits — 174 commits en el último año
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 10
Datos de entrada utilizados
commits_last_year174
human_commit_share1
days_since_last_push2
active_weeks_last_year41
Cómo se puntúa
27/27Publica versiones — 5 versiones publicadas
36/36Recencia de las versiones — última versión hace 9 días
27/27Cadencia de publicación — una versión cada ~20,3 días
8/10OpenSSF Scorecard: Signed-Releases — 5 out of the last 5 releases have a total of 5 signed artifacts.
Datos de entrada utilizados
releases_count5
latest_release_tagv1.9.0
releases_from_tagsno
days_since_latest_release9
mean_days_between_releases20,3

Comunidad y Adopción

¿Tiene el proyecto usuarios, descargas, atención y unas condiciones acogedoras para quienes contribuyen?

43En riesgo · 18% del índice global
Cómo se puntúa
0/60Estrellas — 2 estrellas
0/25Forks — 1 forks
0/15Observadores — 1 observadores
Datos de entrada utilizados
forks1
stars2
watchers1
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Cómo se puntúa
22.5/22.5README
22.5/22.5Licencia — licencia reconocida (MIT)
18/18Guía CONTRIBUTING
13.5/13.5Código de conducta
0/7.2Plantilla de issues
6.3/6.3Plantilla de PR
Datos de entrada utilizados
has_readme
has_license
has_contributing
has_issue_templateno
has_code_of_conduct
has_pull_request_template

Sostenibilidad y Gobernanza

¿Sobrevivirá el proyecto a sus personas: factor bus, capacidad de respuesta, quién lo respalda y mantenimiento del paquete?

66Moderado · 24% del índice global
Cómo se puntúa
9/54Factor bus — la mitad de los commits recae en 1 contribuyente(s)
9/22.5Distribución de commits — el principal contribuyente firma el 60% de los commits
5.4/13.5Amplitud de contribuyentes — 4 contribuyentes
6/10OpenSSF Scorecard: Contributors — project has 2 contributing companies or organizations -- score normalized to 6
Datos de entrada utilizados
bus_factor1
contributors_sampled4
top_contributor_share0,599
Cómo se puntúa
23.4/46.8Resolución de issues — 50% de issues cerradas
38.2/38.3Aceptación de PR — 53/53 PR decididos fusionados
15/15OpenSSF Scorecard: Code-Review — all changesets reviewed
Datos de entrada utilizados
merged_prs53
open_issues1
closed_issues1
issue_closed_ratio0,5
closed_unmerged_prs0
Cómo se puntúa
30/30Respaldo de la propiedad — propiedad de una organización
0/20Dominio verificado
16.1/25Alcance del propietario — 175 seguidores de rubrikinc
25/25Trayectoria — 134 repos públicos, cuenta de ~11 años
Datos de entrada utilizados
followers175
owner_typeOrganization
is_verified
owner_loginrubrikinc
public_repos134
account_age_days4048
Cómo se puntúa
25/25Publicado y resoluble — 1 paquete(s) en go
35/35Recencia de publicación — última publicación hace 9 días
20/20Historial de versiones — 8 versiones en el registro
20/20No obsoleto — activo, ni obsoleto ni retirado
Datos de entrada utilizados
packagesgithub.com/rubrikinc/terraform-provider-rubrik
ecosystemsgo
any_deprecatedno
min_days_since_publish9

Calidad de Ingeniería

¿Existen unas prácticas mínimas de ingeniería y documentación?

80Bueno · 20% del índice global
Cómo se puntúa
24/24Flujos de trabajo de CI — 2 flujo(s) de trabajo
24/24Pruebas presentes
0/16Configuración de linter
0/9.6Hooks de pre-commit
0/6.4.editorconfig
18/20OpenSSF Scorecard: CI-Tests — 27 out of 30 merged PRs checked by a CI test -- score normalized to 9
Datos de entrada utilizados
has_ci
has_tests
has_editorconfigno
has_linter_configno
has_precommit_configno

Documentación

100Excelente
Cómo se puntúa
30/30README
25/25Directorio de documentación
15/15Sitio de documentación / página del proyecto — https://registry.terraform.io/providers/rubrikinc
10/10Descripción del repositorio
10/10Topics — 2 topics
10/10Wiki
Datos de entrada utilizados
topicsterraform, terraform-provider
has_wiki
homepagehttps://registry.terraform.io/providers/rubrikinc
has_readme
has_docs_dir
has_description

Seguridad

¿Son sólidas las prácticas visibles de seguridad y de cadena de suministro, sin exposición jurisdiccional de alto riesgo sin resolver?

59Moderado · 16% del índice global
Cómo se puntúa
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — sin datos
2.2/2.5CI-Tests — 27 out of 30 merged PRs checked by a CI test -- score normalized to 9
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
7.5/7.5Code-Review — all changesets reviewed
1.5/2.5Contributors — project has 2 contributing companies or organizations -- score normalized to 6
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Licencia — license file detected
7.5/7.5Maintained — 30 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
0/5Security-Policy — security policy file not detected
6/7.5Signed-Releases — 5 out of the last 5 releases have a total of 5 signed artifacts.
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 27 existing vulnerabilities detected
Datos de entrada utilizados
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate5,9
Excluidos de la puntuación (sin datos o no aplicable): branch_protection. Los pesos restantes se han renormalizado.

Preparación para IA

¿Hasta qué punto está el repositorio preparado para desarrollarse y mantenerse con agentes de codificación de IA? Es una insignia independiente y experimental — peso 0,0, de modo que se presenta por separado y no afecta a la puntuación de salud global.

71Bueno · 0% del índice global
Cómo se puntúa
45/45Instrucciones para agentes — .claude/CLAUDE.md
0/15Documentación legible por máquinas (llms.txt)
40/40Historial de commits legible — 100 de 100 commits humanos declaran su intención (asunto estructurado o cuerpo explicativo)
Datos de entrada utilizados
has_llms_txtno
legible_history_share1
agent_instruction_files.claude/CLAUDE.md
agent_instruction_max_bytes6502
Cómo se puntúa
18/18Arranque con un solo comando — Makefile
22/22Pruebas automatizadas
0/11Configuración de lint / formato
11/11Verificación estática de tipos — Go (tipado estático)
10/10Entorno reproducible — lockfile
0/10Práctica demostrada con agentes — ningún commit con autoría de agente entre los últimos 100
0/8Mantenimiento automatizado — no se observan actualizaciones automáticas de dependencias
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Datos de entrada utilizados
has_nixno
has_tests
lockfilesgo.sum
has_dockerfileno
typed_language
bootstrap_filesMakefile
has_devcontainerno
has_linter_configno
typecheck_configs
agent_commit_share0
toolchain_manifestsgo.mod
dependency_bot_commit_share0
Cómo se puntúa
45/45Código verificable por tipos — Go (tipado estático)
54.4/55Tamaños de archivo manejables — 2/181 archivos fuente de más de 60 KB
Datos de entrada utilizados
primary_languageGo
largest_source_bytes145.410
source_files_sampled181
oversized_source_files2
Cómo se puntúa
0/40Esquema de API (OpenAPI/GraphQL/proto)
0/20Servidor MCP
40/40Ejemplos ejecutables — examples
Datos de entrada utilizados
example_dirsexamples
has_mcp_signalno
api_schema_files

Datos clave

2estrellas de GitHub
4contribuidores
174commits en los últimos 12 meses
2días desde el último push
5versiones publicadas
1factor bus
1issues abiertas
Goecosistemas de paquetes

Advertencias de recopilación de datos

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Más detalle

OpenSSF Scorecard 5.9 / 10
5.9agregado

Evaluación de seguridad independiente y agnóstica en cuanto a herramientas, procedente del proyecto de código abierto OpenSSF Scorecard. Cada comprobación premia una práctica de seguridad, no la herramienta de un proveedor concreto. Las comprobaciones que Scorecard no pudo determinar se marcan como n/d y se excluyen de la puntuación de seguridad (nunca se cuentan como cero).Scorecard v5.5.0 · 2026-07-29 18:02 UTC

10Binary-Artifactsno binaries found in the repo
n/dBranch-Protectioninternal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
9CI-Tests27 out of 30 merged PRs checked by a CI test -- score normalized to 9
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
10Code-Reviewall changesets reviewed
6Contributorsproject has 2 contributing companies or organizations -- score normalized to 6
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
8Signed-Releases5 out of the last 5 releases have a total of 5 signed artifacts.
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities27 existing vulnerabilities detected
Dependencias directas 13
RegistroPaqueteRestricción de versiónManifiesto
Gogithub.com/aws/aws-sdk-go-v2v1.3.0go.mod
Gogithub.com/google/uuidv1.6.0go.mod
Gogithub.com/hashicorp/go-ctyv1.5.0go.mod
Gogithub.com/hashicorp/terraform-plugin-docsv0.25.0go.mod
Gogithub.com/hashicorp/terraform-plugin-frameworkv1.18.0go.mod
Gogithub.com/hashicorp/terraform-plugin-framework-timeoutsv0.7.0go.mod
Gogithub.com/hashicorp/terraform-plugin-framework-validatorsv0.19.0go.mod
Gogithub.com/hashicorp/terraform-plugin-gov0.30.0go.mod
Gogithub.com/hashicorp/terraform-plugin-logv0.10.0go.mod
Gogithub.com/hashicorp/terraform-plugin-muxv0.22.0go.mod
Gogithub.com/hashicorp/terraform-plugin-sdk/v2v2.38.1go.mod
Gogithub.com/hashicorp/terraform-plugin-testingv1.14.0go.mod
Gogithub.com/rubrikinc/rubrik-polaris-sdk-for-gov1.9.2-0.20260727082920-8ad1fa7f85f1go.mod
Todas las dependencias no recopilado

No fue posible recopilar el conjunto de dependencias resuelto para este informe: GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Informe JSON sin procesar legible por máquina
{
  "data": {
    "repo": {
      "topics": [
        "terraform",
        "terraform-provider"
      ],
      "is_fork": false,
      "size_kb": 1808,
      "has_wiki": true,
      "homepage": "https://registry.terraform.io/providers/rubrikinc",
      "languages": {
        "Go": 1874971,
        "Makefile": 771,
        "Go Template": 197837
      },
      "pushed_at": "2026-07-27T09:30:09Z",
      "created_at": "2026-04-28T14:52:44Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-27T09:32:07Z",
      "description": "Terraform provider for all Rubrik Platforms",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "Go",
      "significant_languages": [
        "Go"
      ]
    },
    "owner": {
      "blog": null,
      "name": "Rubrikinc",
      "type": "Organization",
      "login": "rubrikinc",
      "company": null,
      "location": "Rubrik Inc.",
      "followers": 175,
      "avatar_url": "https://avatars.githubusercontent.com/u/13104740?v=4",
      "created_at": "2015-06-29T15:25:57Z",
      "is_verified": null,
      "public_repos": 134,
      "account_age_days": 4048
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v1.9.0",
          "kind": "minor",
          "published_at": "2026-07-20T15:31:42Z"
        },
        {
          "tag": "v1.8.2",
          "kind": "patch",
          "published_at": "2026-06-30T13:20:22Z"
        },
        {
          "tag": "v1.8.1",
          "kind": "patch",
          "published_at": "2026-06-24T19:37:36Z"
        },
        {
          "tag": "v1.8.0",
          "kind": "minor",
          "published_at": "2026-06-16T12:55:58Z"
        },
        {
          "tag": "v1.7.0",
          "kind": "minor",
          "published_at": "2026-04-30T13:15:49Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "ad62630d02cfa04d646c8b0b03708cb296dfeb84",
          "body": "… (#58)\n\nReference the feature flag through the SDK constant instead of a raw\nstring so the name stays in sync with the SDK definition.",
          "is_bot": false,
          "headline": "Use FeatureFlagAzureDevOpsProtection constant to skip acceptance test…",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-07-27T09:30:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "16da45174b3aa71682b1a39b13888af786936c04",
          "body": "Add the rubrik_azure_devops_organization resource, its list resource for bulk\nimport, and the rubrik_azure_devops_{script,organization,project,repository}\ndata sources. Add Azure DevOps object types to the rubrik_object data source,\nand extend rubrik_azure_service_principal with a use_case field for registering\nthe customer application.",
          "is_bot": false,
          "headline": "Add Azure DevOps support (#50)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-07-25T10:10:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ab8cd00410c476bc60c33c40f39a7d2bc631fbc3",
          "body": null,
          "is_bot": false,
          "headline": "Fix Duplicate Set Element error in rubrik_objects data source (#56)",
          "author_name": "Andy Draper",
          "author_login": "Draper1",
          "committed_at": "2026-07-20T11:29:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "996b08f24ef596a9067aec52a7ef10ac2396622c",
          "body": null,
          "is_bot": false,
          "headline": "Add RSC-managed AWS (BaaS) onboarding resources (#55)",
          "author_name": "Andy Draper",
          "author_login": "Draper1",
          "committed_at": "2026-07-20T10:52:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c241008814ff544222034fdf676b8ec36309cfba",
          "body": null,
          "is_bot": false,
          "headline": "Bump rubrik-polaris-sdk-for-go to v1.9.1 (#54)",
          "author_name": "Andy Draper",
          "author_login": "Draper1",
          "committed_at": "2026-07-20T08:42:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "41f741700bcb0a53c2d29877e7c337f65537e432",
          "body": "…r (#53)\n\nThe Azure SQL SLA acceptance tests injected the provider credentials from\nRUBRIK_POLARIS_SERVICEACCOUNT_FILE, but this provider's acceptance tests\nuse RUBRIK_SERVICEACCOUNT_FILE (rscCredentialsEnv). The feature-flag gate\n(skipUnlessFeatureEnabled -> testCredentials) reads RUBRIK_SERVICEACC\n[…]\n     13:     credentials = \"\"\n\nSource the injected credentials from rscCredentialsEnv so the provider and\nthe feature-flag check use the same account, matching the sibling SLA\ndomain acceptance tests.",
          "is_bot": false,
          "headline": "Fix Azure SQL SLA acceptance tests using the wrong credentials env va…",
          "author_name": "Andy Draper",
          "author_login": "Draper1",
          "committed_at": "2026-07-16T15:26:14Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "283d7ab1a38a85dc8cd2bcf581c4adb1f4981ce8",
          "body": "The azureNativeResourceGroups filter and each resource group's\nazureSubscriptionDetails.id use the native subscription FID, but the\ndata source's subscription_id (input and output) is the RSC cloud\naccount ID. Passing the cloud account ID as the filter silently\nreturned no resource groups.\n\nResolve \n[…]\nhe returned objects, so subscription_id round-trips.\n\nAlso extend the acceptance test's post-onboarding wait to allow native\ndiscovery to complete (~1 min observed) and remove a temporary debug\nblock.",
          "is_bot": false,
          "headline": "Fix rubrik_objects to translate Azure subscription IDs (#52)",
          "author_name": "Andy Draper",
          "author_login": "Draper1",
          "committed_at": "2026-07-16T14:18:52Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2b2fca823405a1247116e8c5e425e4fefafd0dc1",
          "body": "* Add rubrik_objects data source for listing Azure native resource groups\n\nReturns every RSC hierarchy object matching object_type without a name\nfilter, starting with AzureNativeResourceGroup (optionally scoped to a\nsingle subscription). Reuses the existing NativeResourceGroups SDK call\nthat alread\n[…]\nck in Read (already enforced by\nthe schema's stringvalidator.OneOf at plan time) and fix the example\nto use a rubrik_azure_subscription data lookup instead of a resource\nblock missing required fields.",
          "is_bot": false,
          "headline": "Add rubrik_objects data source for Azure native resource groups (#51)",
          "author_name": "Andy Draper",
          "author_login": "Draper1",
          "committed_at": "2026-07-13T17:30:06Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "739968028bb9e69cff23af202c94452714026949",
          "body": "* Add retain_archive_logs_indefinitely to oracle_config in rubrik_sla_domain\n\n* Address review comments: sort names.go alphabetically, add ConflictsWith for host_log_retention, document -2 sentinel, add unit tests\n\nRemoves the now-redundant runtime mutual-exclusivity check in fromOracleConfig since ConflictsWith enforces it at plan time.",
          "is_bot": false,
          "headline": "Add retain_archive_logs_indefinitely to oracle_config (#49)",
          "author_name": "Andy Draper",
          "author_login": "Draper1",
          "committed_at": "2026-07-13T17:17:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "348681500d5879559c3f6eb88f67d867e5a2ca48",
          "body": "* Add Azure SQL V1/V2 SLA support to rubrik_sla_domain\n\nAdd support for the V1/V2 Azure SQL SLA model, gated on the\nCNP_AZURE_SQL_SLA_REVAMP feature. A V1 (Azure-managed) SLA carries a new\nltr_config block (weekly, monthly, and yearly long-term retention) and takes no\nRubrik schedule or backup locat\n[…]\nccheck ST1005: don't capitalize Azure SQL validation error strings\n\nPrefix each with \"the\" instead, matching the existing lowercase-lead\nconvention elsewhere in the file (e.g. \"unknown Azure region\").",
          "is_bot": false,
          "headline": "Add Azure SQL V1/V2 SLA support to rubrik_sla_domain (#42)",
          "author_name": "Andy Draper",
          "author_login": "Draper1",
          "committed_at": "2026-07-10T16:01:51Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "92dc874f37fed431c0f1ada6252590b2f7d8a858",
          "body": "The SDKv2 acceptance tests loaded their config files at the top of the\nfunction, before resource.Test checks TF_ACC, so they failed instead of\nskipping when run without credentials. Route config loading through\nloadTestConfig, which now takes *testing.T and skip-guards, so these\ntests skip cleanly like the framework tests.",
          "is_bot": false,
          "headline": "Skip acceptance tests without TF_ACC (#48)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-07-03T19:30:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fd53093d78bb0c1d1ad16bf26a07edaa3dc89a8c",
          "body": "The external rubrikinc/polaris providers used by the framework migration\nand move-state acceptance tests predate RUBRIK_SERVICEACCOUNT_FILE and\ncannot read credentials from it. Pass credentials explicitly through a\nprovider block so those steps authenticate.",
          "is_bot": false,
          "headline": "Pass credentials to external providers in tests (#47)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-07-02T21:25:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dea353fd629832e0d6b26b0b211737004953c1be",
          "body": "The credentials acceptance tests only set the legacy RUBRIK_POLARIS_\nprefixed variables, so a RUBRIK_ prefixed variable already in the\nenvironment shadowed the overrides and let the negative cases pass\nwithout erroring. Drive the tests through the RUBRIK_ prefix, clear the\nlegacy variables up front, and add a test for the RUBRIK_POLARIS_\nfallback.",
          "is_bot": false,
          "headline": "Fix env shadowing in provider credentials tests (#45)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-07-01T13:44:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8c3c674287e28da54cdaac17f407d9300dd1c033",
          "body": "The permission and hierarchy element structs were declared anonymously\nin three places, kept in sync only by a comment. Define permissionModel\nand hierarchyModel once and decode into them everywhere, and rename the\nattribute-type helpers to match.",
          "is_bot": false,
          "headline": "Introduce named types for permission models (#44)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-07-01T13:30:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "189f006cf93590d5d0ba63008817bc218a4f4871",
          "body": "Rename polaris_ resource and data source references to rubrik_ in the\nframework test configs and state checks. References to the legacy\nrubrikinc/polaris provider in the migration and move-state tests are\nleft unchanged.",
          "is_bot": false,
          "headline": "Use rubrik_ prefix in framework acceptance tests (#43)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-07-01T13:20:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d33fdb7e7a3f2772dbcfba6cde2aece2a9cdf920",
          "body": "fromCloudComputeSettings read the archival_proxy_settings block instead\nof cloud_compute_settings. Specifying an archival_proxy_settings block\ncaused a nil interface conversion panic (interface {} is nil, not\nstring), and any cloud_compute_settings values were silently ignored.\nRead the correct block and add a regression test.\n\nRoll the pending VIEW_CLUSTER_REFERENCE change into v1.8.2 and rename the\nupgrade guide from v1.9.0 to v1.8.2.",
          "is_bot": false,
          "headline": "Fix data center archival cloud compute settings; release v1.8.2 (#46)",
          "author_name": "Andy Draper",
          "author_login": "Draper1",
          "committed_at": "2026-06-30T12:08:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e85d273ffdb925a87bc40446e3662fc849fd25a9",
          "body": "The guide did not cover permission groups, and its cloud examples used\ndeprecated fields. Add a Permission Groups section and update the\nexamples to the current per-feature permission_groups model.",
          "is_bot": false,
          "headline": "Document permission groups in the permissions guide (#41)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-06-29T12:28:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9c59298522c3a4167ca52c289ec96f0c2f88abc3",
          "body": "RSC automatically grants VIEW_CLUSTER_REFERENCE whenever VIEW_CLUSTER\nis granted, so a custom role specifying VIEW_CLUSTER alone drifts on\nevery plan. Add a ValidateConfig rule that rejects that combination;\nVIEW_CLUSTER_REFERENCE on its own stays valid.",
          "is_bot": false,
          "headline": "Reject VIEW_CLUSTER without VIEW_CLUSTER_REFERENCE (#40)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-06-29T06:29:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1dd9969c50ac9b00c568306482033e98ff4ef685",
          "body": "The framework acceptance tests duplicated config loading and used\ninconsistent skip helpers. Replace both with shared fixture accessors\nand uniform skip functions, and gate feature-dependent tests behind a\ngeneric feature-flag skip.",
          "is_bot": false,
          "headline": "Consolidate framework acceptance test fixtures (#39)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-06-26T13:06:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5372b9b7a342ac516097839cd5872ff967867301",
          "body": "The Go SDK now filters the spurious duplicate CROSSACCOUNT role artifact\nthat RSC returns for role-chaining-only accounts, so consumers see only\nthe ROLE_CHAINING artifact. With the SDK handling it, the provider no\nlonger needs its own workarounds: synthesizing the ROLE_CHAINING artifact\nfrom CROSSACCOUNT, stripping it on read, and injecting a synthetic\nsts:AssumeRole policy.",
          "is_bot": false,
          "headline": "Drop client-side ROLE_CHAINING workarounds in AWS CNP resources (#38)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-06-24T15:38:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "58939029aca4eb2e867329c46b7e2cf824559c10",
          "body": "… (#37)\n\nThe features field is optional and computed. When omitted from the\nconfiguration, the Framework Create handler wrote the unknown planned\nvalue straight into state, so Terraform rejected the result with\n\"Provider returned invalid result object after apply\". This surfaced on\nrole-chaining acc\n[…]\n features from the cloud account's features during Create so the\ncomputed value is known after apply, mirroring what Read already does.\n\nAlso relabel the unreleased v1.9.0 changelog section to v1.8.1.",
          "is_bot": false,
          "headline": "Fix unknown features value after apply in aws_cnp_account_attachments…",
          "author_name": "Andy Draper",
          "author_login": "Draper1",
          "committed_at": "2026-06-24T13:20:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a8c677b8b49cd3844c2f6b7ef5194a5be94a62bc",
          "body": "Allow onboarding the SERVERS_AND_APPS feature for GCP projects via the\nrubrik_gcp_project resource and reading it back through the\nrubrik_gcp_project and rubrik_gcp_permissions data sources.\n\nUnlike other GCP features, SERVERS_AND_APPS uses only the CLOUD_CLUSTER_ES\npermission group and does not use BASIC, so the docs and the\npermissions data source note are adjusted accordingly.",
          "is_bot": false,
          "headline": "Add support for SERVERS_AND_APPS feature in GCP project (#36)",
          "author_name": "Andy Draper",
          "author_login": "Draper1",
          "committed_at": "2026-06-18T16:04:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6cb80ff8c8757302fd0c8ae48c33cd502e1218b8",
          "body": "The Build stage installed both tools by piping a remote script straight\ninto a shell. Syft was unpinned (always latest), and even though\ngoreleaser pinned its tool version, the goreleaser.com/static/run\nbootstrap script was fetched fresh and executed unverified each build,\nleaving the build open to \n[…]\nunder $HOME/.cache/build-tools and published via an atomic rename,\nso the shared agent cache is safe under concurrent builds and a fresh\ndownload is skipped when the pinned version is already present.",
          "is_bot": false,
          "headline": "Harden goreleaser and syft install in Jenkinsfile (#34)",
          "author_name": "Pontus Leitzler",
          "author_login": "leitzler",
          "committed_at": "2026-06-15T09:14:54Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a9c4a4c876fc61c64f5c1a67dab873f805d2231a",
          "body": null,
          "is_bot": false,
          "headline": "Add missing v1.8.0 changelog and upgrade guide entries (#32)",
          "author_name": "Andy Draper",
          "author_login": "Draper1",
          "committed_at": "2026-06-11T14:50:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cdd1825697fecdd44175367330e0a16a25dbf212",
          "body": null,
          "is_bot": false,
          "headline": "Add azure_permission_groups data source (#29)",
          "author_name": "Andy Draper",
          "author_login": "Draper1",
          "committed_at": "2026-06-10T12:57:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e127265556ba4db9830185c7f3c5934342ec223a",
          "body": "Remove the early polaris-era guides and stale upgrade guides, update the\nv1.8.0 upgrade guide, and trim the provider index and README to service\naccounts only.",
          "is_bot": false,
          "headline": "Clean up provider guides and docs (#31)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-06-10T12:36:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dd073c948ed3f76dbb46f9c30db3135ca36e2e97",
          "body": "…Permissions Data Source (#23)\n\n* Bump Rubrik Polaris SDK for Go\n\nPin to the latest commit (f5057de) on SDK main, which adds:\n- AllFeaturePermissions for the AWS permission group catalog lookup\n- gqlcloudcluster Multi-AZ types (SubnetAzConfig, IsAzResilient on\n  CreateAwsClusterInput / CreateAzureCl\n[…]\nchments features field.\n- Rewrite the rubrik_aws_permission_groups bullet to drop the \"live\n  permission group catalog\" phrasing and the implication that\n  hard-coding BASIC / RECOVERY is undesirable.",
          "is_bot": false,
          "headline": "Backport: RDS, DyanamoDB Recovery Permissions, Multi-AZ CCES and AWS …",
          "author_name": "Andy Draper",
          "author_login": "Draper1",
          "committed_at": "2026-06-09T10:50:07Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0d904488231d94c12072782f47fccdabbb063c1a",
          "body": "Teach the cluster_settings resource to walk the intermediate releases returned\nby MultiHopUpgradePath when the desired version is more than one release ahead,\ndownloading and upgrading through each hop in turn instead of rejecting the\nupgrade. A custom package_url/package_md5 can only drive a single direct hop and\nis rejected for a computed multi-hop path.\n\nThe hop-reduction logic is factored into upgradeHops and covered by a unit\ntest.",
          "is_bot": false,
          "headline": "Add automatic multi-hop upgrades to cluster_settings (#28)",
          "author_name": "Pontus Leitzler",
          "author_login": "leitzler",
          "committed_at": "2026-06-09T06:16:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ebd55ef474fdef076592671a98e0efbd072ace6c",
          "body": "Add the rubrik_cluster_versions data source which lists the CDM releases\navailable to a cluster (from the Rubrik support portal via ListUpgrades).\nIt exposes a minimal surface - available_versions (version, recommended,\nupgradable), recommended_version, and latest_version - intended to feed the\nversion argument of the rubrik_cluster_settings resource so that a new release\nproduces a plan diff that drives the upgrade on apply.",
          "is_bot": false,
          "headline": "Add data source for cluster_versions (#27)",
          "author_name": "Pontus Leitzler",
          "author_login": "leitzler",
          "committed_at": "2026-06-09T05:56:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "287163b0d1b3ae9f3aa962d29d492eaa6fc3370e",
          "body": "Add the rubrik_cluster_settings data source which returns the upgrade state\nof a single Rubrik cluster registered with RSC.",
          "is_bot": false,
          "headline": "Add data source for cluster_settings (#26)",
          "author_name": "Pontus Leitzler",
          "author_login": "leitzler",
          "committed_at": "2026-06-08T12:42:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "51274c0deb553fb1c52f775de79edbd7f3f5ad8c",
          "body": "Add Terraform search support for the rubrik_cluster_settings resource so\nterraform query can discover the upgrade and download state of Rubrik\nclusters registered with RSC, including clusters not managed by\nTerraform. Supports filtering by cluster name, installed version and\ndownloaded version.",
          "is_bot": false,
          "headline": "Add list resource for cluster_settings (#25)",
          "author_name": "Pontus Leitzler",
          "author_login": "leitzler",
          "committed_at": "2026-06-08T10:31:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "33911b284b84dfe7f3a237c7b2d906a77a6a209b",
          "body": "Add the rubrik_cluster_settings managed resource which drives the CDM\npackage download and upgrade lifecycle of a Rubrik cluster registered\nwith RSC. Setting version downloads and upgrades; downloaded_version\npre-stages a package; upgrade_mode toggles FAST/ROLLING. Air-gapped\ndownloads are supported via package_url/package_md5, which bypass the\nsupport portal and require version or downloaded_version as the target.",
          "is_bot": false,
          "headline": "Add resource for cluster_settings (#24)",
          "author_name": "Pontus Leitzler",
          "author_login": "leitzler",
          "committed_at": "2026-06-08T07:24:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "17ddc8e72a2bc4d3e05b04627501022c618a39d9",
          "body": "…#22)\n\nThe serial acceptance run is closing in on the 120m Jenkins timeout. Run\nAWS, Azure, GCP, and the remaining tests as four parallel Jenkins\nbranches so the build only waits for the slowest. Each branch writes\nits own terraform CLI log to avoid clobbering. Mirror the partition as\ntestacc-<vendor> Makefile targets for local use.",
          "is_bot": false,
          "headline": "Split acceptance tests into parallel Jenkins stages by cloud vendor (…",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-05-29T06:19:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9254b5c9d396c725226856761aef6292f59ae21a",
          "body": "Add the rubrik_aws_cnp_account_attachments list resource (with\npolaris_aws_cnp_account_attachments as a deprecated alias). Emits\none result per AWS account onboarded via the IAM roles workflow,\nsupports account-name and native-id filters, and pairs with an\nimport {} block to bulk-import existing att\n[…]\nrce and data-source descriptions\naround the \"AWS IAM roles workflow\" framing and document the new\nCLOUD_NATIVE_PROTECTION permission groups (DOWNLOAD_FILE,\nEXPORT_POWER_OFF, EXPORT_POWER_ON, RESTORE).",
          "is_bot": false,
          "headline": "Add list resource for aws_cnp_account_attachments (#19)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-05-27T12:39:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1d756d06bc1c98ca5541386654acf33d0d82a7a1",
          "body": "End-to-end test that wires rubrik_aws_cnp_artifacts and\nrubrik_aws_cnp_permissions to the rubrik_aws_cnp_account and\nrubrik_aws_cnp_account_attachments resources via real aws_iam_role,\naws_iam_policy and aws_iam_role_policy_attachment(s_exclusive)\nresources, covering a single CROSSACCOUNT role under CLOUD_DISCOVERY\nand CLOUD_NATIVE_PROTECTION.",
          "is_bot": false,
          "headline": "Add acceptance test for the AWS IAM-roles onboarding workflow (#21)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-05-27T12:12:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b6db319fe6dce3c2d3af029560050d7278609921",
          "body": "Mark the polaris_aws_cnp_account_trust_policy resource as deprecated by\nsetting DeprecationMessage on the resource schema, surfacing a runtime\nwarning that points users to the trust_policies field of the\nrubrik_aws_cnp_account resource. The trust_policies field returns the\nIAM trust policies for all role keys and supports role chaining, so it\nfully replaces this resource.",
          "is_bot": false,
          "headline": "Deprecate aws_cnp_account_trust_policy resource (#20)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-05-27T11:32:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "88e27206e05a50777c9512e474cffe14f23a30d4",
          "body": "…(#16)\n\nReimplement the rubrik_aws_cnp_account_attachments /\npolaris_aws_cnp_account_attachments resource using the Terraform\nPlugin Framework. Schema, validation rules and stored state are\npreserved so existing configurations continue to work unchanged. The\npolaris_aws_cnp_account_attachments alias\n[…]\nn by rubrik_aws_cnp_artifacts and a role-chained variant.\nAdd an import-by-identity example. Regenerate the docs and add the\nv1.8.0 changelog entry. Add an awsCnpAccountAttachmentsCheckDestroy\nhelper.",
          "is_bot": false,
          "headline": "Migrate aws_cnp_account_attachments resource to the Plugin Framework …",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-05-26T10:04:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e7784180a4b96c8a7855cf246eb27b2d840c04bf",
          "body": "Lists AWS accounts onboarded via the AWS IAM workflow in RSC, with\noptional name (case-insensitive substring) and native_id (exact)\nfilters. Accounts onboarded via the CloudFormation workflow are\nexcluded using the SDK's OnboardingMode helper, so only IAM accounts\nare returned.\n\nRSC does not return \n[…]\nxternal_ids variable keyed on native_id, so accounts\nwith external IDs can still be imported with the correct value.\n\nIncludes an acceptance test covering the unfiltered list and the\nnative_id filter.",
          "is_bot": false,
          "headline": "Add list resource for aws_cnp_account (#17)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-05-21T08:56:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "366574f718bd4306033d8bc0dd2a3ed91b605a85",
          "body": "* Add auth_domain_id to the SSO group resource identity\n\nThe SSO group resource has a RequiresReplace auth_domain_id attribute\nthat the RSC backend does not return when reading a group. Without it\nin the resource identity, importing leaves the attribute null and the\nnext plan force-replaces the grou\n[…]\norm\nis dropped since SSO group IDs are opaque IdP-dependent strings, not\nUUIDs, and cannot be reliably distinguished from group names.\n\nUpdate the import examples and the regenerated docs accordingly.",
          "is_bot": false,
          "headline": "Add auth_domain_id to the SSO group resource identity (#14)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-05-21T08:55:44Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c8326eeaeaea138e7e0339092d2bb4fe35078c44",
          "body": "Reimplement the rubrik_aws_cnp_account / polaris_aws_cnp_account\nresource using the Terraform Plugin Framework. Schema, validation\nrules and stored state are preserved so existing configurations\ncontinue to work unchanged. The polaris_aws_cnp_account alias remains\nas a deprecated alias of rubrik_aws\n[…]\nl_permissions.go to\nreflect the broader scope.\n\nAlso fix a small bug in framework_resource_user.go's Create where a\ndiagnostics error from State.Set was not short-circuiting before the\nfollow-up read.",
          "is_bot": false,
          "headline": "Migrate aws_cnp_account resource to the Plugin Framework (#15)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-05-13T13:45:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "788b58a4392dcd34d7b87bf9d266707606e39eb3",
          "body": "Reimplement the rubrik_aws_cnp_permissions / polaris_aws_cnp_permissions\ndata source using the Terraform Plugin Framework. Schema, validation\nrules and returned shape are preserved so existing configurations\ncontinue to work unchanged. The polaris_aws_cnp_permissions alias\nremains as a deprecated al\n[…]\nnaged policy. The ROLE_CHAINING case asserts the full synthetic\npolicy. Add a TestAccAwsCnpPermissionsDataSource_FrameworkMigration\ntest that compares the framework version against the SDKv2 baseline.",
          "is_bot": false,
          "headline": "Migrate aws_cnp_permissions data source to the Plugin Framework (#13)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-05-12T11:11:17Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c5e3435f06739dbfa6aa1783ef9fd0e21d23892d",
          "body": "Reimplement the rubrik_aws_cnp_artifacts / polaris_aws_cnp_artifacts data\nsource using the Terraform Plugin Framework. Schema, validation rules and\nreturned shape are preserved so existing configurations continue to work\nunchanged. The polaris_aws_cnp_artifacts alias remains as a deprecated\nalias of\n[…]\nt instance profile and role keys returned for two concrete feature\nsets, plus a TestAccAwsCnpArtifactsDataSource_FrameworkMigration test\nthat compares the framework version against the SDKv2 baseline.",
          "is_bot": false,
          "headline": "Migrate aws_cnp_artifacts data source to the Plugin Framework (#12)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-05-11T13:07:53Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "001d4d7a313eeac081c8b060746b5597b242f1d1",
          "body": "The acceptance tests for the framework resources only exercised the\nterraform import command. Add steps that also import via an import {}\nblock, both with the id attribute and with the identity attribute,\nand assert that the resulting plan is empty.\n\nThe role assignment resource only covers the import command form,\nsince its import takes ownership of all roles assigned to the user\nand so cannot satisfy the framework's no-op requirement for plannable\nimports.",
          "is_bot": false,
          "headline": "Expand import tests to cover import {} block forms (#11)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-05-11T13:06:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e911f0e45150689154094d0129b197ebbde92307",
          "body": "The source schemas in the move state functions are only used to parse\nthe prior state during a resource move, not to generate documentation,\nso their attribute descriptions serve no purpose. Drop them to keep\nthe move schemas minimal.",
          "is_bot": false,
          "headline": "Drop attribute descriptions from move state schemas (#10)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-05-11T13:04:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "edcf2d44e65c2e3d8fd700c84eb15a639077dbd5",
          "body": "Reimplement the rubrik_aws_account / polaris_aws_account data source\nusing the Terraform Plugin Framework. The schema, lookup precedence\n(account_id, name, then cloud_account_id) and returned shape are\npreserved, so existing configurations and state continue to work without\nchanges. The polaris_aws_\n[…]\n_account resource and verifies that\nall three lookup keys return the same record, plus a migration test that\nasserts the new framework data source returns identical values to the\nSDKv2 implementation.",
          "is_bot": false,
          "headline": "Migrate aws_account data source to the Plugin Framework (#8)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-05-11T12:26:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a5bb3070f01a9a603fb37dc42fa989c32591c0b5",
          "body": "Add CDM-tagged acceptance tests for the data center archival location\ndata source, along with shared canary and fixture helpers. Document the\nnew cdm build tag and TEST_DATACENTER_FILE requirement in CLAUDE.md.",
          "is_bot": false,
          "headline": "Add CDM data center acceptance tests (#9)",
          "author_name": "Pontus Leitzler",
          "author_login": "leitzler",
          "committed_at": "2026-05-08T09:53:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2cb1a2bd929e17c8e9ad029b59e3957a6cc8457a",
          "body": null,
          "is_bot": false,
          "headline": "Unpin testenv  (#7)",
          "author_name": "Andy Draper",
          "author_login": "Draper1",
          "committed_at": "2026-05-05T11:53:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4a5227ed439d45a145dd4855e437bcc61b23be3e",
          "body": null,
          "is_bot": false,
          "headline": "Update Acceptance Tests to run 6 hours later (#6)",
          "author_name": "Andy Draper",
          "author_login": "Draper1",
          "committed_at": "2026-04-30T12:18:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9325c70ea68dbeb7bfd08ac87889ac21d3fa6215",
          "body": null,
          "is_bot": false,
          "headline": "Update Rubrik Polaris SDK for Go to v1.6.0 (#5)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-04-30T12:12:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f37c2f2b1698c6003b804d3df2e0c2f488d9ad80",
          "body": "Document the v1.7.0 release: the provider rename from rubrikinc/polaris\nto rubrikinc/rubrik, initial Terraform search and moved {} block support\nfor the four Plugin Framework resources, the env var rename to RUBRIK_*,\nthe SLA domain refresh and default fixes.\n\nThe upgrade guide separates users alrea\n[…]\ndeprecation warnings, no state surgery), or switch both and\nuse moved {} blocks for the four supported resources (renames recorded\nin state). Both branches include their own init/plan/apply procedure.",
          "is_bot": false,
          "headline": "Add v1.7.0 changelog and upgrade guide (#3)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-04-30T10:07:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "17bc81db727004d84f9ad2116d00b85aff138ed1",
          "body": "Covers documentation, refactors, dep bumps, CI changes, and other\nnon-code-impact PRs that did not previously have a category to tick.\nThe PR description is expected to clarify what the change actually is.",
          "is_bot": false,
          "headline": "Add Other category to PR template Types of changes (#4)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-04-30T10:05:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "28e5755c2a79feef219502246c973962423a2d26",
          "body": "Rename the ignored binary path in .gitignore from\nterraform-provider-polaris to terraform-provider-rubrik to match the\nrenamed repository and Go module.\n\nRemove the unused .legitignore file.",
          "is_bot": false,
          "headline": "Update .gitignore and remove .legitignore (#2)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-04-29T14:46:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d652ef88ffdae40c5bd31ca41635388eef0d47ce",
          "body": "Update the module path in go.mod and the corresponding import in\nmain.go to match the renamed repository. This is a follow-up to the\nearlier provider rename from polaris to rubrik.",
          "is_bot": false,
          "headline": "Rename Go module to terraform-provider-rubrik (#1)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-04-29T14:26:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bc5813b6f5166400e1acc165da5acd18ba51a41d",
          "body": "Register all resources and data sources with both rubrik and polaris\nprefixes. Implement ResourceWithMoveState for all Plugin Framework\nresources to allow migrating state from polaris resources in\nrubrikinc/polaris to rubrik resources in rubrikinc/rubrik via moved\nblocks. Resources with schema versi\n[…]\nstream\nterraform-plugin-docs with --ignore-deprecated to skip generating\ndocs for deprecated polaris resources.\n\nRename all documentation, examples, descriptions, and templates\nfrom polaris to rubrik.",
          "is_bot": false,
          "headline": "Rename provider from polaris to rubrik",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-04-29T13:08:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8b9dde9070bb3d4f4b646201cba6e9593ca42388",
          "body": "Implement resource identity and list resource for polaris_sso_group,\nenabling Terraform search (terraform query) to discover SSO groups\nin RSC, including groups not managed by Terraform. Supports filtering\nby name and auth domain ID.",
          "is_bot": false,
          "headline": "Add Terraform search support for SSO groups (#438)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-04-28T06:57:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "87d952730a2527dd915c82aa8b4ecbc6fbe90658",
          "body": "Implement resource identity and list resource for polaris_user,\nenabling Terraform search (terraform query) to discover users\nin RSC, including users not managed by Terraform.",
          "is_bot": false,
          "headline": "Add Terraform search support for users (#436)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-04-23T13:55:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0b914277357a9f80e8a27c2c7a69bc2e2bb4a24a",
          "body": "The RSC backend defaults log_archival_method to LOGARCHMETH1 when the\nfield is omitted from the create request. The provider schema had no\nDefault for the field, so state read after a create-without-method\ncontained \"LOGARCHMETH1\" while config still saw it as unset, producing\na permanent drift on the next plan.\n\nMatch the schema Default to the backend default and update the\ndescription and template accordingly.",
          "is_bot": false,
          "headline": "Default db2_config.log_archival_method to LOGARCHMETH1",
          "author_name": "Pontus Leitzler",
          "author_login": "leitzler",
          "committed_at": "2026-04-23T07:21:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a064bc5750d95c9cda3e82f85abed17f8dba5aff",
          "body": "The to*Config helpers for sap_hana_config, db2_config, oracle_config and\ninformix_config skipped writing optional retention unit fields to state\nwhen the matching duration was unset. Because the schema applies a\nDefault of \"DAYS\" to those unit fields, the next plan compared the\nschema default agains\n[…]\n only emit the storage_snapshot_config block when\nits frequency or retention duration is non-zero. The API can return a\nzero-valued nested config which previously surfaced as a phantom block\nin state.",
          "is_bot": false,
          "headline": "Fix drift in SLA object-specific config refresh",
          "author_name": "Pontus Leitzler",
          "author_login": "leitzler",
          "committed_at": "2026-04-23T07:21:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3564b60e69319b186ccadb90bfbb417e9abf0431",
          "body": "Implement resource identity and list resource for polaris_custom_role,\nenabling Terraform search (terraform query) to discover custom roles\nin RSC, including roles not managed by Terraform.\n\nChanges:\n- Add IdentitySchema and identity tracking to custom role CRUD\n- Add list resource with optional name filtering\n- Register ListResources on the framework provider\n- Add acceptance tests for query and name-filtered query",
          "is_bot": false,
          "headline": "Add Terraform search support for custom roles (#434)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-04-22T15:22:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eaafa0b5cb98ee2dad7792724cae5c7c5c9c6570",
          "body": null,
          "is_bot": false,
          "headline": "Bump terraform-plugin-docs to v0.25.0 (#433)",
          "author_name": "Pontus Leitzler",
          "author_login": "leitzler",
          "committed_at": "2026-04-21T07:03:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "da73e4a9d64217e18e82618f85c1d7d8d9123783",
          "body": null,
          "is_bot": false,
          "headline": "Update Go SDK to v1.5.0 (#432)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-04-15T08:44:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d690e247d90f9848e12a6166d3bfe7e7c63e71cd",
          "body": "Add changelog entry and upgrade guide section for the new\nfrequency field in the archival block of the\npolaris_sla_domain resource.",
          "is_bot": false,
          "headline": "Add SLA domain frequency field to v1.6.3 release docs (#431)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-04-15T07:31:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5ae84b286854e6d62bcd36faa80f6ab4ae4f80a7",
          "body": "Add ROLE_CHAINING as a valid feature for the IAM roles workflow resources and\ndata sources. Enforce mutual exclusivity with other features via CustomizeDiff.\n\nAdd role_chaining_account_id field to the account and attachments resources to\nsupport onboarding AWS accounts linked to a role chaining acco\n[…]\nta or the\nROLE_CHAINING_ROLE_ARN artifact for the ROLE_CHAINING feature. Inject a\nsynthetic sts:AssumeRole policy and duplicate the CROSSACCOUNT role ARN as\nROLE_CHAINING during artifact registration.",
          "is_bot": false,
          "headline": "Add AWS role chaining support (#429)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-04-14T20:01:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c1b665303de4e0c7bfaf0a21f5987f9de62bb931",
          "body": "Allow users to override which snapshot frequencies are archived instead\nof always deriving them from the snapshot schedule. When not specified,\nbehavior is unchanged. Also expose effective frequencies as a computed\nfield on the polaris_sla_domain data source.\n\nFixes a typo in the cascading archival docs (MINUTE -> MINUTES).",
          "is_bot": false,
          "headline": "Add frequency field to SLA domain archival block (#430)",
          "author_name": "Pontus Leitzler",
          "author_login": "leitzler",
          "committed_at": "2026-04-14T17:59:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a2c6bda6d1050c47e05a8dc326d8ef1b6d7ef167",
          "body": "… (#427)\n\nThe limit was hardcoded to 14 characters but the backend accepts up to\n16 for SOURCE_REGION (prefix + 8-char UID = 24, Azure's max) and up to\n24 for SPECIFIC_REGION (name used directly). Add a CustomizeDiff to\nenforce the correct limit based on whether storage_account_region is set.",
          "is_bot": false,
          "headline": "Fix storage_account_name_prefix max length in azure archival location…",
          "author_name": "Pontus Leitzler",
          "author_login": "leitzler",
          "committed_at": "2026-04-10T16:00:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7977ee2fb3ff63401924a86a9f43083971a957c6",
          "body": null,
          "is_bot": false,
          "headline": "Add polaris_feature_flag data source (#425)",
          "author_name": "Andy Draper",
          "author_login": "Draper1",
          "committed_at": "2026-04-10T11:33:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "804bc92034fd4544e9366291617546aa6aed0a06",
          "body": "The Terraform Registry flags .json files listed in SHA256SUMS as\ninvalid release assets. By giving the SBOM config a distinct ID\nand filtering the checksum to only include the default archive ID,\nSBOMs are still generated and uploaded as release artifacts but no\nlonger appear in the checksum file.",
          "is_bot": false,
          "headline": "Exclude SBOMs from the SHA256SUMS checksum file (#423)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-04-09T10:56:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "748a3b976d01c5359779b700f33243e113522d2f",
          "body": null,
          "is_bot": false,
          "headline": "Set go.mod in releaser and add dry run release (#422)",
          "author_name": "Andy Draper",
          "author_login": "Draper1",
          "committed_at": "2026-04-08T08:54:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "19c223da80af944f77025c711bbd307b2274672d",
          "body": null,
          "is_bot": false,
          "headline": "Fix MI upgrade to include permission groups and release 1.6.2 (#421)",
          "author_name": "Andy Draper",
          "author_login": "Draper1",
          "committed_at": "2026-04-07T19:07:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "df9cd4a494bef1c94ba65b4616a00f02bc4d5469",
          "body": "The hc-install library used by the test framework intermittently\nfails to download the Terraform binary, causing chmod errors on\nnon-existent files. Avoid this by downloading the latest 1.x\nbinary in the Pre-test stage and pointing TF_ACC_TERRAFORM_PATH\nto it.",
          "is_bot": false,
          "headline": "Pre-download Terraform binary for acceptance tests (#420)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-04-07T11:30:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e1548d25fd5c5d01254207358511d3d1ec958cea",
          "body": "… is enabled (#419)\n\nUpdate the polaris_refresh resource description, examples, and tests to\nrequire the cloud_discovery feature for automatic refresh. When discovery\nonboarding is enabled, automatic refresh only runs for cloud discovery,\nso the cloud_discovery feature must be onboarded alongside\ncloud_native_protection.",
          "is_bot": false,
          "headline": "Require cloud_discovery for polaris_refresh when discovery onboarding…",
          "author_name": "Pontus Leitzler",
          "author_login": "leitzler",
          "committed_at": "2026-04-07T08:26:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4cbc500b0a5eabac3becb553d3ce0305ab8b64cf",
          "body": "…#418)\n\nWhen an SLA domain assignment is deleted, the hierarchy service\nprocesses the unassignment before the SLA domain service updates.\nIf deleteSLADomain runs immediately after, it can fail because\nthe SLA domain still reports assigned objects. Poll the object\ncount every 5s until it reaches zero before attempting the delete,\nbounded by a 10-minute resource timeout.",
          "is_bot": false,
          "headline": "Poll SLA domain object count before delete for eventual consistency (…",
          "author_name": "Pontus Leitzler",
          "author_login": "leitzler",
          "committed_at": "2026-04-02T19:31:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e1aac34f86e8d695d5736d55565e0c4db60d9555",
          "body": "Update all actions in the release workflow to their latest versions:\n- actions/checkout v4.1.1 -> v6.0.2\n- actions/setup-go v5.0.0 -> v6.3.0\n- crazy-max/ghaction-import-gpg v6.1.0 -> v7.0.0\n- anchore/sbom-action/download-syft v0 -> v0.24.0\n- goreleaser/goreleaser-action v5.0.0 -> v7.0.0\n\nAlso disabl\n[…]\nient errors\nfrom the GitHub cache service.\n\nThis resolves the Node.js 20 deprecation warning reported by the\npipeline. Node.js 20 actions will be forced to run with Node.js 24\nstarting June 2nd, 2026.",
          "is_bot": false,
          "headline": "Update GitHub Actions to latest versions (#417)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-04-01T11:46:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1c9429c66786b7ae76894ddca2eaa92ec822aeb3",
          "body": "Move terraform-registry-manifest.json from archives.files to\nrelease.extra_files and checksum.extra_files. This publishes it as\na standalone release artifact instead of bundling it inside every\nplatform ZIP archive, matching the HashiCorp scaffolding template.\n\nThe manifest is renamed to include the project name and version in\nthe release, following the scaffolding convention.",
          "is_bot": false,
          "headline": "Publish registry manifest as standalone release artifact (#416)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-03-31T16:49:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "15bf01e9a0df4db880ba366883e87b5bb4cda7ab",
          "body": null,
          "is_bot": false,
          "headline": "Add CLAUDE.md (#415)",
          "author_name": "Andy Draper",
          "author_login": "Draper1",
          "committed_at": "2026-03-31T16:11:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ef4b0959ff75ce35b56b8bfd8326258bad33c390",
          "body": "Add a v1.6.1 changelog entry noting the re-release due to a\nGoReleaser bug that caused the v1.6.0 release to fail. Update the\nGo SDK dependency to v1.4.0.",
          "is_bot": false,
          "headline": "Add v1.6.1 changelog and update Go SDK to v1.4.0 (#413)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-03-31T14:13:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a17e6a8abcc69ecef79a54d6bcc2b24d83d5cdf1",
          "body": "The framework test fixture functions load config files and create\nresources in RSC before resource.Test() checks TF_ACC. This causes\ntests to fail with errors instead of being skipped when TF_ACC is\nnot set.\n\nAdd the skipIfNotAcceptance helper function and call it from each\nfixture function so that all tests using them are automatically\nskipped without TF_ACC.",
          "is_bot": false,
          "headline": "Skip framework test fixtures when TF_ACC is not set (#414)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-03-31T14:07:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5825b252d57e218708fdb17e14d59bfae822549c",
          "body": "Pin the GoReleaser version in the GitHub Actions release workflow\nand the Jenkinsfile to v2.14.3. Also update the Jenkinsfile to use\nthe goreleaser.com install URL since git.io redirects are frozen.",
          "is_bot": false,
          "headline": "Pin GoReleaser version to v2.14.3 (#412)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-03-31T14:01:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9c1c8eeb7068fa88d611f6edd0910ef1b446b1bc",
          "body": null,
          "is_bot": false,
          "headline": "Skip GCP exocompute acceptance test (#411)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-03-31T08:56:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9b0a728301de16c432a93a75a97fcd70ae568628",
          "body": "* Update v1.6.0 changelog and upgrade guide for release\n\nUpdate the changelog with all changes since v1.5.2 including new\nresources (sso_group, refresh), new data sources (identity_provider,\nsnapshot), AWS role chaining, Azure Cloud Discovery, extended\npolaris_object workload types, and the permission_groups breaking\nchange. Add New Features section to the upgrade guide covering all\nmajor additions with usage examples. Regenerated docs via go generate.",
          "is_bot": false,
          "headline": "Update v1.6.0 changelog and upgrade guide (#410)",
          "author_name": "Andy Draper",
          "author_login": "Draper1",
          "committed_at": "2026-03-30T11:31:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0f71ecde352c91a8cb5aa428b981a25a0e4b216d",
          "body": null,
          "is_bot": false,
          "headline": "Add protection of useast2 in the Azure refresh test (#409)",
          "author_name": "Pontus Leitzler",
          "author_login": "leitzler",
          "committed_at": "2026-03-27T16:29:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d7c0e15cfd11c4364dd019a1ac48ea71b2a99770",
          "body": "The test was skipped due to NISD-587, which has been resolved.",
          "is_bot": false,
          "headline": "Remove skip of GCP exocompute acceptance test (#404)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-03-27T07:57:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c0e1e183291e13aa89189785fe5c4feb73f3059e",
          "body": "Add a new polaris_sso_group resource for creating and managing SSO\ngroups in RSC. Supports full CRUD operations with import via\ngroup_name:identity_provider_id format.",
          "is_bot": false,
          "headline": "Add SSO group resource (#408)",
          "author_name": "Pontus Leitzler",
          "author_login": "leitzler",
          "committed_at": "2026-03-26T15:52:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2b5b9f4aae1cccf0635352e3eeb18a6adf634f73",
          "body": "…S accounts (#399)\n\nAdd the polaris_refresh resource which polls until an account or\nsubscription's inventory refresh in RSC is newer than a given timestamp.\nThis ensures leaf objects like VMs and EC2 instances are discoverable via\npolaris_object after onboarding.\n\nAlso add a retry loop to the polaris_object data source for\nAwsNativeAccount lookups, since newly onboarded accounts may not appear\nin the hierarchy immediately.",
          "is_bot": false,
          "headline": "Add polaris_refresh resource and retry logic to polaris_object for AW…",
          "author_name": "Pontus Leitzler",
          "author_login": "leitzler",
          "committed_at": "2026-03-26T15:41:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "17c0e4b7958fb979a92230f2fc0570476471cf19",
          "body": "…#397)\n\nAdd support for AwsNativeEbsVolume, AwsNativeEc2Instance, AwsNativeRdsInstance,\nand AzureNativeVirtualMachine to the polaris_object data source. Workload-level\ntypes use server-side IS_RELIC/IS_GHOST/IS_ACTIVE/IS_ARCHIVED filters to exclude\ninactive objects, in contrast to container-level ty\n[…]\nspect RSC feature status on the returned results.\n\nAdd an acceptance test for AzureNativeVirtualMachine that looks up a pre-existing\nVM by name, and update the docs to list all supported object types.",
          "is_bot": false,
          "headline": "Extend polaris_object data source with AWS and Azure workload types (…",
          "author_name": "Pontus Leitzler",
          "author_login": "leitzler",
          "committed_at": "2026-03-26T15:37:53Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1e019c2590d5352fe51baefb9b8b64cab964e7ba",
          "body": null,
          "is_bot": false,
          "headline": "Support AWS PGs for Escalation Policies (#407)",
          "author_name": "Andy Draper",
          "author_login": "Draper1",
          "committed_at": "2026-03-26T13:27:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cb421898a57afee633471b5623fcf6755730ecf6",
          "body": "Add a new polaris_identity_provider data source for looking up identity\nproviders configured in RSC by ID or name. Update the Go SDK dependency\nto a version that includes the identity provider API.",
          "is_bot": false,
          "headline": "Add identity provider data source (#405)",
          "author_name": "Pontus Leitzler",
          "author_login": "leitzler",
          "committed_at": "2026-03-26T09:21:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cdf77f94fb5ccf279e87007faeb7ef91052356d2",
          "body": "Add the role_chaining_account_id attribute which allows referencing\nthe RSC cloud account ID of an account with the Role Chaining feature\nenabled. This enables cross-account role chaining for onboarded AWS\naccounts.",
          "is_bot": false,
          "headline": "Add cross-account role chaining support to AWS account resource (#403)",
          "author_name": "Pontus Leitzler",
          "author_login": "leitzler",
          "committed_at": "2026-03-25T14:20:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "47ea83a9f4d9046b700cd46f7190f836d0c2a51b",
          "body": "The Role Chaining feature enables cross-account role chaining for AWS\naccounts. It is mutually exclusive with all other features.",
          "is_bot": false,
          "headline": "Add Role Chaining feature to AWS account resource (#401)",
          "author_name": "Pontus Leitzler",
          "author_login": "leitzler",
          "committed_at": "2026-03-24T12:20:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "29bb601fa2d0d01e357a864918b2ed7f537b3a5d",
          "body": "The permission_groups field was optional in the cloud_native_protection\nand exocompute blocks for backwards compatibility with older\nconfigurations that predated the field. This inconsistency is now\naddressed by making the field required in all feature blocks.",
          "is_bot": false,
          "headline": "Make permission_groups required in all AWS account feature blocks (#402)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-03-24T08:57:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "79ef8a411cc4fc3bb14ec3e829ac289bb080e036",
          "body": null,
          "is_bot": false,
          "headline": "Add SBOM generation to the goreleaser config (#400)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-03-20T15:13:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f02a048fdf9527b18f217ee3be6b557098fa2bc3",
          "body": "Introduce a Framework provider and mux it with the existing SDKv2\nprovider using tf6muxserver. Migrate the following resources and\ntests:\n\n * polaris_custom_role\n * polaris_role\n * polaris_role_assignment\n * polaris_role_template\n * polaris_sso_group\n * polaris_user",
          "is_bot": false,
          "headline": "Migrate role resources to the Terraform Framework (#393)",
          "author_name": "Johan Andersson",
          "author_login": "johan3141592",
          "committed_at": "2026-03-20T13:58:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b0c85f17673ef862b3f777cf855d97941771e980",
          "body": null,
          "is_bot": false,
          "headline": "Update Go SDK version (#398)",
          "author_name": "Pontus Leitzler",
          "author_login": "leitzler",
          "committed_at": "2026-03-20T08:48:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0b0fe484f91e0511690645d5f1d2b117eda54b18",
          "body": "Add a new data source that looks up the closest snapshot to a given\npoint in time for a workload object using the hierarchy package's\nClosestSnapshot API. Exactly one of before_time or after_time must\nbe specified. Quarantined and anomalous snapshots are excluded by\ndefault.",
          "is_bot": false,
          "headline": "Add polaris_snapshot data source (#395)",
          "author_name": "Pontus Leitzler",
          "author_login": "leitzler",
          "committed_at": "2026-03-18T09:36:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1dc6ddcf47b9b2953e0274e11779fb049f1439b6",
          "body": null,
          "is_bot": false,
          "headline": "Skip TestAccPolarisGCPExocompute_basic due to NISD-587 (#396)",
          "author_name": "Pontus Leitzler",
          "author_login": "leitzler",
          "committed_at": "2026-03-16T22:14:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "57673f6a991f1667031517b69415eb7ce21961b6",
          "body": null,
          "is_bot": false,
          "headline": "Add Azure Cloud Discovery Support (#390)",
          "author_name": "Andy Draper",
          "author_login": "Draper1",
          "committed_at": "2026-03-12T14:02:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "892668c3c9fdcdca0a94b19e23a5c6e7720a7322",
          "body": null,
          "is_bot": false,
          "headline": "Add v1.5.2 changelog entry (#392)",
          "author_name": "Pontus Leitzler",
          "author_login": "leitzler",
          "committed_at": "2026-03-06T10:19:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6ad99ba6d30f253dd3e0fa8bfe4653a850f18c77",
          "body": "Adds support for the AzureStorageAccountNetworkAccess field on the\npolaris_azure_archival_location resource and data source.\n\nThe field is optional and computed on the resource, allowing RSC to\ndecide the default when omitted. Possible values are PRIVATE, PUBLIC\nand SELECTED_NETWORKS.",
          "is_bot": false,
          "headline": "Add network_access_type to polaris_azure_archival_location (#391)",
          "author_name": "Pontus Leitzler",
          "author_login": "leitzler",
          "committed_at": "2026-03-06T09:59:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0eae138212252a20feb5eb00122d7e19627085bc",
          "body": null,
          "is_bot": false,
          "headline": "Add v1.5.1 changelog entry (#389)",
          "author_name": "Pontus Leitzler",
          "author_login": "leitzler",
          "committed_at": "2026-03-05T12:15:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e91df4f271d8218edbd6690e47bfbec0f4e85398",
          "body": "Add the entra_group_id attribute to the polaris_azure_subscription\nresource, allowing users to configure the Entra ID group used for\nAKS cluster authentication. The field is tenant-scoped and shared\nacross all subscriptions in the same tenant.\n\nAdd acceptance test for setting and updating entra_group_id.",
          "is_bot": false,
          "headline": "Add entra_group_id support to polaris_azure_subscription (#383)",
          "author_name": "Pontus Leitzler",
          "author_login": "leitzler",
          "committed_at": "2026-03-05T09:26:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 5,
      "commits_last_year": 174,
      "latest_release_at": "2026-07-20T15:31:42Z",
      "latest_release_tag": "v1.9.0",
      "releases_from_tags": false,
      "days_since_last_push": 2,
      "active_weeks_last_year": 41,
      "days_since_latest_release": 9,
      "mean_days_between_releases": 20.3
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 75,
      "has_issue_template": false,
      "has_code_of_conduct": true,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": [
        {
          "name": "github.com/rubrikinc/terraform-provider-rubrik",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "go",
          "matches_repo": true,
          "registry_url": "https://pkg.go.dev/github.com/rubrikinc/terraform-provider-rubrik",
          "is_deprecated": false,
          "latest_version": "v1.9.0",
          "repository_url": "https://github.com/rubrikinc/terraform-provider-rubrik",
          "versions_count": 8,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-20T11:29:18Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 9
        }
      ]
    },
    "popularity": {
      "forks": 1,
      "stars": 2,
      "watchers": 1,
      "fork_history": {
        "days": [
          {
            "date": "2026-07-26",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 1,
        "total_forks": 1
      },
      "star_history": null,
      "open_issues_and_prs": 4
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "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": 145410,
      "source_files_sampled": 181,
      "oversized_source_files": 2,
      "agent_instruction_files": [
        ".claude/CLAUDE.md"
      ],
      "agent_instruction_max_bytes": 6502
    },
    "dependencies": {
      "manifests": [
        "go.mod"
      ],
      "advisories": {
        "error": null,
        "scope": null,
        "source": null,
        "findings": [],
        "collected": false,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 0,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "go"
      ],
      "dependencies": [
        {
          "name": "github.com/aws/aws-sdk-go-v2",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.3.0"
        },
        {
          "name": "github.com/google/uuid",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.6.0"
        },
        {
          "name": "github.com/hashicorp/go-cty",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.5.0"
        },
        {
          "name": "github.com/hashicorp/terraform-plugin-docs",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.25.0"
        },
        {
          "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-go",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.30.0"
        },
        {
          "name": "github.com/hashicorp/terraform-plugin-log",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.10.0"
        },
        {
          "name": "github.com/hashicorp/terraform-plugin-mux",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.22.0"
        },
        {
          "name": "github.com/hashicorp/terraform-plugin-sdk/v2",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v2.38.1"
        },
        {
          "name": "github.com/hashicorp/terraform-plugin-testing",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.14.0"
        },
        {
          "name": "github.com/rubrikinc/rubrik-polaris-sdk-for-go",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.9.2-0.20260727082920-8ad1fa7f85f1"
        }
      ],
      "all_dependencies": {
        "error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
        "source": null,
        "packages": [],
        "collected": false,
        "truncated": false,
        "total_count": null,
        "direct_count": null,
        "indirect_count": null
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 3,
        "merged_prs": 53,
        "open_issues": 1,
        "closed_ratio": 0.5,
        "closed_issues": 1,
        "closed_unmerged_prs": 0
      },
      "bus_factor": 1,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "johan3141592",
          "commits": 173,
          "avatar_url": "https://avatars.githubusercontent.com/u/79966026?v=4"
        },
        {
          "type": "User",
          "login": "leitzler",
          "commits": 68,
          "avatar_url": "https://avatars.githubusercontent.com/u/3111805?v=4"
        },
        {
          "type": "User",
          "login": "Draper1",
          "commits": 47,
          "avatar_url": "https://avatars.githubusercontent.com/u/6471505?v=4"
        },
        {
          "type": "User",
          "login": "JWilkinsonMB",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/107036391?v=4"
        }
      ],
      "contributors_sampled": 4,
      "top_contributor_share": 0.599
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "release-dry-run.yml",
        "release.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": 6,
            "reason": "project has 2 contributing companies or organizations -- score normalized to 6",
            "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": 10,
            "reason": "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 2 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": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "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": "ad62630d02cfa04d646c8b0b03708cb296dfeb84",
        "ran_at": "2026-07-29T18:02:35Z",
        "aggregate_score": 5.9,
        "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-27T09:30:50Z",
      "oldest_open_prs": [
        {
          "number": 18,
          "created_at": "2026-05-21T11:25:40Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 35,
          "created_at": "2026-06-15T13:08:24Z",
          "last_comment_at": "2026-06-15T13:09:16Z",
          "last_comment_author": "endorlabs"
        },
        {
          "number": 57,
          "created_at": "2026-07-23T10:51:07Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-07-27T09:30:07Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 33,
          "created_at": "2026-06-12T09:36:11Z",
          "last_comment_at": "2026-06-24T13:21:07Z",
          "last_comment_author": "Draper1"
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/rubrikinc/terraform-provider-rubrik",
    "host": "github.com",
    "name": "terraform-provider-rubrik",
    "owner": "rubrikinc"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "good",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 70,
      "inputs": {
        "security": 59,
        "vitality": 94,
        "community": 43,
        "governance": 66,
        "engineering": 80
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 94,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 92,
            "inputs": {
              "commits_last_year": 174,
              "human_commit_share": 1,
              "days_since_last_push": 2,
              "active_weeks_last_year": 41
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 2 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 2
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "41/52 weeks with commits",
                "points": 28.4,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 41
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "174 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 174
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 98,
            "inputs": {
              "releases_count": 5,
              "latest_release_tag": "v1.9.0",
              "releases_from_tags": false,
              "days_since_latest_release": 9,
              "mean_days_between_releases": 20.3
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "5 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 5
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 9 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 9
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~20.3 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 20.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": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "unverified",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": "repository_too_young",
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": null,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "maintenance record not established from the collected data",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_unverified",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "at_risk",
        "name": "Community & Adoption",
        "value": 43,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 1,
            "inputs": {
              "forks": 1,
              "stars": 2,
              "watchers": 1,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "2 stars",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "1 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "1 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "excellent",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 92,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": true,
              "has_pull_request_template": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "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": 13.5,
                "status": "met",
                "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": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 66,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 29,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 4,
              "top_contributor_share": 0.599
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 60% of commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 60
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "4 contributors",
                "points": 5.4,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 4
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 2 contributing companies or organizations -- score normalized to 6",
                "points": 6,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 77,
            "inputs": {
              "merged_prs": 53,
              "open_issues": 1,
              "closed_issues": 1,
              "issue_closed_ratio": 0.5,
              "closed_unmerged_prs": 0
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "50% of issues closed",
                "points": 23.4,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 50
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "53/53 decided PRs merged",
                "points": 38.2,
                "status": "met",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 53,
                      "decided": 53
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "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": 71,
            "inputs": {
              "followers": 175,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "rubrikinc",
              "public_repos": 134,
              "account_age_days": 4048
            },
            "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": "175 followers of rubrikinc",
                "points": 16.1,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 175,
                      "login": "rubrikinc"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "134 public repos, account ~11 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 134
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 11
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "github.com/rubrikinc/terraform-provider-rubrik"
              ],
              "ecosystems": "go",
              "any_deprecated": false,
              "min_days_since_publish": 9
            },
            "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 9 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 9
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "8 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 8
                    }
                  }
                ],
                "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": 80,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "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": 100,
            "inputs": {
              "topics": [
                "terraform",
                "terraform-provider"
              ],
              "has_wiki": true,
              "homepage": "https://registry.terraform.io/providers/rubrikinc",
              "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://registry.terraform.io/providers/rubrikinc",
                "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": "2 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 59,
        "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": 59,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 17,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 1,
              "scorecard_aggregate": 5.9
            },
            "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 2 contributing companies or organizations -- score normalized to 6",
                "points": 1.5,
                "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": "update tool detected",
                "points": 7.5,
                "status": "met",
                "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 2 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 0",
                "points": 0,
                "status": "missed",
                "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": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "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"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 8
            },
            "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": 71,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 1,
              "agent_instruction_files": [
                ".claude/CLAUDE.md"
              ],
              "agent_instruction_max_bytes": 6502
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": ".claude/CLAUDE.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".claude/CLAUDE.md"
                    }
                  }
                ],
                "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": "100 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 100,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 61,
            "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,
              "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": "no agent-authored commits among the last 100",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "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": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 99,
            "inputs": {
              "primary_language": "Go",
              "largest_source_bytes": 145410,
              "source_files_sampled": 181,
              "oversized_source_files": 2
            },
            "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": "2/181 source files over 60KB",
                "points": 54.4,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 181,
                      "oversized": 2
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "at_risk",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": false,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
    "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-29T18:02:56.003646Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/r/rubrikinc/terraform-provider-rubrik.svg",
  "full_name": "rubrikinc/terraform-provider-rubrik",
  "license_state": "standard",
  "license_spdx": "MIT"
}

Las puntuaciones son señales, no garantías. Reflejan prácticas públicamente visibles en GitHub; no son una auditoría de código ni una garantía de seguridad.

Los datos ausentes se excluyen y los pesos se renormalizan; nunca se puntúan como cero. La metodología es versionada y abierta: métricas v1.13.0, esquema v0.27.0 — metodología completa · wiki de métricas.

Cómo se sitúa un resultado dentro del registro general: estadísticas agregadasGo.