├── CODEOWNERS ├── LICENSE ├── README.md ├── CODE_OF_CONDUCT.md └── 2019.md /CODEOWNERS: -------------------------------------------------------------------------------- 1 | # Comment line immediately above ownership line is reserved for related gus information. Please be careful while editing. 2 | #ECCN:Open Source 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2019, Salesforce.com, Inc. 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 5 | 6 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7 | 8 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 9 | 10 | * Neither the name of Salesforce.com nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. 11 | 12 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Salesforce in Google Summer of Code 2021 # 2 | > [Google Summer of Code](https://summerofcode.withgoogle.com/) is a global program focused on bringing more student developers into open source software development. Students work with an open source organization on a 3 month programming project during their break from school. 3 | 4 | # Contact Information # 5 | You can contact the Salesforce GSoC team at oss-gsoc@salesforce.com or by opening an issue on this repository. The program administrator is Alyssa Arvin and can be contacted on GitHub or Twitter at @AlyssaArvin. 6 | 7 | # Project Ideas # 8 | ### Cloudsplaining – [salesforce/cloudsplaining](https://github.com/salesforce/cloudsplaining) ### 9 | This project is open to original proposals from participants. 10 | 11 | * **Build a web app that identifies excessive privileges in AWS**: 12 | * Cloudsplaining can scan an AWS account or a single AWS IAM Policy - but it currently does so on command line. We’d like to turn this into a web app so developers can copy/paste their IAM policies, or upload their authorization details file, and see the results in the web app. 13 | * This will significantly lower the barrier to entry for identifying excessive privileges in AWS because developers will not have to learn a command-line tool - they will be able to use a web app instead. 14 | * This can be developed with a JavaScript framework of choice (React, Vue, Svelte, etc.). 15 | * This web app will be available to the public so anyone can use it. It will not just help Salesforce, it will help the larger security community around the world. 16 | 17 | * **Enhance a REST API that provides Cloudsplaining’s IAM scanning capabilities** 18 | * Cloudsplaining’s IAM scanning capabilities are currently hosted on a REST API. Enhancing this REST API will allow the web app to be more effective and responsive. 19 | * Tech stack includes Python, FastAPI, and AWS Lambda functions. If you are comfortable with Python but not with the rest, the rest can be learned. 20 | 21 | * **Build IAM Security scans into CI/CD pipelines for Infrastructure as Code** 22 | * Cloudsplaining is currently available as a command-line tool. This opportunity would include building automation using GitHub Actions to scan policies defined in Terraform and return the results on Pull Requests in GitHub. 23 | 24 | 25 | * **Aren't finding what you're interested in?** Look for more ideas at https://github.com/salesforce/cloudsplaining/issues 26 | 27 | * **Mentor:** Kinnaird McQuade ([@kmcquade](https://github.com/kmcquade)) 28 | 29 | ### JARM – [salesforce/jarm](https://github.com/salesforce/jarm) ### 30 | This project is open to original proposals from participants. 31 | 32 | * Build a JARM fingerprint to server application database* with confidence levels to be utilized by the community. 33 | 34 | * Build features into JARM that will allow it to further identify, with high confidence, the server application. This can be done with further server application fingerprinting that has yet to be identified/invented such as deeper application probing. The student would be involved in the investigation, feasibility, and invention of these additional capabilities. 35 | 36 | * **Aren't finding what you're interested in?** Look for more ideas at https://github.com/salesforce/jarm/issues 37 | 38 | * **Mentor:** John Althouse ([@jalthouse-sfdc](https://github.com/jalthouse-sfdc)) 39 | 40 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Salesforce Open Source Community Code of Conduct 2 | 3 | ## About the Code of Conduct 4 | 5 | Equality is a core value at Salesforce. We believe a diverse and inclusive 6 | community fosters innovation and creativity, and are committed to building a 7 | culture where everyone feels included. 8 | 9 | Salesforce open-source projects are committed to providing a friendly, safe, and 10 | welcoming environment for all, regardless of gender identity and expression, 11 | sexual orientation, disability, physical appearance, body size, ethnicity, nationality, 12 | race, age, religion, level of experience, education, socioeconomic status, or 13 | other similar personal characteristics. 14 | 15 | The goal of this code of conduct is to specify a baseline standard of behavior so 16 | that people with different social values and communication styles can work 17 | together effectively, productively, and respectfully in our open source community. 18 | It also establishes a mechanism for reporting issues and resolving conflicts. 19 | 20 | All questions and reports of abusive, harassing, or otherwise unacceptable behavior 21 | in a Salesforce open-source project may be reported by contacting the Salesforce 22 | Open Source Conduct Committee at ossconduct@salesforce.com. 23 | 24 | ## Our Pledge 25 | 26 | In the interest of fostering an open and welcoming environment, we as 27 | contributors and maintainers pledge to making participation in our project and 28 | our community a harassment-free experience for everyone, regardless of gender 29 | identity and expression, sexual orientation, disability, physical appearance, 30 | body size, ethnicity, nationality, race, age, religion, level of experience, education, 31 | socioeconomic status, or other similar personal characteristics. 32 | 33 | ## Our Standards 34 | 35 | Examples of behavior that contributes to creating a positive environment 36 | include: 37 | 38 | * Using welcoming and inclusive language 39 | * Being respectful of differing viewpoints and experiences 40 | * Gracefully accepting constructive criticism 41 | * Focusing on what is best for the community 42 | * Showing empathy toward other community members 43 | 44 | Examples of unacceptable behavior by participants include: 45 | 46 | * The use of sexualized language or imagery and unwelcome sexual attention or 47 | advances 48 | * Personal attacks, insulting/derogatory comments, or trolling 49 | * Public or private harassment 50 | * Publishing, or threatening to publish, others' private information—such as 51 | a physical or electronic address—without explicit permission 52 | * Other conduct which could reasonably be considered inappropriate in a 53 | professional setting 54 | * Advocating for or encouraging any of the above behaviors 55 | 56 | ## Our Responsibilities 57 | 58 | Project maintainers are responsible for clarifying the standards of acceptable 59 | behavior and are expected to take appropriate and fair corrective action in 60 | response to any instances of unacceptable behavior. 61 | 62 | Project maintainers have the right and responsibility to remove, edit, or 63 | reject comments, commits, code, wiki edits, issues, and other contributions 64 | that are not aligned with this Code of Conduct, or to ban temporarily or 65 | permanently any contributor for other behaviors that they deem inappropriate, 66 | threatening, offensive, or harmful. 67 | 68 | ## Scope 69 | 70 | This Code of Conduct applies both within project spaces and in public spaces 71 | when an individual is representing the project or its community. Examples of 72 | representing a project or community include using an official project email 73 | address, posting via an official social media account, or acting as an appointed 74 | representative at an online or offline event. Representation of a project may be 75 | further defined and clarified by project maintainers. 76 | 77 | ## Enforcement 78 | 79 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 80 | reported by contacting the Salesforce Open Source Conduct Committee 81 | at ossconduct@salesforce.com. All complaints will be reviewed and investigated 82 | and will result in a response that is deemed necessary and appropriate to the 83 | circumstances. The committee is obligated to maintain confidentiality with 84 | regard to the reporter of an incident. Further details of specific enforcement 85 | policies may be posted separately. 86 | 87 | Project maintainers who do not follow or enforce the Code of Conduct in good 88 | faith may face temporary or permanent repercussions as determined by other 89 | members of the project's leadership and the Salesforce Open Source Conduct 90 | Committee. 91 | 92 | ## Attribution 93 | 94 | This Code of Conduct is adapted from the [Contributor Covenant][contributor-covenant-home], 95 | version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html. 96 | It includes adaptions and additions from [Go Community Code of Conduct][golang-coc], 97 | [CNCF Code of Conduct][cncf-coc], and [Microsoft Open Source Code of Conduct][microsoft-coc]. 98 | 99 | This Code of Conduct is licensed under the [Creative Commons Attribution 3.0 License][cc-by-3-us]. 100 | 101 | [contributor-covenant-home]: https://www.contributor-covenant.org (https://www.contributor-covenant.org/) 102 | [golang-coc]: https://golang.org/conduct 103 | [cncf-coc]: https://github.com/cncf/foundation/blob/master/code-of-conduct.md 104 | [microsoft-coc]: https://opensource.microsoft.com/codeofconduct/ 105 | [cc-by-3-us]: https://creativecommons.org/licenses/by/3.0/us/ -------------------------------------------------------------------------------- /2019.md: -------------------------------------------------------------------------------- 1 | # Salesforce in Google Summer of Code 2019 2 | 3 | > [Google Summer of Code](https://summerofcode.withgoogle.com/) is a global program focused on bringing more student developers into open source software development. Students work with an open source organization on a 3 month programming project during their break from school. 4 | 5 | # Contact Information 6 | 7 | You can contact the Salesforce GSoC team at oss-gsoc@salesforce.com or by opening an issue on this repository. The program administrator is Chris Kelly and can be contacted on GitHub or Twitter at @amateurhuman. 8 | 9 | # Project Ideas 10 | 11 | ### TransmogrifAI – [salesforce/transmogrifai](https://github.com/salesforce/TransmogrifAI) 12 | This project is open to original proposals from participants. 13 | 14 | * **Model interpretability/explainability** 15 | * Insights into the functioning of machine learning models can foster greater trust and increased transparency around automated machine-learning driven decisions. In this task, we would like to enhance the algorithmic techniques that TransmogrifAI provides to peak into the black-box of machine learning models. Today, TransmogrifAI already comes with techniques such as LOCO and correlation-weighted feature importances to provide explainability at the level of individual automated decisions. We would like to enhance the set of techniques available for developers to use. Examples include Permutation Feature Importance or Shapley Additive Explanations. 16 | * How does one evaluate which of the techniques above provides the best insights and explainability into the workings of a machine learning model? A follow up task would be to prototype an evaluation metric for comparing feature importances across different interpretability techniques. 17 | 18 | * **Hyperparameter optimization** 19 | * One of the most expensive parts of automated model training is searching the space of hyperparameters for the machine learning algorithms to find the best ones. We would like to enhance the TransmogrifAI model selector API to store and load the best hyperparameters based on previous model trainings on the same dataset so that the search can start off from a smarter starting point. We can also store the relative importances of each hyperparameter in previous model trainings, so that the future searches can focus more on the most impactful hyperparameters. 20 | * In addition, there are more sophisticated hyperparameter search strategies we want to investigate. Random search with configurable stopping criteria, intelligent search space pruning, or even a secondary model to predict good hyperparameters based on dataset metadata. These can be benchmarked against publicly available datasets like the OpenML 100. 21 | 22 | * **Developer Experience** 23 | * Setup a Jupiter notebook for TransmogrifAI with Scala and Spark to simplify the on-boarding experience with our library and allow faster prototyping of ideas. 24 | * Enable import of TransmogrifAI models into Python or PySpark enabled environments to allow easier exploration and evaluation of our models against other machine learning libraries. 25 | 26 | * **Aren't finding what you're interested in?** Look for more ideas at https://github.com/salesforce/TransmogrifAI/issues 27 | 28 | ### Design System React – [salesforce/design-system-react](https://github.com/salesforce/design-system-react) 29 | Design System React is a set of accessible, localization-friendly, presentational React components that implement the [Salesforce Lightning Design System](https://www.lightningdesignsystem.com/). Both DSR and SLDS are owned by engineering teams within a user experience department. This project is open to original proposals from participants. 30 | 31 | * **Additional Lightning Design System components** Be a part of creating some of the world’s best enterprise app experiences by building user-centered, re-usable, presentational components. Please review the [SLDS website](https://www.lightningdesignsystem.com/) for ideas. Components can be different sizes of complexity and may need to be scoped into small components. Creating an accessible UI can be a nascent skill even for front-end engineers that have been coding for years. This will expose the participant to program management, cross-company collaboration between user experience engineering and product engineering in an enterprise engineering organization. Components will be audited, reviewed, and added to the library and then be used by Salesforce products in production as well as by external consumers in the open-source community. 32 | 33 | * **Iterate on the developer experience** Interested in developer operations? This task would focus on iterating and streamlining the contributor workflow to ensure a convenient and clear developer experience that scales and increases developer productivity. Technologies likely to be used include Webpack, Babel, Storybook, Jest and Mocha suites, Visual Regression Tests, and aXe accessibility automated testing. Please consider your own experience as a contributor as a guide. If you have any issues, you are probably not alone. 34 | 35 | * **Lint component prop APIs in pull requests** `containerStyle` or `styleContainer`? Use react-docgen's output to lint prop names to conform to project architecture and create a consistent consuming developer experience. This will add additional checks to pull requests in order to provide more efficent reviews. 36 | 37 | * **Add cross-component utility APIs** Increase component flexibility by adding a varity of render props, ARIA attribute, style/CSS class, and data-attributes props across many components. 38 | 39 | * **Aren't finding what you're interested in?** Look for more ideas at https://github.com/salesforce/design-system-react/issues 40 | 41 | * **Mentor(s):** Stephen James ([@interactivellama](https://github.com/interactivellama)), Lead UX Engineer; Dave Woodward ([@futuremint](https://github.com/futuremint)), UX Engineering Architect 42 | 43 | #### Additional resources for brainstorming proposals to consider 44 | * [Designing UX with Salesforce Engineering](https://www.youtube.com/watch?v=MKwQXfN-8Rk) 45 | * [Interning as a UX Engineer](https://medium.com/salesforce-ux/interning-as-a-ux-engineer-290e9115a034) 46 | * [Open Sourcing Design System React](https://engineering.salesforce.com/open-sourcing-design-system-react-9be45b8bb127) - Medium article 47 | * [@SaleforceUX](https://twitter.com/salesforceux) - Twitter account 48 | * [Creating an Enterprise CSS Framework: A Salesforce UX Case Study](https://www.slideshare.net/uxpin/creating-an-enterprise-css-framework-a-salesforce-ux-case-study) - This is not about this project, but the CSS framework used by Design System React 49 | 50 | ### oclif – [oclif/oclif](https://github.com/oclif/oclif) 51 | This project is open to original proposals from participants. 52 | 53 | * **Design an oclif linter.** Linters have become the go-to way of enforcing code styles. For this project, we're looking to build a linter for oclif developers to enforce better practices. The linter needs to be able to lint both Typescript and plain JS CLI's, should run via the command line and also integrate into various IDE's (ex: Atom, VS Code). 54 | 55 | * **Aren't finding what you're interested in?** Look for more ideas at https://github.com/oclif/oclif/issues 56 | 57 | # Code of Conduct 58 | 59 | Participation in all Salesforce open source projects requires adherence to our [code of coduct](CODE_OF_CONDUCT.md). 60 | --------------------------------------------------------------------------------