Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(spyglass/lenses) allow configuration sandbox permissions #296

Conversation

norrs
Copy link
Contributor

@norrs norrs commented Oct 10, 2024

This provides the ability to configure iframe sandbox permissions pr lense. This allows the operator of the prow installation to define which permissions it trust to each lense.

PR comes from the ideas and discussions in
#294

This provides the ability to configure iframe sandbox permissions pr lense.
This allows the operator of the prow installation to define which permissions
it trust to each lense.

PR comes from the ideas and discussions in
kubernetes-sigs#294

Signed-off-by: Roy Sindre Norangshol <[email protected]>
@k8s-ci-robot k8s-ci-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Oct 10, 2024
@k8s-ci-robot
Copy link
Contributor

Hi @norrs. Thanks for your PR.

I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@k8s-ci-robot k8s-ci-robot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Oct 10, 2024
Copy link

netlify bot commented Oct 10, 2024

Deploy Preview for k8s-prow ready!

Name Link
🔨 Latest commit 44d0098
🔍 Latest deploy log https://app.netlify.com/sites/k8s-prow/deploys/6793b7caaddc96000822fab9
😎 Deploy Preview https://deploy-preview-296--k8s-prow.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

Comment on lines +26 to +29
iframe_sandbox_permissions:
- allow-scripts
- allow-popups
- allow-popups-to-escape-sandbox
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated this as it looked like a sane idea to do if this is supposed to demostrate a full configuration file example.

Comment on lines +103 to +111
var defaultSandboxPermissions = strings.Join(
[]string{
"allow-scripts",
"allow-top-navigation",
"allow-popups",
"allow-same-origin",
},
" ",
)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is defaultSandboxPermissions for the parsedConfig, tho I personally like to work with arrays instead of strings with foo bar zar.

Not sure if you prefer this or the allow-scripts allow-top-navigation allow-popups allow-same-origin instead.

Please let me know, I'll update if you want to change it.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion is to do another PR after this to adjust the defaults to not combine allow-same-origin together with allow-scripts, but I suppose this needs to be communicated to the users of the prow installation, so they are aware of the ability to configure this pr lense.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Arrays sound reasonable to me, and I think it's easier to catch differences.

And that sounds good to me.

@michelle192837
Copy link
Contributor

/ok-to-test

@k8s-ci-robot k8s-ci-robot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Oct 29, 2024
@ghost ghost mentioned this pull request Nov 2, 2024
@norrs
Copy link
Contributor Author

norrs commented Nov 18, 2024

Do you need anything more from me on this?

@norrs
Copy link
Contributor Author

norrs commented Jan 9, 2025

Closed #294 in favor of this PR.
Please note that the referred PR has the background for why this PR was created in the first place.

Doing a ping/cc here from the people who were active in 294 ( @michelle192837 @smg247 @BenTheElder . )

Would be nice if we could get this in? 🙏

@michelle192837
Copy link
Contributor

Thanks for the ping and apologies for the delay, this dropped off my radar ><

I'll review today!

Copy link
Contributor

@michelle192837 michelle192837 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM aside from a minor nit.

Comment on lines +103 to +111
var defaultSandboxPermissions = strings.Join(
[]string{
"allow-scripts",
"allow-top-navigation",
"allow-popups",
"allow-same-origin",
},
" ",
)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Arrays sound reasonable to me, and I think it's easier to catch differences.

And that sounds good to me.

@@ -61,6 +62,14 @@ func TestGetConfig(t *testing.T) {
}
return d
}(),
}, {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: Add test case verifying what the iframe permissions are if none are specified.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added test @michelle192837 , good nit 👍

@norrs norrs force-pushed the norrs/spyglass/allow-configuration-of-sandbox-permissions-per-lense branch from fe2591e to 1cd2aad Compare January 24, 2025 15:40
if providing sandbox iframe sandbox permissions configuration which is empty,
it should provide no prvileges for the sandbox and not fall back to the
defaults.

if you want defaults, you should not configure the iframe.sandbox_permissions.

Signed-off-by: Roy Sindre Norangshol <[email protected]>
@norrs norrs force-pushed the norrs/spyglass/allow-configuration-of-sandbox-permissions-per-lense branch from 1cd2aad to 44d0098 Compare January 24, 2025 15:54
@norrs norrs requested a review from michelle192837 January 24, 2025 16:11
Copy link
Contributor

@michelle192837 michelle192837 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Neat, thanks again for the changes!

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jan 30, 2025
@norrs
Copy link
Contributor Author

norrs commented Jan 31, 2025

Seems like we need an approval from cmd/checkconfig/OWNERS: @chases2 , @stevekuznetsov or @cjwagner

@michelle192837
Copy link
Contributor

Those folks are no longer working on Prow unfortunately. I think this should get approval from someone in https://github.com/kubernetes-sigs/prow/blob/main/OWNERS until that OWNERS file is fixed.

(Pulling randomly) @petr-muller or @matthyx ?

Copy link
Contributor

@matthyx matthyx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: matthyx, michelle192837, norrs

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. lgtm "Looks good to me", indicates that a PR is ready to be merged. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants