Random User Generator · Capability

Multi Nationality Cohort

Run with Naftiko

Capability Spec

multi-nationality-cohort.yaml Raw ↑
apiVersion: naftiko.dev/v1
kind: Capability
metadata:
  name: multi-nationality-cohort
  title: Build a Multi-Nationality User Cohort
  description: |
    Workflow capability that pulls balanced subsets of synthetic users across
    a set of nationalities (e.g. for localization, i18n, or address-parsing
    tests) and merges them into a single cohort.
  provider: randomuser
spec:
  inputs:
    nationalities:
      type: array
      items: { type: string, pattern: "^[a-z]{2}$" }
      default: [us, gb, fr, de, br, in]
    perNationality:
      type: integer
      default: 25
  steps:
    - name: fan-out
      kind: foreach
      over: "{{ inputs.nationalities }}"
      as: nat
      do:
        capability: randomuser-users
        operation: generateUsers
        params:
          results: "{{ inputs.perNationality }}"
          nat: "{{ nat }}"
          exc: login
        capture:
          batch: $.results
    - name: merge
      kind: reduce
      from: fan-out
      strategy: concat
      output: cohort
  guarantees:
    - Cohort size = len(nationalities) * perNationality.
    - Each user's `nat` matches the requested nationality bucket.