diff --git a/src/measurement/handler/result.ts b/src/measurement/handler/result.ts index 45ee9553..a2478531 100644 --- a/src/measurement/handler/result.ts +++ b/src/measurement/handler/result.ts @@ -33,7 +33,7 @@ const tracerouteResultSchema = Joi.object({ resolvedAddress: Joi.string().allow(null).required(), resolvedHostname: Joi.string().allow(null).required(), timings: Joi.array().items(Joi.object({ - rtt: Joi.number().required(), + rtt: Joi.number().allow(null).required(), })).required(), })), }); @@ -52,9 +52,9 @@ const dnsResultSchema = Joi.alternatives([ Joi.object({ name: Joi.string().allow(null).required(), type: Joi.string().allow(null).required(), - ttl: Joi.number().required(), + ttl: Joi.number().allow(null).required(), class: Joi.string().allow(null).required(), - value: Joi.string().required(), + value: Joi.string().allow(null).required(), }), Joi.object({}), ])), @@ -71,9 +71,9 @@ const dnsResultSchema = Joi.alternatives([ Joi.object({ name: Joi.string().allow(null).required(), type: Joi.string().allow(null).required(), - ttl: Joi.number().required(), + ttl: Joi.number().allow(null).required(), class: Joi.string().allow(null).required(), - value: Joi.string().required(), + value: Joi.string().allow(null).required(), }), Joi.object({}), ])).required(), @@ -91,21 +91,21 @@ const mtrResultSchema = Joi.object({ resolvedAddress: Joi.string().allow(null).required(), resolvedHostname: Joi.string().allow(null).required(), stats: Joi.object({ - min: Joi.number().required(), - max: Joi.number().required(), - avg: Joi.number().required(), - total: Joi.number().required(), - loss: Joi.number().required(), - rcv: Joi.number().required(), - drop: Joi.number().required(), - stDev: Joi.number().required(), - jMin: Joi.number().required(), - jMax: Joi.number().required(), - jAvg: Joi.number().required(), + min: Joi.number().allow(null).required(), + max: Joi.number().allow(null).required(), + avg: Joi.number().allow(null).required(), + total: Joi.number().allow(null).required(), + loss: Joi.number().allow(null).required(), + rcv: Joi.number().allow(null).required(), + drop: Joi.number().allow(null).required(), + stDev: Joi.number().allow(null).required(), + jMin: Joi.number().allow(null).required(), + jMax: Joi.number().allow(null).required(), + jAvg: Joi.number().allow(null).required(), }).required(), timings: Joi.array().items(Joi.object({ - seq: Joi.string(), - rtt: Joi.number(), + seq: Joi.string().allow(null), + rtt: Joi.number().allow(null), })).required(), })), }); @@ -123,21 +123,21 @@ const httpResultSchema = Joi.object({ timings: Joi.object().pattern(Joi.string(), Joi.number().allow(null)), tls: Joi.object({ authorized: Joi.boolean().required(), - createdAt: Joi.string(), - expiresAt: Joi.string(), + createdAt: Joi.string().allow(null), + expiresAt: Joi.string().allow(null), subject: Joi.object({ - CN: Joi.string().required(), + CN: Joi.string().allow(null).required(), alt: Joi.string().allow(null).required(), }).required(), issuer: Joi.object({ - C: Joi.string().required(), - O: Joi.string().required(), - CN: Joi.string().required(), + C: Joi.string().allow(null).required(), + O: Joi.string().allow(null).required(), + CN: Joi.string().allow(null).required(), }).required(), keyType: Joi.string().valid('RSA', 'EC').allow(null).required(), keyBits: Joi.number().allow(null).required(), - serialNumber: Joi.string().required(), - fingerprint256: Joi.string().required(), + serialNumber: Joi.string().allow(null).required(), + fingerprint256: Joi.string().allow(null).required(), publicKey: Joi.string().allow(null).required(), }).allow(null), });