Export-control intake forms (KIO Customer Intake Form 4) that customers fill in for a business device before bringing it into a KIO datacenter.Concepts#
One form per device declaration: equipment details and ECCN, advanced IC controls, export license, ownership, parties involved, compliance check and the responsible person.
Conditional fields: z_number when a license application was submitted, owner_details when the customer does not own all the equipment, violation_explanation when there is a violation reason.
Files: the export license and the responsible person's identification are uploaded as raw bytes to their own endpoints and downloaded through short-lived pre-signed URLs.
Access: business users only see their own business's forms; KIO users see all of them.
Validation: requests are validated with Joi; invalid requests return HTTP 400 with { statusCode, error, message }.
Endpoints#
GET /v1/kiolink/intake-formsGET /v1/kiolink/intake-forms/{id}POST /v1/kiolink/intake-formsPATCH /v1/kiolink/intake-forms/{id}DELETE /v1/kiolink/intake-forms/{id}POST /v1/kiolink/intake-forms/{id}/license-fileGET /v1/kiolink/intake-forms/{id}/license-filePOST /v1/kiolink/intake-forms/{id}/identification-fileGET /v1/kiolink/intake-forms/{id}/identification-fileGET /v1/kiolink/intake-forms/{id}/reportSource#
Router: routes/v1/intake-forms.router.js
Validation: schemas/kiolink/intake-form.schema.js
Controller: controllers/kiolink/intake-form.controller.js
Services: services/kiolink/intake-form.service.js, services/kiolink/intake-form-report.service.js
Model: models/intake_forms.js
Modified at 2026-10-06 22:37:15