1"use strict";(self.webpackChunkopa_website=self.webpackChunkopa_website||[]).push([[19652],{21960:(e,t,n)=>{n.d(t,{A:()=>i});const i=n.p+"assets/images/4-c1126feebaba9416618fc7c91895f349.jpeg"},28453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>l});var i=n(96540);const s={},o=i.createContext(s);function a(e){const t=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),i.createElement(o.Provider,{value:t},e.children)}},45454:e=>{e.exports=JSON.parse('{"permalink":"/blog/the-opa-monthly-newsletter-448a995a1f5e","source":"@site/blog/2021-12-01-the-opa-monthly-newsletter-448a995a1f5e.md","title":"OPA Newsletter: November 2021","description":"November Edition","date":"2021-12-01T00:00:00.000Z","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Peter O\'Neill","page":{"permalink":"/blog/authors/peteroneilljr"},"imageURL":"/img/blog/authors/peteroneilljr.png","key":"peteroneilljr"}],"frontMatter":{"title":"OPA Newsletter: November 2021","sidebar_label":"November Newsletter","authors":["peteroneilljr"],"date":"2021-12-01T00:00:00.000Z","slug":"the-opa-monthly-newsletter-448a995a1f5e"},"unlisted":false,"prevItem":{"title":"Open Policy Agent 2022 User Survey Summary","permalink":"/blog/open-policy-agent-2022-user-survey-summary-370cf0243bb7"},"nextItem":{"title":"Introducing the OPA print function","permalink":"/blog/introducing-the-opa-print-function-809da6a13aee"}}')},65247:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>h});var i=n(45454),s=n(74848),o=n(28453);const a={title:"OPA Newsletter: November 2021",sidebar_label:"November Newsletter",authors:["peteroneilljr"],date:new Date("2021-12-01T00:00:00.000Z"),slug:"the-opa-monthly-newsletter-448a995a1f5e"},l=void 0,r={authorsImageUrls:[void 0]},h=[{value:"Intro",id:"intro",level:2},{value:"Slack Updates",id:"slack-updates",level:2},{value:"News Highlights",id:"news-highlights",level:2},{value:"GitHub Updates",id:"github-updates",level:2},{value:"Twitter Highlights",id:"twitter-highlights",level:2},{value:"Ecosystem Updates",id:"ecosystem-updates",level:2},{value:"OPA Release v0.35.0",id:"opa-release-v0350",level:3},{value:"OPA Release v0.34.0",id:"opa-release-v0340",level:3},{value:"Gatekeeper Release v3.7.0",id:"gatekeeper-release-v370",level:3},{value:"Conftest Release v0.28.3",id:"conftest-release-v0283",level:3},{value:"Kube-mgmt Release v3.1.0",id:"kube-mgmt-release-v310",level:3},{value:"Community Spotlights",id:"community-spotlights",level:2},{value:"What happened this month?",id:"what-happened-this-month",level:2},{value:"What's coming up next month?",id:"whats-coming-up-next-month",level:2},{value:"OPA Bi-Weekly",id:"opa-bi-weekly",level:3},{value:"Gatekeeper Weekly",id:"gatekeeper-weekly",level:3},{value:"Let us know how we did",id:"let-us-know-how-we-did",level:2}];function c(e){const t={a:"a",em:"em",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.p,{children:(0,s.jsx)(t.em,{children:"November Edition"})}),"\n",(0,s.jsx)(t.h2,{id:"intro",children:"Intro"}),"\n",(0,s.jsx)(t.p,{children:"Hello everyone and welcome to the very first edition of the OPA Monthly Newsletter! We are excited to bring you all the happenings in the OPA ecosystem. You can expect to find a bit of everything in this newsletter, some community updates, a bit of contributor news, a handful of release notes, and any interesting content we've found on the internet this month."}),"\n",(0,s.jsx)(t.h2,{id:"slack-updates",children:"Slack Updates"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"OPA Slack community member growth screenshot",src:n(69353).A+"",width:"800",height:"800"})}),"\n",(0,s.jsxs)(t.p,{children:["Our Slack Org now hosts over 5,150 OPA community members!! The OPA team has been hard at work revamping the space to make it functional and valuable for all of our members. A little while ago you may remember we announced a ",(0,s.jsx)(t.a,{href:"/blog/opa-slack-tune-up-b3c52492e2fc",children:"Slack Reorg"})," to consolidate and update channel names and descriptions. This effort was to give everyone a clear understanding of what's going on and where to go."]}),"\n",(0,s.jsxs)(t.p,{children:["To continue to improve the Slack experience for our members we've added 2 new channels. For everyone interested in contributing to the OPA project you can now hang out in the ",(0,s.jsx)(t.a,{href:"https://openpolicyagent.slack.com/archives/C02L1TLPN59",children:"#development"})," channel to speak directly with other contributors and maintainers."]}),"\n",(0,s.jsxs)(t.p,{children:["We've also added a ",(0,s.jsx)(t.a,{href:"https://openpolicyagent.slack.com/archives/C02J6LBL6GH",children:"#vendor"})," channel to allow members to reach out directly to our rich ecosystem of vendors that are building products on top of OPA. Jump into the channel today and ask questions about how to improve your OPA management."]}),"\n",(0,s.jsx)(t.h2,{id:"news-highlights",children:"News Highlights"}),"\n",(0,s.jsxs)(t.p,{children:["One of our community members @boranx shared with the community that Conftest has made it into the ",(0,s.jsx)(t.a,{href:"https://www.thoughtworks.com/radar/tools/conftest",children:"Technology Radar b
1y ThoughtWorks"})]}),"\n",(0,s.jsx)(t.h2,{id:"github-updates",children:"GitHub Updates"}),"\n",(0,s.jsx)(t.p,{children:"The OPA project wouldn't be the same without all of the contributions from the community. As such we would like to send a big thank you to all of the contributors from the v0.34 release."}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Edward Paget has contributed (",(0,s.jsx)(t.a,{href:"https://github.com/open-policy-agent/opa/issues/3826",children:"#3826"})," SDK Feat) & (",(0,s.jsx)(t.a,{href:"https://github.com/open-policy-agent/opa/issues/3863",children:"#3863"})," Bundles Fix)"]}),"\n",(0,s.jsxs)(t.li,{children:["Kirk Patton a long time contributor added (",(0,s.jsx)(t.a,{href:"https://github.com/open-policy-agent/opa/issues/3773",children:"#3773"})," Fix for exit statuses)"]}),"\n",(0,s.jsxs)(t.li,{children:["GitHub User ",(0,s.jsx)(t.a,{href:"https://github.com/0xAP",children:"@0xAP"})," first time contributor added (",(0,s.jsx)(t.a,{href:"https://github.com/open-policy-agent/opa/issues/3860",children:"#3860"})," Bundles improvement)"]}),"\n",(0,s.jsxs)(t.li,{children:["Andreas Brehmer first time contributor added (",(0,s.jsx)(t.a,{href:"https://github.com/open-policy-agent/opa/issues/3836",children:"#3836"})," Fmt fix)"]}),"\n",(0,s.jsxs)(t.li,{children:["Florian Gasc first time contributor added (",(0,s.jsx)(t.a,{href:"https://github.com/open-policy-agent/opa/issues/3879",children:"#3879"})," Storage fix)"]}),"\n",(0,s.jsxs)(t.li,{children:["Omolola Olamide has landed (",(0,s.jsx)(t.a,{href:"https://github.com/open-policy-agent/opa/issues/3910",children:"#3910"})," Tutorial Updates)"]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"twitter-highlights",children:"Twitter Highlights"}),"\n",(0,s.jsx)(t.p,{children:"For those not active on Twitter, we've collected some of the highlights and OPA shoutouts here:"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.a,{href:"https://twitter.com/that_tech_tea/status/1451930146835861504",children:"https://twitter.com/that_tech_tea/status/1451930146835861504"})}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"Screenshot of that_tech_tea tweet mentioning OPA",src:n(66877).A+"",width:"1284",height:"1006"})}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.a,{href:"https://twitter.com/nusairat/status/1458815340985520130",children:"https://twitter.com/nusairat/status/1458815340985520130"})}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"Screenshot of nusairat tweet mentioning OPA",src:n(21960).A+"",width:"1284",height:"862"})}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.a,{href:"https://twitter.com/nmeisenzahl/status/1458419364433117184",children:"https://twitter.com/nmeisenzahl/status/1458419364433117184"})}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"Screenshot of nmeisenzahl tweet sharing OPA slides",src:n(68831).A+"",width:"1284",height:"1006"})}),"\n",(0,s.jsxs)(t.p,{children:["Check out the slides and demos that ",(0,s.jsx)(t.a,{href:"https://twitter.com/nmeisenzahl",children:"Nico Meisenzahl"})," created:"]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://www.slideshare.net/nmeisenzahl/continuous-lifecycle-enhance-your-compliance-and-governance-with-policybased-cicd",children:"enhance-your-compliance-and-governance-with-policy-based-cicd"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://gitlab.com/nico-meisenzahl/demo-opa-terraform-validation",children:"demo-opa-terraform-validation"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://github.com/nmeisenzahl/demo-opa-cicd-validation",children:"demo-opa-cicd-validation"})}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"ecosystem-updates",children:"Ecosystem Updates"}),"\n",(0,s.jsx)(t.p,{children:"The OPA Project is always changing, check out the latest updates and features for OPA and some of the sub-projects."}),"\n",(0,s.jsx)(t.h3,{id:"opa-release-v0350",children:(0,s.jsx)(t.a,{href:"https://github.com/open-policy-agent/opa/releases/tag/v0.35.0",children:"OPA Release v0.35.0"})}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Early Exit Optimization improves performance in many policy types"}),"\n",(0,s.jsx)(t.li,{children:"New net.lookup_ip_addr built-in function to resolve host IP addresses"}),"\n",(0,s.jsx)(t.li,{children:"Massive performance improvement in decision logging compression"}),"\n"]}),"\n",(0,s.jsx)(t.h3,{id:"opa-release-v0340",children:(0,s.jsx)(t.a,{href:"https://github.com/open-policy-agent/opa/releases/tag/v0.34.0",children:"OPA Release v0.34.0"})}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"A new in operator for checking membership and for iteration"}),"\n",(0,s.jsxs)(t.li,{children:["New ",(0,s.jsx)(t.a,{href:"/blog/introducing-the-opa-print-function-809da6a13aee",children:"print"})," function for debugging"]}),"\n",(0,s.jsxs)(t.li,{children:["New opa inspect command for quickly checking contents of a ",(0,s.jsx)(t.a,{href:"https://www.openpolicyagent.org/docs/latest/management-bundles/",children:"bundle"})]}),"\n"]}),"\n",(0,s.jsx)(t.h3,{id:"gatekeeper-release-v370",children:(0,s.jsx)(t.a,{href:"https://github.com/open-policy-agent/gatekeeper/releases/tag/v3.7.0",children:"Gatekeeper Release v3.7.0"})}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Mutation has graduated to Beta! \ud83c\udf89"}),"\n",(0,s.jsx)(t.li,{children:"Added ModifySet mutator \ud83d\udcd0"}),"\n"]}),"\n",(0,s.jsx)(t.h3,{id:"conftest-release-v0283",children:(0,s.jsx)(t.a,{href:"https://github.com/open-policy-agent/conftest/releases/tag/v0.28.3",children:"Conftest Release v0.28.3"})}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["The OPA ",(0,s.jsx)(t.a,{href:"/blog/introducing-the-opa-print-function-809da6a13aee",children:"print"})," function is now supported in Conftest!"]}
1),"\n"]}),"\n",(0,s.jsx)(t.h3,{id:"kube-mgmt-release-v310",children:(0,s.jsx)(t.a,{href:"https://github.com/open-policy-agent/kube-mgmt/releases/tag/3.1.0",children:"Kube-mgmt Release v3.1.0"})}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Support extra environment variables in opa and kube-mgmt containers"}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"community-spotlights",children:"Community Spotlights"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"Developer-Guy community spotlight for Cosign OPA integration",src:n(85773).A+"",width:"512",height:"512"})}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["The one and only ",(0,s.jsx)(t.a,{href:"https://github.com/developer-guy",children:"Developer-Guy"})," has been working tirelessly to add OPA policy functionality to ",(0,s.jsx)(t.a,{href:"https://github.com/sigstore/cosign",children:"Cosign"}),", Check out the ",(0,s.jsx)(t.a,{href:"https://github.com/sigstore/cosign/pull/641",children:"PR"})," to see the awesome work to connect the two projects."]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"what-happened-this-month",children:"What happened this month?"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Meetup: ",(0,s.jsx)(t.a,{href:"https://www.meetup.com/london-opa-meetup/events/281522329",children:"OPA London Meetup"})]}),"\n",(0,s.jsxs)(t.li,{children:["Meetup: ",(0,s.jsx)(t.a,{href:"https://www.meetup.com/stockholm-opa-meetup/events/281066231/",children:"OPA Stockholm Meetup"})]}),"\n",(0,s.jsxs)(t.li,{children:["Talk: ",(0,s.jsx)(t.a,{href:"https://www.youtube.com/watch?v=RwsyMLyl8O0",children:"WTF is Cloud Native talk"})]}),"\n",(0,s.jsxs)(t.li,{children:["Talk: ",(0,s.jsx)(t.a,{href:"https://www.infracloud.io/cloud-native-talks/api-authorization-with-open-policy-agent-opa/",children:"API Authorization with Open Policy Agent"})]}),"\n",(0,s.jsxs)(t.li,{children:["Blog: ",(0,s.jsx)(t.a,{href:"/blog/serverless-policy-enforcement-connecting-opa-and-aws-lambda-e624f7176a3",children:"Connecting OPA with AWS Lambda"})]}),"\n",(0,s.jsxs)(t.li,{children:["Blog: ",(0,s.jsx)(t.a,{href:"https://medium.com/@ravindursr/automated-manifest-file-validation-using-open-policy-agent-and-github-actions-697fa9fd74f0",children:"Automated Manifest File Validation Using Open Policy Agent and GitHub Actions"})]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"whats-coming-up-next-month",children:"What's coming up next month?"}),"\n",(0,s.jsx)(t.p,{children:"A list of community meetings, meetups, and conferences."}),"\n",(0,s.jsx)(t.h3,{id:"opa-bi-weekly",children:(0,s.jsx)(t.a,{href:"https://docs.google.com/document/d/1v6l2gmkRKAn5UIg3V2QdeeCcXMElxsNzEzDkVlWDVg8/edit?usp=sharing",children:"OPA Bi-Weekly"})}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Dec 7th at 10 AM PT"}),"\n",(0,s.jsx)(t.li,{children:"Dec 21st at 10 AM PT"}),"\n"]}),"\n",(0,s.jsx)(t.h3,{id:"gatekeeper-weekly",children:(0,s.jsx)(t.a,{href:"https://docs.google.com/document/d/1A1-Q-1OMw3QODs1wT6eqfLTagcGmgzAJAjJihiO3T48/edit",children:"Gatekeeper Weekly"})}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Dec 2nd, 2 PM PT"}),"\n",(0,s.jsx)(t.li,{children:"Dec 8th, 9 AM PT"}),"\n",(0,s.jsx)(t.li,{children:"Dec 15th, 2 PM PT"}),"\n",(0,s.jsx)(t.li,{children:"Dec 22nd, 9 AM PT"}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"let-us-know-how-we-did",children:"Let us know how we did"}),"\n",(0,s.jsxs)(t.p,{children:["This was our very first edition of the OPA Newsletter, we really hope you enjoyed it! While we tried our best to find all the latest and greatest activities in the community we surely missed a lot as well. Want to share some cool content, have an OPA shoutout to make, want to speak at a conference, or host a meetup? Let us know by sending an email to: ",(0,s.jsx)(t.a,{href:"mailto:[email protected]",children:"[email protected]"}),"."]}),"\n",(0,s.jsx)(t.p,{children:"If you're new to OPA or to the community check out these community resources to get started."}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Chat with the community on ",(0,s.jsx)(t.a,{href:"https://slack.openpolicyagent.org/",children:"Slack"})]}),"\n",(0,s.jsxs)(t.li,{children:["Ask for help and support on ",(0,s.jsx)(t.a,{href:"https://github.com/open-policy-agent/feedback/discussions",children:"GitHub Discussions"})]}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},66877:(e,t,n)=>{n.d(t,{A:()=>i});const i=n.p+"assets/images/3-6c5d720c278e48cb8ae16c0e5630a81b.jpeg"},68831:(e,t,n)=>{n.d(t,{A:()=>i});const i=n.p+"assets/images/5-95453f9eb99358595475f91af849548a.jpeg"},69353:(e,t,n)=>{n.d(t,{A:()=>i});const i=n.p+"assets/images/2-e79e4c3b1abf9e127abfc20a53d279fc.png"},85773:(e,t,n)=>{n.d(t,{A:()=>i});
1const i=n.p+"assets/images/6-a23ea435aa18ea4a986b9cb6897322b5.png"}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.