Improvement/artesca 17187 rubrik assistant#1122
Improvement/artesca 17187 rubrik assistant#1122damiengillesscality wants to merge 5 commits intodevelopment/4from
Conversation
…latforms without immutability Platforms using disableImmutability: true (e.g. Rubrik) do not declare enableImmutableBackup in their Joi validator. Including the field in the base form defaults caused Joi to reject it as an unknown key, keeping isValid: false and preventing the Continue button from being enabled. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Hello damiengillesscality,My role is to assist you with the merge of this Available options
Available commands
Status report is not available. |
Waiting for approvalThe following approvals are needed before I can proceed with the merge:
Peer approvals must include at least 1 approval from the following list: |
Review by Claude Code |
In the Assistant logic, we are trying to display the information in the summary tab in the same order that the user will need them to fill in the ISV application configuration. For instance, access key, secret key at the proper moment. You can see it on the screenshot. |
…y update logic The shared useCreateOrAddBucketToPolicyMutation fingerprints the main statement by checking for all defaultActions. Rubrik's original policy was missing GetBucketVersioning and GetBucketObjectLockConfiguration, so statementIndex always returned -1, causing duplicate statements to be appended on each re-run instead of updating the resource list. Additionally, the code pushed Statement[1] of the new policy to add the ListAllMyBuckets statement — but Rubrik's original single-statement policy had no Statement[1], resulting in null being serialized into the policy document and a MalformedPolicyDocument error from IAM. Fix: restructure GET_RUBRIK_POLICY to match the two-statement pattern (bucket-scoped actions + wildcard ListBucket statement) used by all other platforms, and include defaultActions so fingerprinting works. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
| id: 'rsaKey', | ||
| render: () => ( | ||
| <Stack gap="r8" direction="vertical" style={{ paddingTop: spacing.r8 }}> | ||
| <Text> |
There was a problem hiding this comment.
Inline style usage — other platform files use styled-components for layout. Consider using a styled component or the spacing utilities from core-ui instead of inline style={{ paddingTop: spacing.r8 }}.
— Claude Code
| }, | ||
| { | ||
| Sid: 'RubrikListBuckets', | ||
| Effect: 'Allow', |
There was a problem hiding this comment.
The Resource for ListBucket is set to *, but s3:ListBucket operates on a specific bucket (unlike s3:ListAllMyBuckets which is account-level). Best practice is to scope s3:ListBucket to the actual bucket ARNs and keep only s3:ListAllMyBuckets on *. This follows the principle of least privilege.
— Claude Code
| 's3:GetBucketVersioning', | ||
| 's3:GetBucketObjectLockConfiguration', | ||
| // Rubrik-specific actions | ||
| 's3:AbortMultipartUpload', |
There was a problem hiding this comment.
s3:CreateBucket is included in the Rubrik-specific actions, but the ISV assistant already creates the bucket on behalf of the user. Granting CreateBucket in the IAM policy means the Rubrik agent could create additional buckets beyond what was configured. Verify whether Rubrik CDM actually needs this permission, or if it can be removed to tighten the policy scope.
— Claude Code
Review by Claude Code |





Summary ARTESCA-17187
disableImmutabilityflag inPlatformConfigto cleanly support platforms that do not use S3 Object Lock<prefix>-rubrik-0), RSA key generation instructions, and the note to select "Amazon S3 compatible" (not "Scality") in Rubrik CDMChanges
engine/types.ts—disableImmutability?: booleanadded toPlatformConfig;'rubrik'moved to assisted platforms inISVIdengine/builders/buildFields.ts— immutability toggle conditionally skippedengine/definePlatform.ts—immutableValidatorconditionally excludedutils/ISVPolicy.ts—GET_RUBRIK_POLICYwith Rubrik-specific S3 actionsengine/validators.ts+engine/index.ts—RubrikValidator(no immutability)components/shared/PlatformTooltips.tsx—'Rubrik'added toPlatformNametypeplatforms/rubrik.tsx— new platform definitionplatforms/registry.ts—RubrikPlatformregisteredISVList.tsx— docs-only Rubrik entry removedplatforms/__tests__/rubrik.test.tsx— 13 new tests (validator + policy)