Gateway: add APNs push test pipeline (#20307)

Merged via /review-pr -> /prepare-pr -> /merge-pr.

Prepared head SHA: 6a1c442207
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
This commit is contained in:
Mariano
2026-02-18 19:32:42 +00:00
committed by GitHub
parent 1f5cd65d60
commit 99d099aa84
14 changed files with 839 additions and 0 deletions

View File

@@ -118,6 +118,7 @@ import {
NodePairVerifyParamsSchema,
NodeRenameParamsSchema,
} from "./nodes.js";
import { PushTestParamsSchema, PushTestResultSchema } from "./push.js";
import {
SessionsCompactParamsSchema,
SessionsDeleteParamsSchema,
@@ -171,6 +172,8 @@ export const ProtocolSchemas: Record<string, TSchema> = {
NodeInvokeResultParams: NodeInvokeResultParamsSchema,
NodeEventParams: NodeEventParamsSchema,
NodeInvokeRequestEvent: NodeInvokeRequestEventSchema,
PushTestParams: PushTestParamsSchema,
PushTestResult: PushTestResultSchema,
SessionsListParams: SessionsListParamsSchema,
SessionsPreviewParams: SessionsPreviewParamsSchema,
SessionsResolveParams: SessionsResolveParamsSchema,

View File

@@ -0,0 +1,27 @@
import { Type } from "@sinclair/typebox";
import { NonEmptyString } from "./primitives.js";
const ApnsEnvironmentSchema = Type.String({ enum: ["sandbox", "production"] });
export const PushTestParamsSchema = Type.Object(
{
nodeId: NonEmptyString,
title: Type.Optional(Type.String()),
body: Type.Optional(Type.String()),
environment: Type.Optional(ApnsEnvironmentSchema),
},
{ additionalProperties: false },
);
export const PushTestResultSchema = Type.Object(
{
ok: Type.Boolean(),
status: Type.Integer(),
apnsId: Type.Optional(Type.String()),
reason: Type.Optional(Type.String()),
tokenSuffix: Type.String(),
topic: Type.String(),
environment: ApnsEnvironmentSchema,
},
{ additionalProperties: false },
);

View File

@@ -111,6 +111,7 @@ import type {
NodePairVerifyParamsSchema,
NodeRenameParamsSchema,
} from "./nodes.js";
import type { PushTestParamsSchema, PushTestResultSchema } from "./push.js";
import type {
SessionsCompactParamsSchema,
SessionsDeleteParamsSchema,
@@ -160,6 +161,8 @@ export type NodeDescribeParams = Static<typeof NodeDescribeParamsSchema>;
export type NodeInvokeParams = Static<typeof NodeInvokeParamsSchema>;
export type NodeInvokeResultParams = Static<typeof NodeInvokeResultParamsSchema>;
export type NodeEventParams = Static<typeof NodeEventParamsSchema>;
export type PushTestParams = Static<typeof PushTestParamsSchema>;
export type PushTestResult = Static<typeof PushTestResultSchema>;
export type SessionsListParams = Static<typeof SessionsListParamsSchema>;
export type SessionsPreviewParams = Static<typeof SessionsPreviewParamsSchema>;
export type SessionsResolveParams = Static<typeof SessionsResolveParamsSchema>;