@cfxlabsinc/b2b-services
    Preparing search index...

    Shadow-copy service for AiPrise user (KYC) profiles. The identity-api webhook consumer calls refresh on every AiPrise user-profile event; readers use get / getByAipriseId / search instead of calling AiPrise.

    Index
    • Fetches the full profile from AiPrise and upserts the shadow row. The upsert is monotonic on the payload's updated_at: a snapshot older than the stored one never overwrites data / the extracted columns (out-of-order webhook retries), but the successful fetch still bumps syncedAt and clears deletedAt — a live fetch proves the profile exists.

      Parameters

      • args: { aipriseId: string }

      Returns Promise<
          | { ok: true; value: AiPriseUserProfileShadow }
          | { error: ServiceError; ok: false },
      >

    • Parameters

      • __namedParameters: {
            aipriseIds?: string[];
            clientReferenceIds?: string[];
            createdAt?: DbTimestampCriteria;
            ids?: string[];
            orderBy?: DbOrderByCriterion<
                Omit<
                    PgTableWithColumns<
                        {
                            columns: {
                                aipriseId: PgBuildColumn<
                                    "aiprise_user_profile",
                                    SetNotNull<PgTextBuilder<(...)>>,
                                    {
                                        data: string;
                                        dataType: "string";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: false;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: true;
                                        tableName: "aiprise_user_profile";
                                    },
                                >;
                                clientReferenceId: PgBuildColumn<
                                    "aiprise_user_profile",
                                    PgTextBuilder<[(...), ...(...)[]]>,
                                    {
                                        data: string;
                                        dataType: "string";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: false;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: false;
                                        tableName: "aiprise_user_profile";
                                    },
                                >;
                                createdAt: PgBuildColumn<
                                    "aiprise_user_profile",
                                    SetHasDefault<SetNotNull<(...)>>,
                                    {
                                        data: Date;
                                        dataType: "object date";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: true;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: true;
                                        tableName: "aiprise_user_profile";
                                    },
                                >;
                                data: PgBuildColumn<
                                    "aiprise_user_profile",
                                    Set$Type<SetNotNull<(...)>, AiPriseUserProfileData>,
                                    {
                                        data: AiPriseUserProfileData;
                                        dataType: "object json";
                                        driverParam: unknown;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: false;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: true;
                                        tableName: "aiprise_user_profile";
                                    },
                                >;
                                deletedAt: PgBuildColumn<
                                    "aiprise_user_profile",
                                    PgTimestampBuilder,
                                    {
                                        data: Date;
                                        dataType: "object date";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: false;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: false;
                                        tableName: "aiprise_user_profile";
                                    },
                                >;
                                externalId: PgBuildColumn<
                                    "aiprise_user_profile",
                                    SetHasRuntimeDefault<SetNotNull<(...)>>,
                                    {
                                        data: string;
                                        dataType: "string";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: true;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: true;
                                        tableName: "aiprise_user_profile";
                                    },
                                >;
                                id: PgBuildColumn<
                                    "aiprise_user_profile",
                                    HasIdentity<SetIsPrimaryKey<(...)>, "byDefault">,
                                    {
                                        data: number;
                                        dataType: "number int32";
                                        driverParam: (...) | (...);
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: true;
                                        hasRuntimeDefault: false;
                                        identity: "byDefault";
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: true;
                                        tableName: "aiprise_user_profile";
                                    },
                                >;
                                name: PgBuildColumn<
                                    "aiprise_user_profile",
                                    PgTextBuilder<[(...), ...(...)[]]>,
                                    {
                                        data: string;
                                        dataType: "string";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: false;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: false;
                                        tableName: "aiprise_user_profile";
                                    },
                                >;
                                profileUpdatedAt: PgBuildColumn<
                                    "aiprise_user_profile",
                                    PgTimestampBuilder,
                                    {
                                        data: Date;
                                        dataType: "object date";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: false;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: false;
                                        tableName: "aiprise_user_profile";
                                    },
                                >;
                                result: PgBuildColumn<
                                    "aiprise_user_profile",
                                    Set$Type<PgTextBuilder<(...)>, (...) | (...) | (...) | (...) | (...)>,
                                    {
                                        data: (...) | (...) | (...) | (...) | (...);
                                        dataType: "string";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: false;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: false;
                                        tableName: "aiprise_user_profile";
                                    },
                                >;
                                syncedAt: PgBuildColumn<
                                    "aiprise_user_profile",
                                    SetNotNull<PgTimestampBuilder>,
                                    {
                                        data: Date;
                                        dataType: "object date";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: false;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: true;
                                        tableName: "aiprise_user_profile";
                                    },
                                >;
                                updatedAt: PgBuildColumn<
                                    "aiprise_user_profile",
                                    SetHasDefault<SetHasDefault<(...)>>,
                                    {
                                        data: Date;
                                        dataType: "object date";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: true;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: true;
                                        tableName: "aiprise_user_profile";
                                    },
                                >;
                            };
                            dialect: "pg";
                            name: "aiprise_user_profile";
                            schema: "b2b";
                        },
                    >,
                    "enableRLS",
                >,
                "profileUpdatedAt"
                | "syncedAt"
                | "createdAt"
                | "updatedAt",
            >[];
            page?: number;
            pageSize?: number;
            q?: string;
            results?: NonNullable<
                "APPROVED"
                | "DECLINED"
                | "REVIEW"
                | "UNKNOWN"
                | "DEACTIVATED"
                | null,
            >[];
            updatedAt?: DbTimestampCriteria;
        }
        • OptionalaipriseIds?: string[]
        • OptionalclientReferenceIds?: string[]
        • OptionalcreatedAt?: DbTimestampCriteria
        • Optionalids?: string[]
        • OptionalorderBy?: DbOrderByCriterion<
              Omit<
                  PgTableWithColumns<
                      {
                          columns: {
                              aipriseId: PgBuildColumn<
                                  "aiprise_user_profile",
                                  SetNotNull<PgTextBuilder<(...)>>,
                                  {
                                      data: string;
                                      dataType: "string";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: false;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: true;
                                      tableName: "aiprise_user_profile";
                                  },
                              >;
                              clientReferenceId: PgBuildColumn<
                                  "aiprise_user_profile",
                                  PgTextBuilder<[(...), ...(...)[]]>,
                                  {
                                      data: string;
                                      dataType: "string";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: false;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: false;
                                      tableName: "aiprise_user_profile";
                                  },
                              >;
                              createdAt: PgBuildColumn<
                                  "aiprise_user_profile",
                                  SetHasDefault<SetNotNull<(...)>>,
                                  {
                                      data: Date;
                                      dataType: "object date";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: true;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: true;
                                      tableName: "aiprise_user_profile";
                                  },
                              >;
                              data: PgBuildColumn<
                                  "aiprise_user_profile",
                                  Set$Type<SetNotNull<(...)>, AiPriseUserProfileData>,
                                  {
                                      data: AiPriseUserProfileData;
                                      dataType: "object json";
                                      driverParam: unknown;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: false;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: true;
                                      tableName: "aiprise_user_profile";
                                  },
                              >;
                              deletedAt: PgBuildColumn<
                                  "aiprise_user_profile",
                                  PgTimestampBuilder,
                                  {
                                      data: Date;
                                      dataType: "object date";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: false;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: false;
                                      tableName: "aiprise_user_profile";
                                  },
                              >;
                              externalId: PgBuildColumn<
                                  "aiprise_user_profile",
                                  SetHasRuntimeDefault<SetNotNull<(...)>>,
                                  {
                                      data: string;
                                      dataType: "string";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: true;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: true;
                                      tableName: "aiprise_user_profile";
                                  },
                              >;
                              id: PgBuildColumn<
                                  "aiprise_user_profile",
                                  HasIdentity<SetIsPrimaryKey<(...)>, "byDefault">,
                                  {
                                      data: number;
                                      dataType: "number int32";
                                      driverParam: (...) | (...);
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: true;
                                      hasRuntimeDefault: false;
                                      identity: "byDefault";
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: true;
                                      tableName: "aiprise_user_profile";
                                  },
                              >;
                              name: PgBuildColumn<
                                  "aiprise_user_profile",
                                  PgTextBuilder<[(...), ...(...)[]]>,
                                  {
                                      data: string;
                                      dataType: "string";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: false;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: false;
                                      tableName: "aiprise_user_profile";
                                  },
                              >;
                              profileUpdatedAt: PgBuildColumn<
                                  "aiprise_user_profile",
                                  PgTimestampBuilder,
                                  {
                                      data: Date;
                                      dataType: "object date";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: false;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: false;
                                      tableName: "aiprise_user_profile";
                                  },
                              >;
                              result: PgBuildColumn<
                                  "aiprise_user_profile",
                                  Set$Type<PgTextBuilder<(...)>, (...) | (...) | (...) | (...) | (...)>,
                                  {
                                      data: (...) | (...) | (...) | (...) | (...);
                                      dataType: "string";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: false;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: false;
                                      tableName: "aiprise_user_profile";
                                  },
                              >;
                              syncedAt: PgBuildColumn<
                                  "aiprise_user_profile",
                                  SetNotNull<PgTimestampBuilder>,
                                  {
                                      data: Date;
                                      dataType: "object date";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: false;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: true;
                                      tableName: "aiprise_user_profile";
                                  },
                              >;
                              updatedAt: PgBuildColumn<
                                  "aiprise_user_profile",
                                  SetHasDefault<SetHasDefault<(...)>>,
                                  {
                                      data: Date;
                                      dataType: "object date";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: true;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: true;
                                      tableName: "aiprise_user_profile";
                                  },
                              >;
                          };
                          dialect: "pg";
                          name: "aiprise_user_profile";
                          schema: "b2b";
                      },
                  >,
                  "enableRLS",
              >,
              "profileUpdatedAt"
              | "syncedAt"
              | "createdAt"
              | "updatedAt",
          >[]
        • Optionalpage?: number

          Defaults to 1

        • OptionalpageSize?: number

          Defaults to 50

        • Optionalq?: string

          Free-text lookup, OR of: exact aipriseId, exact clientReferenceId, case-insensitive substring of name or the payload email, and (when the query carries 5+ digits) a digit-normalized match on the payload phone.

        • Optionalresults?: NonNullable<
              "APPROVED"
              | "DECLINED"
              | "REVIEW"
              | "UNKNOWN"
              | "DEACTIVATED"
              | null,
          >[]
        • OptionalupdatedAt?: DbTimestampCriteria

      Returns Promise<
          {
              ok: true;
              value: {
                  hasNext: boolean;
                  items: AiPriseUserProfileShadow[];
                  total: number;
              };
          },
      >