Test shared pipeline access across users

This commit is contained in:
2026-09-15 00:38:55 +00:00
parent dddc5ee884
commit f53da82feb

View File

@@ -18,6 +18,10 @@ prompt_library_repository=$(cd "$repository_root/../assets/narratio-prompts" &&
prompt_library_root=/usr/local/share/narratio/prompt-library
campaigns_revision=$(git -C "$campaigns_repository" rev-parse HEAD)
prompt_library_revision=$(git -C "$prompt_library_repository" rev-parse HEAD)
operator_user="dnd_f0009_${$}"
shared_fixture_root="/var/lib/narratio/${operator_user}"
service_fixture_file="$shared_fixture_root/service.txt"
operator_fixture_file="$shared_fixture_root/operator.txt"
baseline_args=(
-e 'dnd_pipeline_whisperx_transcribe_url=http://127.0.0.1:8000/transcribe'
-e "dnd_pipeline_campaigns_repository_url=file://$campaigns_repository"
@@ -30,6 +34,8 @@ baseline_args=(
cleanup() {
exit_status=$?
trap - EXIT
/usr/bin/sudo /bin/rm -rf -- "$shared_fixture_root" || true
/usr/bin/sudo /usr/sbin/userdel --remove "$operator_user" 2>/dev/null || true
"$ansible_playbook" -i "$inventory" "${baseline_args[@]}" "$converge" >/dev/null 2>&1 || true
rm -rf -- "$test_tmp"
exit "$exit_status"
@@ -84,6 +90,19 @@ run_converge "$baseline_log" "${baseline_args[@]}"
/usr/bin/sudo -u narratio /usr/local/bin/narratio config diff default testing \
--config /usr/local/etc/narratio/pipeline.yml --campaign centaurs | \
awk -F '\t' '$1 != "changed" || $2 !~ /\.profile_id$/ { invalid = 1 } END { exit invalid || NR == 0 }'
/usr/bin/sudo /usr/sbin/useradd --create-home --groups narratio \
--shell /usr/sbin/nologin "$operator_user"
/usr/bin/sudo -u "$operator_user" /usr/local/bin/narratio config validate \
--config /usr/local/etc/narratio/pipeline.yml --campaign centaurs
/usr/bin/sudo -u nobody /bin/cat /usr/local/etc/narratio/pipeline.yml >/dev/null
/usr/bin/sudo -u narratio /bin/sh -c \
"umask 077; mkdir '$shared_fixture_root'; printf '%s\\n' service-created > '$service_fixture_file'"
/usr/bin/sudo -u "$operator_user" /bin/sh -c \
"grep -Fx service-created '$service_fixture_file'; printf '%s\\n' operator-appended >> '$service_fixture_file'"
/usr/bin/sudo -u narratio /bin/grep -Fx operator-appended "$service_fixture_file"
/usr/bin/sudo -u "$operator_user" /bin/sh -c \
"umask 077; printf '%s\\n' operator-created > '$operator_fixture_file'"
/usr/bin/sudo -u narratio /bin/grep -Fx operator-created "$operator_fixture_file"
session_recap_prompt_json=$(/usr/local/bin/scriptorium inspect prompt \
--config /usr/local/etc/scriptorium/config.yml \
--prompt dnd.session_recap --prompt-version 2.0.0 --format json)