| Schedules of Concentration of Risk, by Risk Factor [Table Text Block] |
| | | Customer A | | Customer B | | Customer C | | Customer D | | Customer E | | Customer F |
| | | | | | | | | | | | | |
| Six Months Ended June 30, 2023 | | | | | | | | | | | | |
| Revenues, customer concentration risk | | * | | * | | * | | * | | * | | 12% |
| | | | | | | | | | | | | |
| Three Months Ended June 30, 2023 | | | | | | | | | | | | |
| Revenues, customer concentration risk | | * | | * | | * | | * | | * | | 14% |
| | | | | | | | | | | | | |
| Six Months Ended June 30, 2022 | | | | | | | | | | | | |
| Revenues, customer concentration risk | | * | | * | | * | | * | | * | | * |
| | | | | | | | | | | | | |
| Three Months Ended June 30, 2022 | | | | | | | | | | | | |
| Revenues, customer concentration risk | | * | | * | | * | | * | | * | | 11% |
| | | | | | | | | | | | | |
| As of June 30, 2023 | | | | | | | | | | | | |
| Accounts receivable, customer concentration risk | | 11% | | 34% | | 12% | | 24% | | 15% | | - |
| | | | | | | | | | | | | |
| As of December 31, 2022 | | | | | | | | | | | | |
| Accounts receivable, customer concentration risk | | 16% | | 33% | | 24% | | 16% | | * | | - |
| | | Supplier A | | Supplier B | | Supplier C | | Supplier D |
| | | | | | | | | |
| Six Months Ended June 30, 2023 | | | | | | | | |
| Cost of revenues, supplier concentration risk | | 74% | | 13% | | * | | - |
| | | | | | | | | |
| Three Months Ended June 30, 2023 | | | | | | | | |
| Cost of revenues, supplier concentration risk | | 71% | | 22% | | * | | - |
| | | | | | | | | |
| Six Months Ended June 30, 2022 | | | | | | | | |
| Cost of revenues, supplier concentration risk | | * | | - | | 35% | | 47% |
| | | | | | | | | |
| Three Months Ended June 30, 2022 | | | | | | | | |
| Cost of revenues, supplier concentration risk | | * | | - | | * | | 74% |
|