Capability Spec
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.