|
| 1 | +# Quality Checks Results Template |
| 2 | + |
| 3 | +The purpose of this document is to unify the result format of the adapter quality checks. It provides a template to list all required properties which are currently missing, in order to build an adapter of high quality. |
| 4 | +The following sections help to structure the results and divide the required properties in logical coherent topics. |
| 5 | + |
| 6 | +In the first section the general template is provided. In the second section, an exemplary quality check on basis of the template is presented. |
| 7 | + |
| 8 | +## Table of Contents |
| 9 | + |
| 10 | +- [Template](#template) |
| 11 | +- [Documentation](#documentation) |
| 12 | +- [Coverage](#coverage) |
| 13 | +- [Functionality](#functionality) |
| 14 | + |
| 15 | +**Name of the adapter:** _Adapter Name_ <br> |
| 16 | +**Date of the quality check:** _YYYY-MM-DD_ <br> |
| 17 | +**Quality check performed by:** _Name of the tester_ |
| 18 | + |
| 19 | +## General |
| 20 | + |
| 21 | +- [ ] Is the code open sourced under **github.com/openintegrationhub**? |
| 22 | + |
| 23 | +- [ ] Is the repository name correct (_applicationname-adapter/transformer_)? |
| 24 | + |
| 25 | +- [ ] Interaction Adapter Transfomer (To test interplay between Adapter & Transformer): |
| 26 | + |
| 27 | +|Relating Adapter Trigger/Action|Relating Transformer Method|Direction (To/From OIH)|Works (Y/N)?|What is not working?| |
| 28 | +|---|---|---|---|---| |
| 29 | +|_getOrdersPolling_|_transformOrderToOih_|_To Oih_|_yes_|_-_| |
| 30 | +|||||| |
| 31 | +|||||| |
| 32 | +|||||| |
| 33 | + |
| 34 | +## Adapter |
| 35 | + |
| 36 | +### Adapter - Documentation |
| 37 | + |
| 38 | +#### Readme.md |
| 39 | + |
| 40 | +##### Must Have |
| 41 | + |
| 42 | +- [ ] Description of the application adapter connects to |
| 43 | + |
| 44 | +- [ ] List of environment variables that need to be configured (e.g. OAuth ClientID/Secret) |
| 45 | + |
| 46 | +##### Should Have |
| 47 | + |
| 48 | +- [ ] Description of the incoming message and outgoing message for each action/trigger (e.g. Update Contact Action) |
| 49 | + |
| 50 | +- [ ] Description of any attachments generated or consumed for each action/trigger |
| 51 | + |
| 52 | +##### Could Have |
| 53 | + |
| 54 | +- [ ] Version and compatibility information |
| 55 | + |
| 56 | +- [ ] Documentation for the authentication process (How to find API key, etc.) |
| 57 | + |
| 58 | +- [ ] Screen shot of the parameters for each action/trigger with sample meaningful values (if parameters are defined for given trigger/action) |
| 59 | + |
| 60 | +- [ ] Description of the parameters (if any) for each action/trigger |
| 61 | + |
| 62 | +- [ ] Sample of the minimum viable input (e.g. for updating or creating something) for each action/trigger |
| 63 | + |
| 64 | +- [ ] Description of the dynamic metadata generation rules, metadata discovery rules for each action/trigger |
| 65 | + |
| 66 | +- [ ] Known limitations, may be with link to the issue |
| 67 | + |
| 68 | +- [ ] Contribution guidelines (they should be standardized) |
| 69 | + |
| 70 | +- [ ] License and copyright |
| 71 | + |
| 72 | +#### Component.json |
| 73 | + |
| 74 | +- [ ] `component.json` should have a global `description` field filled. |
| 75 | + |
| 76 | +- [ ] `component.json` should have a link to the documentation, e.g. `README` file below |
| 77 | + |
| 78 | +- [ ] Each field in credentials should have a `note` on it explaining what exactly is required here (unless it's obvious, e.g. password) |
| 79 | + |
| 80 | +- [ ] Each field except `password` should have a `placeholder` configured with a meaningful sample (unless it's obvious) |
| 81 | + |
| 82 | +- [ ] Each trigger and action should have a `description` field configured explaining what given trigger/action does |
| 83 | + |
| 84 | +- [ ] Each field in the trigger/action should have a `note` explaining what expected to be there as well as meaningful example in `placeholder` which could be (for optional fields) a default value if field is empty |
| 85 | + |
| 86 | +#### Other Files |
| 87 | + |
| 88 | +##### Must Have |
| 89 | + |
| 90 | +- [ ] Logo - 128x128 PNG file with transparent background |
| 91 | + |
| 92 | +- [ ] License file |
| 93 | + |
| 94 | +##### Could Have |
| 95 | + |
| 96 | +- [ ] Changelog |
| 97 | + |
| 98 | +### Authentication |
| 99 | + |
| 100 | +- [ ] Authentication works |
| 101 | + |
| 102 | +In case authentication is not working, _what is not working_: |
| 103 | + |
| 104 | +*___________ |
| 105 | + |
| 106 | +### Trigger |
| 107 | + |
| 108 | +#### Trigger - Object Coverage |
| 109 | + |
| 110 | +This table should include all obects that can possibly be covered. For each object with at least one relating trigger the value for coulumn **covered** must be **yes**. |
| 111 | + |
| 112 | +|Business Object|Covered| |
| 113 | +|---|---| |
| 114 | +|_Order_|_Yes_| |
| 115 | +|_Item_|_No_| |
| 116 | +||| |
| 117 | +||| |
| 118 | +||| |
| 119 | + |
| 120 | +#### Trigger - Funcationality Coverage |
| 121 | + |
| 122 | +All object that weren't covered at all (see previous section) shouldn't appear in the following table. |
| 123 | + |
| 124 | +|Business Object|getObjectsPolling|getDeletedObjectsPolling|getObjectsWebhook|getDeletedObjectsWebhook| |
| 125 | +|---|---|---|---|---| |
| 126 | +|_Order_|_No_|_No (Not possible to implement)_|_Yes_|_No_| |
| 127 | +|||||| |
| 128 | +|||||| |
| 129 | +|||||| |
| 130 | + |
| 131 | +#### Trigger - Working Functionalities |
| 132 | + |
| 133 | +For each **yes** in the table from the section above there must be one line in the following table. |
| 134 | + |
| 135 | +|Business Object|Trigger Type|Works (Yes/No)|What is not working| |
| 136 | +|---|---|---|---| |
| 137 | +|_Order_|_getOrdersWebhook_|_No_|_Order update in system does not activate the trigger_| |
| 138 | +||||| |
| 139 | +||||| |
| 140 | +||||| |
| 141 | + |
| 142 | +### Action |
| 143 | + |
| 144 | +#### Action - Object Coverage |
| 145 | + |
| 146 | +This table should include all obects that can possibly be covered. For each object with at least one relating action the value for coulumn **covered** must be **yes**. |
| 147 | + |
| 148 | +|Business Object|Covered| |
| 149 | +|---|---| |
| 150 | +|_Order_|_Yes_| |
| 151 | +|_Item_|_No_| |
| 152 | +||| |
| 153 | +||| |
| 154 | +||| |
| 155 | + |
| 156 | +#### Action - Funcationality Coverage |
| 157 | + |
| 158 | +All object that weren't covered at all (see previous section) shouldn't appear in the following table. |
| 159 | + |
| 160 | +|Business Object|upsertObject|deleteObject|lookupObjectByField| |
| 161 | +|---|---|---|---| |
| 162 | +|_Order_|_Yes_|_No (Not possible to implement)_|_No Webhooks Supported_| |
| 163 | +||||| |
| 164 | +||||| |
| 165 | +||||| |
| 166 | + |
| 167 | +#### Action - Working Functionalities |
| 168 | + |
| 169 | +For each **yes** in the table from the section above there must be one line in the following table. |
| 170 | + |
| 171 | +|Business Object|Action Type|Works (Yes/No)|What is not working| |
| 172 | +|---|---|---|---| |
| 173 | +|_Order_|_upsertObject_|_No_|_Order with given was not updated in target system_| |
| 174 | +||||| |
| 175 | +||||| |
| 176 | +||||| |
| 177 | + |
| 178 | +## Transformer |
| 179 | + |
| 180 | +### Transformer - Documentation |
| 181 | + |
| 182 | +#### Readme.md |
| 183 | + |
| 184 | +##### Must Have |
| 185 | + |
| 186 | +- [ ] A short description of the application the transformer refers to |
| 187 | + |
| 188 | +- [ ] Description of the adapter with which the transformer is interacting |
| 189 | + |
| 190 | +- [ ] Type and version of the Open Integration Hub master data model the transformer refers to |
| 191 | + |
| 192 | +##### Should Have |
| 193 | + |
| 194 | +- [ ] Description of domain objects the transformer is able to transform |
| 195 | + |
| 196 | +- [ ] A list of all actions that are available |
| 197 | + |
| 198 | +##### Could Have |
| 199 | + |
| 200 | +- [ ] Version of the adapter the transformer refers to |
| 201 | + |
| 202 | +- [ ] A how it works section that explains how the transformer acutally works including |
| 203 | + |
| 204 | + - [ ] A textual description |
| 205 | + |
| 206 | + - [ ] Code Snippets of exemplary JSONata expressions |
| 207 | + |
| 208 | + - [ ] Screenshots to enhance comprehensibility |
| 209 | + |
| 210 | +- [ ] Version of the transformer (format: Version X.Y.Z) |
| 211 | + |
| 212 | +- [ ] License |
| 213 | + |
| 214 | +#### Component.json |
| 215 | + |
| 216 | +##### Must Have |
| 217 | + |
| 218 | +- [ ] Descriptive title of the transformer that follows the common format: "{yourApplicationName-transformer}" |
| 219 | + |
| 220 | +- [ ] Short description of the transformer |
| 221 | + |
| 222 | +- [ ] All Actions are completly described. This includes: |
| 223 | + |
| 224 | + - [ ] A title for each action |
| 225 | + |
| 226 | + - [ ] A short description for each action of what it does |
| 227 | + |
| 228 | + - [ ] Folder to the main source |
| 229 | + |
| 230 | + - [ ] Metadata object |
| 231 | + |
| 232 | +- [ ] with an empty out object |
| 233 | + |
| 234 | +- [ ] without an in object |
| 235 | + |
| 236 | +#### Other Files |
| 237 | + |
| 238 | +##### Must Have |
| 239 | + |
| 240 | +- [ ] License file |
| 241 | + |
| 242 | +##### Could Have |
| 243 | + |
| 244 | +- [ ] Changelog |
| 245 | + |
| 246 | +### Transform Methods |
| 247 | + |
| 248 | +#### Transform Methods - Object Coverage |
| 249 | + |
| 250 | +This table should include all obects that can possibly be covered. For each object with at least one relating transforming method the value for coulumn **covered** must be **yes**. |
| 251 | + |
| 252 | +|Business Object|Covered| |
| 253 | +|---|---| |
| 254 | +|_Order_|_Yes_| |
| 255 | +|_Item_|_No_| |
| 256 | +|_Contact_|_Yes_| |
| 257 | +||| |
| 258 | +||| |
| 259 | +||| |
| 260 | + |
| 261 | +#### Transform Methods - Functionality Coverage |
| 262 | + |
| 263 | +All object that weren't covered at all (see previous section) shouldn't appear in the following table. |
| 264 | + |
| 265 | +|Business Object|TransformObjectToOih|TransformObjectFromOih| |
| 266 | +|---|---|---| |
| 267 | +|_Order_|_Yes_|_Yes_| |
| 268 | +|_Contact_|_Yes_|_No_| |
| 269 | +|||| |
| 270 | +|||| |
| 271 | +||||| |
| 272 | + |
| 273 | +#### Transform Methods - Working Functionalities |
| 274 | + |
| 275 | +For each **yes** in the table from the section above there must be one line in the following table. |
| 276 | + |
| 277 | +|Business Object|Transformation Direction|Works (Yes / No) |What is not working| |
| 278 | +|---|---|---|---| |
| 279 | +|_Order_|_ToOih_|_Yes_|_-_| |
| 280 | +|_Contact_|_FromOih_|_Yes_|_-_| |
| 281 | +||||| |
| 282 | +||||| |
| 283 | +||||| |
| 284 | + |
| 285 | +#### Transform Methods- Split / Aggregation |
| 286 | + |
| 287 | +This section should include information about possible (missing) split & aggregate funcationalities. _Example:_ In some cases an object in the source systems must be split into multiple objects to match the OIH structure. If only one object is transferred, some information are lost. The following example data supports this scenario: |
| 288 | + |
| 289 | +**Example Contact Object** in source system: |
| 290 | + |
| 291 | +- Order information |
| 292 | +- Customer information relating to order |
| 293 | +- Products included by the order |
| 294 | + |
| 295 | +This object should be split into 3 objects when transferring it via oih: |
| 296 | + |
| 297 | +- order |
| 298 | +- person |
| 299 | +- product(s) |
0 commit comments