Skip to content

Commit bc8dd20

Browse files
authored
Merge pull request #43 from openintegrationhub/updateQualityCheckTemplate
Update quality check template
2 parents d702587 + 337a161 commit bc8dd20

File tree

2 files changed

+299
-93
lines changed

2 files changed

+299
-93
lines changed

Adapters/AdapterChecklists/QualityCheckResultsTemplate.md

Lines changed: 0 additions & 93 deletions
This file was deleted.

QualityCheckTemplate.md

Lines changed: 299 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,299 @@
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

Comments
 (0)