├── LICENSE ├── README.md ├── sample-template ├── assets │ ├── image.png │ └── sample.json └── readme.md └── system ├── categories.json ├── featured.json ├── leaf-folders.json ├── metadata-entries.json ├── products.json ├── repositories.json ├── sample.schema.json └── trusted-domains.json /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 PnP 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Microsoft 365 Sample Gallery - System files 2 | 3 | Backend control and assets for the [Microsoft 365 Sample Gallery](https://aka.ms/community/samples). 4 | 5 | To ensure a consistent approach on how to promote samples, we put together some guidelines that make it easier for you to extend the gallery with your repositories and to streamline the process for maintainers of this repository. 6 | 7 | ## Guidelines 8 | 9 | - Each sample needs to have a README file and screenshot showcasing what the sample is all about – we should not require customers and partners to install the sample before showcasing it. We follow this guidance with the Microsoft 365 samples and Power Platform community samples, so that the barrier of seeing the sample live is as low as possible. We use standard README files for our samples to ensure the quality of them, please see this [example](https://github.com/pnp/sp-dev-fx-webparts/blob/main/templates/README-template.md) for reference. 10 | 11 | - Getting a sample to the sample gallery always requires a screenshot(s) – which is good for sparking interest and understanding on the sample – so typically README files contains guidance and input on how to use the sample. Please see this [example](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/app-hello-world/csharp) to see Gif files in action: They are are great for showcasing how the sample actually works without requiring it to be installed. 12 | 13 | - When the README and screenshot(s) exists, you will need to create `sample.json` file for your sample in `assets` folder. Please see this [example](https://github.com/OfficeDev/Microsoft-Teams-Samples/blob/main/samples/app-hello-world/csharp/assets/sample.json) for reference. 14 | 15 | - Let us know once you want your repository to be added by raising an [issue](https://github.com/pnp/m365-sample-gallery/issues) so that we can enable your repo to get crawled by our content bot. The bot will then gather the information, images and links you have provided and then surface the sample at the sample gallery. This bot reads all `sample.json` files on a daily basis and then updates the information automatically at the sample portal at [https://aka.ms/community/samples](https://aka.ms/community/samples). 16 | 17 | In case you do have any question please raise an issue in this repo, we are happy to help. 18 | -------------------------------------------------------------------------------- /sample-template/assets/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/m365-sample-gallery/e67439418b57c61a799cb228c06870b94126297a/sample-template/assets/image.png -------------------------------------------------------------------------------- /sample-template/assets/sample.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "$schema": "https://developer.microsoft.com/en-us/json-schemas/pnp/samples/v1.0/metadata-schema.json", 4 | "name": "pnp-sp-dev-spfx-web-parts-sample-folder-name", 5 | "version": "1.4.2.0", 6 | "source": "pnp", 7 | "title": "Action messaging extension with Just In Time installer", 8 | "url": "https://github.com/pnp/m365-sample-gallery", 9 | "creationDateTime": "2021-04-20T18:25:43.511Z", 10 | "updateDateTime": "2021-04-20T18:25:43.511Z", 11 | "shortDescription": "Sample of an Action messaging extension that shows a Just-In-Time installer to install the app into Teams/Personal/Group Chat, and how to post an adaptive card response directly into a conversation", 12 | "longDescription": 13 | [ 14 | "Sample of an Action messaging extension that shows a Just-In-Time installer to install the app into Teams/Personal/Group Chat, and how to post an adaptive card response directly into a conversation", 15 | "Paragraph 02", 16 | "Paragraph 03" 17 | ], 18 | "downloadUrl": "https://download.url/file.zip", 19 | "products": [ 20 | "Microsoft Teams", "SharePoint", "Office" 21 | ], 22 | "categories": [ 23 | "CATEGORY1","CATEGORY4" 24 | ], 25 | "preview": { 26 | "label": "Click here for preview", 27 | "url": "https://www.something.com/", 28 | "settings": { 29 | "oneCustomSetting": "OneCustomCustomValue", 30 | "anotherCustomSetting": "AnotherCustomCustomValue" 31 | } 32 | }, 33 | "metadata": [ 34 | { 35 | "key": "CLIENT-SIDE-DEV", 36 | "value":"React" 37 | }, 38 | { 39 | "key": "BOT-FRAMEWORK-VERSION", 40 | "value":"bot40" 41 | }, 42 | { 43 | "key": "SPFX-VERSION", 44 | "value":"1.11" 45 | }, 46 | { 47 | "key": "GRAPH-APIS", 48 | "value":"sites,files,email" 49 | }, 50 | { 51 | "key": "GRAPH-TOOLKIT-CONTROLS", 52 | "value":"agenda,tasks" 53 | }, 54 | { 55 | "key": "CODE-TYPE", 56 | "value":"pro-code,no-code/low-code" 57 | } 58 | ], 59 | "thumbnails": [ 60 | { 61 | "type": "image", 62 | "order": 100, 63 | "url": "https://fuufaafuu.png", 64 | "alt": "Alt text for the image" 65 | }, 66 | { 67 | "type": "video", 68 | "order": 101, 69 | "url": "https://youtube.com/embed/3120470", 70 | "alt": "Alt text for the video" 71 | }, 72 | { 73 | "type": "slideshow", 74 | "order": 102, 75 | "alt": "Alt text for the image", 76 | "slides": [ 77 | { "url": "/assets/slide83.png","order": 10, "alt": "Alt text for a slide"}, 78 | { "url": "/assets/slide84.png","order": 20, "alt": "Alt text for a slide"}, 79 | { "url": "/assets/slide85.png","order": 30, "alt": "Alt text for a slide"}, 80 | { "url": "/assets/slide86.png","order": 40, "alt": "Alt text for a slide"}, 81 | { "url": "/assets/slide87.png","order": 50, "alt": "Alt text for a slide"}, 82 | { "url": "/assets/slide88.png","order": 60, "alt": "Alt text for a slide"}, 83 | { "url": "/assets/slide89.png","order": 70, "alt": "Alt text for a slide"}, 84 | { "url": "/assets/slide90.png","order": 80, "alt": "Alt text for a slide"}, 85 | { "url": "/assets/slide91.png","order": 90, "alt": "Alt text for a slide"}, 86 | { "url": "/assets/slide92.png","order": 100, "alt": "Alt text for a slide"}, 87 | { "url": "/assets/slide93.png","order": 110, "alt": "Alt text for a slide"}, 88 | { "url": "/assets/slide94.png","order": 120, "alt": "Alt text for a slide"}, 89 | { "url": "/assets/slide95.png","order": 130, "alt": "Alt text for a slide"}, 90 | { "url": "/assets/slide96.png","order": 140, "alt": "Alt text for a slide"}, 91 | { "url": "/assets/slide97.png","order": 150, "alt": "Alt text for a slide"}, 92 | { "url": "/assets/slide98.png","order": 160, "alt": "Alt text for a slide"}, 93 | { "url": "/assets/slide99.png","order": 170, "alt": "Alt text for a slide"}, 94 | { "url": "/assets/slide100.png","order": 180, "alt": "Alt text for a slide"}, 95 | { "url": "/assets/slide101.png","order": 190, "alt": "Alt text for a slide"}, 96 | { "url": "/assets/slide102.png","order": 200, "alt": "Alt text for a slide"}, 97 | { "url": "/assets/slide103.png","order": 210, "alt": "Alt text for a slide"}, 98 | { "url": "/assets/slide104.png","order": 220, "alt": "Alt text for a slide"}, 99 | { "url": "/assets/slide105.png","order": 230, "alt": "Alt text for a slide"}, 100 | { "url": "/assets/slide106.png","order": 240, "alt": "Alt text for a slide"}, 101 | { "url": "/assets/slide107.png","order": 250, "alt": "Alt text for a slide"}, 102 | { "url": "/assets/slide108.png","order": 260, "alt": "Alt text for a slide"} 103 | ] 104 | } 105 | ], 106 | "authors": [ 107 | { 108 | "gitHubAccount": "paolopia", 109 | "company": "PiaSys.com", 110 | "pictureUrl": "https://avatars0.githubusercontent.com/u/7582026?s=460&u=1e33362a18466aaa1550ee55daf185402c2614a6&v=4" 111 | }, 112 | { 113 | "gitHubAccount": "jansenbe", 114 | "company": "Microsoft", 115 | "pictureUrl": "https://avatars0.githubusercontent.com/u/7451219?s=400&u=bb3b86b3b08244f849847936556cd631de3bdf75&v=4" 116 | } 117 | ], 118 | "references": [ 119 | { 120 | "name": "Link 1 name", 121 | "description": "Optional description for the reference", 122 | "url": "https://www.bing.com" 123 | }, 124 | { 125 | "name": "Link 2 name", 126 | "description": "Optional description for the reference", 127 | "url": "https://www.bing.com" 128 | } 129 | ] 130 | } 131 | ] 132 | -------------------------------------------------------------------------------- /sample-template/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pnp/m365-sample-gallery/e67439418b57c61a799cb228c06870b94126297a/sample-template/readme.md -------------------------------------------------------------------------------- /system/categories.json: -------------------------------------------------------------------------------- 1 | { 2 | "categories": [ 3 | { 4 | "id": "CATEGORY1", 5 | "displayName": "Category 1 display", 6 | "description": "Potential description for category" 7 | }, 8 | { 9 | "id": "CATEGORY2", 10 | "displayName": "Category 2 display", 11 | "description": "Potential description for category" 12 | }, 13 | { 14 | "id": "CATEGORY3", 15 | "displayName": "Category 3 display", 16 | "description": "Potential description for category" 17 | }, 18 | { 19 | "id": "CATEGORY4", 20 | "displayName": "Category 4 display", 21 | "description": "Potential description for category" 22 | } 23 | ] 24 | } -------------------------------------------------------------------------------- /system/featured.json: -------------------------------------------------------------------------------- 1 | { 2 | "featured": [ 3 | { 4 | "sampleId": "pnp-sp-dev-spfx-web-parts-aad-api-spo-cookie", 5 | "sampleLink": "https://github.com/pnp/sp-dev-fx-webparts/blob/main/samples/aad-api-spo-cookie/assets/sample.json", 6 | "editedOn": "2022-05-29", 7 | "comment": "This is just a sample of a featured item" 8 | }, 9 | { 10 | "sampleId": "pnp-sp-dev-spfx-web-parts-react-check-user-group", 11 | "sampleLink": "https://github.com/pnp/sp-dev-fx-webparts/blob/main/samples/react-check-user-group/assets/sample.json", 12 | "editedOn": "2022-05-29", 13 | "comment": "This is just a sample of a featured item" 14 | }, 15 | { 16 | "sampleId": "officedev-copilot-for-m365-plugins-samples-msgext-northwind-inventory-ts", 17 | "sampleLink": "https://github.com/OfficeDev/Copilot-for-M365-Plugins-Samples/blob/main/samples/msgext-northwind-inventory-ts/assets/sample.json", 18 | "editedOn": "2023-11-21", 19 | "comment": "Featured Teams samples post Ignite 2023" 20 | }, 21 | { 22 | "sampleId": "officedev-copilot-for-m365-plugins-samples-msgext-doc-search-js", 23 | "sampleLink": "https://github.com/OfficeDev/Copilot-for-M365-Plugins-Samples/blob/main/samples/msgext-doc-search-js/assets/sample.json", 24 | "editedOn": "2023-11-21", 25 | "comment": "Featured Teams samples post Ignite 2023" 26 | }, 27 | { 28 | "sampleId": "officedev-copilot-for-m365-plugins-samples-msgext-multiparam-csharp", 29 | "sampleLink": "https://github.com/OfficeDev/Copilot-for-M365-Plugins-Samples/blob/main/samples/msgext-multiparam-csharp/assets/sample.json", 30 | "editedOn": "2023-11-21", 31 | "comment": "Featured Teams samples post Ignite 2023" 32 | }, 33 | { 34 | "sampleId": "pnp-graph-connector-powershell-markdown", 35 | "sampleLink": "https://github.com/pnp/graph-connectors-samples/blob/main/samples/powershell-markdown/assets/sample.json", 36 | "editedOn": "2023-11-21", 37 | "comment": "Featured Graph samples post Ignite 2023" 38 | }, 39 | { 40 | "sampleId": "pnp-graph-connector-nodejs-typescript-food-catalog", 41 | "sampleLink": "https://github.com/pnp/graph-connectors-samples/blob/main/samples/nodejs-typescript-food-catalog/assets/sample.json", 42 | "editedOn": "2024-01-18", 43 | "comment": "Featured Graph samples post Ignite 2023" 44 | }, 45 | { 46 | "sampleId": "pnp-graph-connector-nodejs-javascript-solutiongallery", 47 | "sampleLink": "https://github.com/pnp/graph-connectors-samples/blob/main/samples/nodejs-javascript-solutiongallery/assets/sample.json", 48 | "editedOn": "2024-01-18", 49 | "comment": "Featured Graph connector sample" 50 | }, 51 | { 52 | "sampleId": "pnp-sp-dev-teams-sample-tab-office-offer-creation-csharp", 53 | "sampleLink": "https://github.com/pnp/teams-dev-samples/blob/main/samples/tab-office-offer-creation-csharp/assets/sample.json", 54 | "editedOn": "2023-11-21", 55 | "comment": "Featured Teams samples post Ignite 2023" 56 | }, 57 | { 58 | "sampleId": "pnp-sp-dev-teams-sample-app-teams-guest-user-overview", 59 | "sampleLink": "https://github.com/pnp/teams-dev-samples/tree/main/samples/tab-teams-guest-user-overview", 60 | "editedOn": "2023-11-21", 61 | "comment": "Featured Teams samples post Ignite 2023" 62 | }, 63 | { 64 | "sampleId": "pnp-devproxy-northwinddb", 65 | "sampleLink": "https://github.com/pnp/proxy-samples/blob/main/samples/northwinddb/assets/sample.json", 66 | "editedOn": "2024-01-17", 67 | "comment": "Featured Dev Proxy sample" 68 | }, 69 | { 70 | "sampleId": "pnp-devproxy-sharepoint-api-minimal-permissions", 71 | "sampleLink": "https://github.com/pnp/proxy-samples/blob/main/samples/sharepoint-api-minimal-permissions/assets/sample.json", 72 | "editedOn": "2025-04-07", 73 | "comment": "Featured Dev Proxy sample" 74 | }, 75 | { 76 | "sampleId": "pnp-devproxy-microsoft-graph-docs-mocks", 77 | "sampleLink": "https://github.com/pnp/proxy-samples/blob/main/samples/microsoft-graph-docs-mocks/assets/sample.json", 78 | "editedOn": "2024-01-17", 79 | "comment": "Featured Dev Proxy sample" 80 | }, 81 | { 82 | "sampleId": "pnp-devproxy-openai-throttling", 83 | "sampleLink": "https://github.com/pnp/proxy-samples/blob/main/samples/openai-throttling/assets/sample.json", 84 | "editedOn": "2024-01-17", 85 | "comment": "Featured Dev Proxy sample" 86 | }, 87 | { 88 | "sampleId": "pnp-devproxy-spfx", 89 | "sampleLink": "https://github.com/pnp/proxy-samples/blob/main/samples/spfx/assets/sample.json", 90 | "editedOn": "2024-01-17", 91 | "comment": "Featured Dev Proxy sample" 92 | }, 93 | { 94 | "sampleId": "pnp-sp-dev-teams-sample-tab-live-patient-review-liveshare", 95 | "sampleLink": "https://github.com/pnp/teams-dev-samples/blob/main/samples/tab-live-patient-review-liveshare/assets/sample.json", 96 | "editedOn": "2023-11-21", 97 | "comment": "Featured Teams samples post Ignite 2023" 98 | }, 99 | { 100 | "sampleId": "pnp-sp-dev-teams-sample-bot-msteams-quiz-bot", 101 | "sampleLink": "https://github.com/pnp/teams-dev-samples/blob/main/samples/bot-msteams-quiz-bot/assets/sample.json", 102 | "editedOn": "2023-11-21", 103 | "comment": "Featured Teams samples post Ignite 2023" 104 | } 105 | ] 106 | } 107 | -------------------------------------------------------------------------------- /system/leaf-folders.json: -------------------------------------------------------------------------------- 1 | { 2 | "folders": [ 3 | "javascript", 4 | "nodejs", 5 | "csharp", 6 | "typescript", 7 | "go", 8 | "python" 9 | ] 10 | } -------------------------------------------------------------------------------- /system/metadata-entries.json: -------------------------------------------------------------------------------- 1 | { 2 | "metadata-entries": [ 3 | { 4 | "id": "CLIENT-SIDE-DEV", 5 | "displayName": "Client-Side Technology", 6 | "description": "Used technology for the client-side code", 7 | "values": [ 8 | "JavaScript", 9 | "TypeScript", 10 | "React", 11 | "Angular", 12 | "Handlebars", 13 | "Vue.js", 14 | "Other" 15 | ] 16 | }, 17 | { 18 | "id": "BOT-FRAMEWORK-VERSION", 19 | "displayName": "Bot Framework Version", 20 | "description": "Used Bot Framework version", 21 | "values": [ 22 | "bot40", 23 | "bot30", 24 | "other" 25 | ] 26 | }, 27 | { 28 | "id": "SPFX-VERSION", 29 | "displayName": "SharePoint Framework version", 30 | "description": "Used SharePoint Framework version", 31 | "values": [ 32 | "1.0.0", 33 | "1.1.0", 34 | "1.3.0", 35 | "1.4.0", 36 | "1.4.1", 37 | "1.5.0", 38 | "1.5.1", 39 | "1.6.0", 40 | "1.7.0", 41 | "1.7.1", 42 | "1.8.0", 43 | "1.8.1", 44 | "1.8.2", 45 | "1.9.1", 46 | "1.10.0", 47 | "1.11.0", 48 | "1.12.1", 49 | "1.13.0", 50 | "1.13.1" 51 | ] 52 | }, 53 | { 54 | "id": "GRAPH-APIS", 55 | "displayName": "Used Microsoft Graph APIs", 56 | "description": "List of used Microsoft Graph APIs", 57 | "values": [ 58 | "sites", 59 | "files", 60 | "teams", 61 | "mail", 62 | "users", 63 | "groups", 64 | "identity", 65 | "others" 66 | ] 67 | }, 68 | { 69 | "id": "GRAPH-TOOLKIT-CONTROLS", 70 | "displayName": "Used Microsoft Graph Toolkit Controls", 71 | "description": "List of used Microsoft Graph Toolkit Controls", 72 | "values": [ 73 | "login", 74 | "get", 75 | "person", 76 | "people", 77 | "personCard", 78 | "peoplePicker", 79 | "teamsChannelPicker", 80 | "agenda", 81 | "tasks", 82 | "todo", 83 | "other" 84 | ] 85 | }, 86 | { 87 | "id": "LIST-SAMPLE-TYPE", 88 | "displayName": "List Sample Type", 89 | "description": "Describes whether the sample applies to view, column, or form formatting", 90 | "values": [ 91 | "View", 92 | "Column", 93 | "Form" 94 | ] 95 | }, 96 | { 97 | "id": "LIST-COLUMN-TYPE", 98 | "displayName": "Column Type", 99 | "description": "Indicates the type of columns used in the view", 100 | "values": [ 101 | "ContentType", 102 | "Currency", 103 | "Date/Time", 104 | "General", 105 | "Hyperlink", 106 | "Location", 107 | "Multi-Choice", 108 | "Multi-Person", 109 | "Number", 110 | "Person", 111 | "Picture", 112 | "Yes/No" 113 | ] 114 | }, 115 | { 116 | "id": "LIST-OPERATOR", 117 | "displayName": "Advanced operators", 118 | "description": "Samples are listed by their usage of advanced operators, excluding common arithmetic operators.", 119 | "values": [ 120 | "abs", 121 | "cos", 122 | "Date", 123 | "forEach", 124 | "indexOf", 125 | "join", 126 | "length", 127 | "loopIndex", 128 | "Modulus %", 129 | "Number", 130 | "sin", 131 | "toLocaleString", 132 | "toLocaleDateString", 133 | "toLocaleDateTimeString", 134 | "toLowerCase", 135 | "toString" 136 | ] 137 | }, 138 | { 139 | "id": "LIST-PLACEHOLDER-TOKEN", 140 | "displayName": "Placeholder Tokens", 141 | "description": "Samples are listed by their usage of placeholder tokens. @currentField is excluded because it is used nearly everywhere.", 142 | "values": [ 143 | "@currentWeb", 144 | "@me", 145 | "@now", 146 | "@rowIndex", 147 | "@thumbnail", 148 | "@window" 149 | ] 150 | }, 151 | { 152 | "id": "LIST-ROW-ACTION", 153 | "displayName": "Row Action", 154 | "description": "Samples are listed by their usage of customRowAction action properties.", 155 | "values": [ 156 | "defaultClick", 157 | "delete", 158 | "editProps", 159 | "executeFlow", 160 | "share" 161 | ] 162 | }, 163 | { 164 | "id": "LIST-CATEGORY", 165 | "displayName": "Topic or Approach", 166 | "description": "Samples are listed by topic or approach.", 167 | "values": [ 168 | "Cards", 169 | "Charts", 170 | "Document Library", 171 | "Dynamic Links", 172 | "Flow", 173 | "Icons", 174 | "Maps", 175 | "People", 176 | "Severity", 177 | "Social Media", 178 | "Status / Progress", 179 | "SVG", 180 | "Text Conditional", 181 | "Tiles", 182 | "Trending" 183 | ] 184 | } 185 | ] 186 | } 187 | -------------------------------------------------------------------------------- /system/products.json: -------------------------------------------------------------------------------- 1 | { 2 | "products" : [ 3 | { 4 | "id": "Microsoft365AgentToolkit", 5 | "displayName": "Microsoft 365 Agent Toolkit", 6 | "searchKeyword": "Microsoft 365 Agent Toolkit", 7 | "order": 370, 8 | "visible": true 9 | }, 10 | { 11 | "id": "Microsoft 365 Copilot", 12 | "displayName": "Microsoft 365 Copilot", 13 | "searchKeyword": "Microsoft 365 Copilot", 14 | "order": 375, 15 | "visible": true 16 | }, 17 | { 18 | "id": "DevProxy", 19 | "displayName": "Dev Proxy", 20 | "searchKeyword": "Dev Proxy", 21 | "order": 360, 22 | "visible": true 23 | }, 24 | { 25 | "id": "AIBuilder", 26 | "displayName": "AI Builder", 27 | "searchKeyword": "AIBuilder", 28 | "searchKeywordAliases": "AIBuilder,AI Builder", 29 | "order": 250, 30 | "visible": true 31 | }, 32 | { 33 | "id": "AzureAD", 34 | "displayName": "Microsoft Entra ID", 35 | "searchKeyword": "EntraID", 36 | "searchKeywordAliases": "AzureAD,EntraID,Entra ID,Azure Entra ID,Microsoft Entra ID", 37 | "order": 385, 38 | "visible": true 39 | }, 40 | { 41 | "id": "CopilotStudio", 42 | "displayName": "Copilot Studio", 43 | "searchKeyword": "CopilotStudio", 44 | "searchKeywordAliases": "CopilotStudio,Copilot Studio", 45 | "order": 350, 46 | "visible": true 47 | }, 48 | { 49 | "id": "Microsoft Graph", 50 | "displayName": "Microsoft Graph", 51 | "searchKeyword": "Microsoft Graph", 52 | "order": 400, 53 | "visible": true 54 | }, 55 | { 56 | "id": "Copilot connectors", 57 | "displayName": "Copilot connectors", 58 | "searchKeyword": "Copilot connectors", 59 | "searchKeywordAliases": "Graph connectors", 60 | "order": 325, 61 | "visible": true 62 | }, 63 | { 64 | "id": "Microsoft Graph Toolkit", 65 | "displayName": "Microsoft Graph Toolkit", 66 | "searchKeyword": "Microsoft Graph Toolkit", 67 | "order": 600, 68 | "visible": true 69 | }, 70 | { 71 | "id": "MicrosoftLists", 72 | "displayName": "Microsoft Lists", 73 | "searchKeyword": "Microsoft Lists", 74 | "order": 700, 75 | "visible": true 76 | }, 77 | { 78 | "id": "MicrosoftTeams", 79 | "displayName": "Microsoft Teams", 80 | "searchKeyword": "Teams", 81 | "order": 800, 82 | "visible": true 83 | }, 84 | { 85 | "id": "MicrosoftTeamsToolkit", 86 | "displayName": "Microsoft Teams Toolkit", 87 | "searchKeyword": "TeamsToolkit", 88 | "order": 900, 89 | "visible": true 90 | }, 91 | { 92 | "id": "Microsoft To Do", 93 | "displayName": "Microsoft To Do", 94 | "searchKeyword": "Microsoft To Do", 95 | "order": 1000, 96 | "visible": true 97 | }, 98 | { 99 | "id": "Office", 100 | "displayName": "Office", 101 | "searchKeyword": "Office", 102 | "order": 1100, 103 | "visible": true 104 | }, 105 | { 106 | "id": "OneDrive", 107 | "displayName": "OneDrive", 108 | "searchKeyword": "OneDrive", 109 | "order": 1200, 110 | "visible": true 111 | }, 112 | { 113 | "id": "PowerApps", 114 | "displayName": "Power Apps", 115 | "searchKeyword": "Power Apps", 116 | "order": 1300, 117 | "visible": true 118 | }, 119 | { 120 | "id": "PowerAutomate", 121 | "displayName": "Power Automate", 122 | "searchKeyword": "Power Automate", 123 | "order": 1400, 124 | "visible": true 125 | }, 126 | { 127 | "id": "PowerFx", 128 | "displayName": "Power Fx", 129 | "searchKeyword": "Power Fx", 130 | "order": 1500, 131 | "visible": true 132 | }, 133 | { 134 | "id": "PowerPages", 135 | "displayName": "Power Pages", 136 | "searchKeyword": "Power Pages", 137 | "order": 1550, 138 | "visible": true 139 | }, 140 | { 141 | "id": "SharePoint", 142 | "displayName": "SharePoint", 143 | "searchKeyword": "SharePoint", 144 | "order": 1600, 145 | "visible": true 146 | }, 147 | { 148 | "id": "Viva", 149 | "displayName": "Viva", 150 | "searchKeyword": "Viva", 151 | "order": 1700, 152 | "visible": true 153 | }, 154 | { 155 | "id": "Teams Global Hack", 156 | "displayName": "Teams Global Hack", 157 | "searchKeyword": "Teams Global Hack", 158 | "order": 20000, 159 | "visible": false 160 | }, 161 | { 162 | "id": "powerplatform-prompts", 163 | "displayName": "Power Platform Prompts", 164 | "searchKeyword": "powerplatform-prompts", 165 | "order": 30000, 166 | "visible": false 167 | }, 168 | { 169 | "id": "ai-builder-prompts", 170 | "displayName": "AI Builder Prompts", 171 | "searchKeyword": "ai-builder-prompts", 172 | "order": 30001, 173 | "visible": false 174 | }, 175 | { 176 | "id": "copilot-studio-prompts", 177 | "displayName": "Copilot Studio Prompts", 178 | "searchKeyword": "copilot-studio-prompts", 179 | "order": 30002, 180 | "visible": false 181 | }, 182 | { 183 | "id": "power-apps-prompts", 184 | "displayName": "Power Apps Prompts", 185 | "searchKeyword": "power-apps-prompts", 186 | "order": 30003, 187 | "visible": false 188 | }, 189 | { 190 | "id": "power-automate-prompts", 191 | "displayName": "Power Automate Prompts", 192 | "searchKeyword": "power-automate-prompts", 193 | "order": 30004, 194 | "visible": false 195 | }, 196 | { 197 | "id": "power-pages-prompts", 198 | "displayName": "Power Pages Prompts", 199 | "searchKeyword": "power-pages-prompts", 200 | "order": 30005, 201 | "visible": false 202 | }, 203 | { 204 | "id": "powerplatform-snippets", 205 | "displayName": "Power Platform Snippets", 206 | "searchKeyword": "powerplatform-snippets", 207 | "order": 30020, 208 | "visible": false 209 | }, 210 | { 211 | "id": "copilot-studio-snippets", 212 | "displayName": "Copilot Studio Snippets", 213 | "searchKeyword": "copilot-studio-snippets", 214 | "order": 30021, 215 | "visible": false 216 | }, 217 | { 218 | "id": "power-apps-snippets", 219 | "displayName": "Power Apps Snippets", 220 | "searchKeyword": "power-apps-snippets", 221 | "order": 30022, 222 | "visible": false 223 | }, 224 | { 225 | "id": "pad-snippets", 226 | "displayName": "Power Automate Desktop Snippets", 227 | "searchKeyword": "pad-snippets", 228 | "order": 30023, 229 | "visible": false 230 | }, 231 | { 232 | "id": "power-pages-snippets", 233 | "displayName": "Power Pages Snippets", 234 | "searchKeyword": "power-pages-snippets", 235 | "order": 30024, 236 | "visible": false 237 | } 238 | ] 239 | } 240 | -------------------------------------------------------------------------------- /system/repositories.json: -------------------------------------------------------------------------------- 1 | { 2 | "repositories" : [ 3 | { 4 | "name": "SharePoint Code Samples", 5 | "relativeUrl": "pnp/sp-dev-samples", 6 | "organization": "pnp", 7 | "repository": "sp-dev-samples", 8 | "tokenType": "App" 9 | }, 10 | { 11 | "name": "SPFx Web Parts", 12 | "relativeUrl": "pnp/sp-dev-fx-webparts", 13 | "organization": "pnp", 14 | "repository": "sp-dev-fx-webparts", 15 | "tokenType": "App" 16 | }, 17 | { 18 | "name": "SPFx Web Parts", 19 | "relativeUrl": "pnp/sp-dev-fx-extensions", 20 | "baselinePath": "samples", 21 | "organization": "pnp", 22 | "repository": "sp-dev-fx-extensions", 23 | "tokenType": "App" 24 | }, 25 | { 26 | "name": "Power Fx Samples", 27 | "relativeUrl": "pnp/powerfx-samples", 28 | "organization": "pnp", 29 | "repository": "powerfx-samples", 30 | "tokenType": "App" 31 | }, 32 | { 33 | "name": "Teams samples", 34 | "relativeUrl": "pnp/teams-dev-samples", 35 | "organization": "pnp", 36 | "repository": "teams-dev-samples", 37 | "tokenType": "App" 38 | }, 39 | { 40 | "name": "List Formatting Samples", 41 | "relativeUrl": "pnp/List-Formatting", 42 | "organization": "pnp", 43 | "repository": "List-Formatting", 44 | "tokenType": "App" 45 | }, 46 | { 47 | "name": "ACEs", 48 | "relativeUrl": "pnp/sp-dev-fx-aces", 49 | "organization": "pnp", 50 | "repository": "sp-dev-fx-aces", 51 | "tokenType": "App" 52 | }, 53 | { 54 | "name": "Reference ACEs", 55 | "relativeUrl": "pnp/spfx-reference-scenarios", 56 | "organization": "pnp", 57 | "repository": "spfx-reference-scenarios", 58 | "tokenType": "App" 59 | }, 60 | { 61 | "name": "Adaptive Card designs", 62 | "relativeUrl": "pnp/AdaptiveCards-Templates", 63 | "organization": "pnp", 64 | "repository": "AdaptiveCards-Templates", 65 | "tokenType": "App" 66 | }, 67 | { 68 | "name": "Script Samples", 69 | "relativeUrl": "pnp/script-samples", 70 | "organization": "pnp", 71 | "repository": "script-samples", 72 | "tokenType": "App" 73 | }, 74 | { 75 | "name": "Power Apps Samples", 76 | "relativeUrl": "pnp/powerapps-samples", 77 | "organization": "pnp", 78 | "repository": "powerapps-samples", 79 | "tokenType": "App" 80 | }, 81 | { 82 | "name": "Power Automate Samples", 83 | "relativeUrl": "pnp/powerautomate-samples", 84 | "organization": "pnp", 85 | "repository": "powerautomate-samples", 86 | "tokenType": "App" 87 | }, 88 | { 89 | "name": "Microsoft Graph Toolkit Samples", 90 | "relativeUrl": "pnp/mgt-samples", 91 | "organization": "pnp", 92 | "repository": "mgt-samples", 93 | "tokenType": "App" 94 | }, 95 | { 96 | "name": "Microsoft Graph Samples", 97 | "relativeUrl": "pnp/graph-samples", 98 | "organization": "pnp", 99 | "repository": "graph-samples", 100 | "tokenType": "App" 101 | }, 102 | { 103 | "name": "Office Add-ins code samples", 104 | "relativeUrl": "OfficeDev/Office-Add-in-samples", 105 | "organization": "OfficeDev", 106 | "repository": "Office-Add-in-samples", 107 | "tokenType": "App" 108 | }, 109 | { 110 | "name": "OneDrive Samples", 111 | "relativeUrl": "OneDrive/Samples", 112 | "organization": "OneDrive", 113 | "repository": "Samples", 114 | "tokenType": "App" 115 | }, 116 | { 117 | "name": "Microsoft Teams samples from engineering", 118 | "relativeUrl": "OfficeDev/microsoft-teams-samples", 119 | "organization": "OfficeDev", 120 | "repository": "microsoft-teams-samples", 121 | "tokenType": "App" 122 | }, 123 | { 124 | "name": "CLI for Microsoft 365", 125 | "relativeUrl": "pnp/cli-microsoft365", 126 | "baselinePath": "docs/docs/sample-scripts", 127 | "depth": 3, 128 | "organization": "pnp", 129 | "repository": "cli-microsoft365", 130 | "tokenType": "App" 131 | }, 132 | { 133 | "name": "SharePoint Solutions", 134 | "relativeUrl": "pnp/sp-dev-solutions", 135 | "organization": "pnp", 136 | "repository": "sp-dev-solutions", 137 | "tokenType": "App" 138 | }, 139 | { 140 | "name": "Teams Fx Samples", 141 | "relativeUrl": "OfficeDev/TeamsFx-Samples", 142 | "organization": "OfficeDev", 143 | "repository": "TeamsFx-Samples", 144 | "tokenType": "App" 145 | }, 146 | { 147 | "name": "Power Platform Samples", 148 | "relativeUrl": "pnp/powerplatform-samples", 149 | "organization": "pnp", 150 | "repository": "powerplatform-samples", 151 | "tokenType": "App" 152 | }, 153 | { 154 | "name": "Power Platform Prompts", 155 | "relativeUrl": "pnp/powerplatform-prompts", 156 | "organization": "pnp", 157 | "repository": "powerplatform-prompts", 158 | "tokenType": "App" 159 | }, 160 | { 161 | "name": "Power Platform Snippets", 162 | "relativeUrl": "pnp/powerplatform-snippets", 163 | "organization": "pnp", 164 | "repository": "powerplatform-snippets", 165 | "tokenType": "App" 166 | }, 167 | { 168 | "name": "Microsoft 365 Developer Proxy samples", 169 | "relativeUrl": "pnp/proxy-samples", 170 | "organization": "pnp", 171 | "repository": "proxy-samples", 172 | "tokenType": "App" 173 | }, 174 | { 175 | "name": "Copilot connectors community samples", 176 | "relativeUrl": "pnp/copilot-connectors-samples", 177 | "organization": "pnp", 178 | "repository": "copilot-connectors-samples", 179 | "tokenType": "App" 180 | }, 181 | { 182 | "name": "Microsoft Graph connector sample 1", 183 | "relativeUrl": "microsoftgraph/msgraph-sample-github-connector-dotnet", 184 | "organization": "MicrosoftGraph", 185 | "repository": "msgraph-sample-github-connector-dotnet", 186 | "tokenType": "Personal" 187 | }, 188 | { 189 | "name": "Microsoft Graph connector sample 2", 190 | "relativeUrl": "microsoftgraph/msgraph-sample-github-connector-python", 191 | "organization": "MicrosoftGraph", 192 | "repository": "msgraph-sample-github-connector-python", 193 | "tokenType": "Personal" 194 | }, 195 | { 196 | "name": "Microsoft Graph connector sample 3", 197 | "relativeUrl": "microsoftgraph/msgraph-sample-github-connector-typescript", 198 | "organization": "MicrosoftGraph", 199 | "repository": "msgraph-sample-github-connector-typescript", 200 | "tokenType": "Personal" 201 | }, 202 | { 203 | "name": "Copilot for Microsoft 365 plugins samples", 204 | "relativeUrl": "OfficeDev/Copilot-for-M365-Plugins-Samples", 205 | "organization": "OfficeDev", 206 | "repository": "Copilot-for-M365-Plugins-Samples", 207 | "tokenType": "App" 208 | }, 209 | { 210 | "name": "Power Apps PCF controls", 211 | "relativeUrl": "microsoft/PowerApps-Samples", 212 | "baselinePath": "component-framework", 213 | "organization": "microsoft", 214 | "repository": "PowerApps-Samples", 215 | "tokenType": "Personal" 216 | }, 217 | { 218 | "name": "Viva Bot Powered ACEs", 219 | "relativeUrl": "pnp/viva-dev-bot-powered-aces", 220 | "organization": "pnp", 221 | "repository": "viva-dev-bot-powered-aces", 222 | "tokenType": "App" 223 | }, 224 | { 225 | "name": "Copilot prompts", 226 | "relativeUrl": "pnp/copilot-prompts", 227 | "organization": "pnp", 228 | "repository": "copilot-prompts", 229 | "tokenType": "App" 230 | }, 231 | { 232 | "name": "Copilot pro-dev samples", 233 | "relativeUrl": "pnp/copilot-pro-dev-samples", 234 | "organization": "pnp", 235 | "repository": "copilot-pro-dev-samples", 236 | "tokenType": "App" 237 | }, 238 | { 239 | "name": "SharePoint Embedded samples", 240 | "relativeUrl": "microsoft/SharePoint-Embedded-Samples", 241 | "organization": "microsoft", 242 | "repository": "SharePoint-Embedded-Samples", 243 | "tokenType": "Personal" 244 | } 245 | ] 246 | } 247 | -------------------------------------------------------------------------------- /system/sample.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "https://developer.microsoft.com/en-us/json-schemas/pnp/samples/v1.0/metadata-schema.json", 3 | "$schema": "http://json-schema.org/draft-07/schema#", 4 | "type": "array", 5 | "items": { 6 | "type": "object", 7 | "properties": { 8 | "name": { 9 | "type": "string" 10 | }, 11 | "version": { 12 | "type": "string" 13 | }, 14 | "source": { 15 | "type": "string" 16 | }, 17 | "title": { 18 | "type": "string" 19 | }, 20 | "url": { 21 | "type": "string" 22 | }, 23 | "creationDateTime": { 24 | "type": "string", 25 | "format": "date-time" 26 | }, 27 | "updateDateTime": { 28 | "type": "string", 29 | "format": "date-time" 30 | }, 31 | "shortDescription": { 32 | "type": "string" 33 | }, 34 | "longDescription": { 35 | "type": "array", 36 | "items": { 37 | "type": "string" 38 | } 39 | }, 40 | "downloadUrl": { 41 | "type": "string" 42 | }, 43 | "products": { 44 | "type": "array", 45 | "items": { 46 | "type": "string" 47 | } 48 | }, 49 | "categories": { 50 | "type": "array", 51 | "items": { 52 | "type": "string" 53 | } 54 | }, 55 | "preview": { 56 | "type": "object", 57 | "properties": { 58 | "label": { 59 | "type": "string" 60 | }, 61 | "url": { 62 | "type": "string" 63 | }, 64 | "settings": { 65 | "type": "object" 66 | } 67 | }, 68 | "required": [ 69 | "label", 70 | "url" 71 | ] 72 | }, 73 | "metadata": { 74 | "type": "array", 75 | "items": { 76 | "type": "object", 77 | "properties": { 78 | "key": { 79 | "type": "string" 80 | }, 81 | "value": { 82 | "type": "string" 83 | } 84 | }, 85 | "required": [ 86 | "key", 87 | "value" 88 | ] 89 | } 90 | }, 91 | "thumbnails": { 92 | "type": "array", 93 | "items": [ 94 | { 95 | "type": "object", 96 | "properties": { 97 | "type": { 98 | "type": "string", 99 | "enum": [ 100 | "image", 101 | "video", 102 | "slideshow" 103 | ] 104 | }, 105 | "order": { 106 | "type": "integer" 107 | }, 108 | "alt": { 109 | "type": "string" 110 | } 111 | }, 112 | "if": { 113 | "properties": { 114 | "type": { 115 | "const": "slideshow" 116 | } 117 | } 118 | }, 119 | "then": { 120 | "properties": { 121 | "slides": { 122 | "type": "array", 123 | "items": { 124 | "type": "object", 125 | "properties": { 126 | "url": { 127 | "type": "string" 128 | }, 129 | "order": { 130 | "type": "integer" 131 | }, 132 | "alt": { 133 | "type": "string" 134 | } 135 | }, 136 | "required": [ 137 | "url", 138 | "order", 139 | "alt" 140 | ] 141 | } 142 | } 143 | }, 144 | "required": [ 145 | "slides" 146 | ] 147 | }, 148 | "else": { 149 | "properties": { 150 | "url": { 151 | "type": "string" 152 | } 153 | }, 154 | "required": [ 155 | "url" 156 | ] 157 | }, 158 | "required": [ 159 | "type", 160 | "order", 161 | "alt" 162 | ] 163 | } 164 | ] 165 | }, 166 | "authors": { 167 | "type": "array", 168 | "items": [ 169 | { 170 | "type": "object", 171 | "properties": { 172 | "gitHubAccount": { 173 | "type": "string" 174 | }, 175 | "company": { 176 | "type": "string" 177 | }, 178 | "pictureUrl": { 179 | "type": "string" 180 | } 181 | }, 182 | "required": [ 183 | "gitHubAccount" 184 | ] 185 | } 186 | ] 187 | }, 188 | "references": { 189 | "type": "array", 190 | "items": [ 191 | { 192 | "type": "object", 193 | "properties": { 194 | "name": { 195 | "type": "string" 196 | }, 197 | "description": { 198 | "type": "string" 199 | }, 200 | "url": { 201 | "type": "string" 202 | } 203 | }, 204 | "required": [ 205 | "name", 206 | "url" 207 | ] 208 | } 209 | ] 210 | } 211 | }, 212 | "required": [ 213 | "name", 214 | "version", 215 | "source", 216 | "title", 217 | "shortDescription", 218 | "products", 219 | "categories", 220 | "metadata", 221 | "thumbnails", 222 | "authors", 223 | "creationDateTime", 224 | "updateDateTime" 225 | ] 226 | } 227 | } -------------------------------------------------------------------------------- /system/trusted-domains.json: -------------------------------------------------------------------------------- 1 | { 2 | "trustedDomains" : [ 3 | { 4 | "id": "Microsoft", 5 | "hostname": "microsoft.com" 6 | }, 7 | { 8 | "id": "GitHub", 9 | "hostname": "github.com" 10 | }, 11 | { 12 | "id": "PnP GitHub IO", 13 | "hostname": "pnp.github.io" 14 | } 15 | ] 16 | } 17 | --------------------------------------------------------------------------------