Add Phase A product workspace and pipeline control-plane (pipeline app, docs, env-driven settings, tests)#115
Open
RitheeshBaradwaj wants to merge 1 commit into
Conversation
| raise Http404("Invalid download token") | ||
|
|
||
| try: | ||
| return FileResponse(open(file_path, "rb")) |
| trace_id=job.trace_id, | ||
| ) | ||
| except InvalidTransitionError as exc: | ||
| return Response({"detail": str(exc)}, status=status.HTTP_400_BAD_REQUEST) |
| try: | ||
| result = transition_job(job=job, **request_serializer.validated_data) | ||
| except InvalidTransitionError as exc: | ||
| return Response({"detail": str(exc)}, status=status.HTTP_400_BAD_REQUEST) |
| stage_name=serializer.validated_data.get("stage_name"), | ||
| ) | ||
| except (ValueError, InvalidTransitionError) as exc: | ||
| return Response({"detail": str(exc)}, status=status.HTTP_400_BAD_REQUEST) |
| idempotency_key=serializer.validated_data["idempotency_key"], | ||
| ) | ||
| except (ValueError, InvalidTransitionError) as exc: | ||
| return Response({"detail": str(exc)}, status=status.HTTP_400_BAD_REQUEST) |
| try: | ||
| artifact = resolve_delivery_download(job=job, delivery=delivery, token=token) | ||
| except Http404 as exc: | ||
| return Response({"detail": str(exc)}, status=status.HTTP_404_NOT_FOUND) |
| failure_idempotency_key=serializer.validated_data["idempotency_key"], | ||
| ) | ||
| return Response( | ||
| {"detail": str(exc), "dead_letter_id": str(dead_letter.id), "failed_attempt": dead_letter.failed_attempt}, |
| failure_idempotency_key=serializer.validated_data["idempotency_key"], | ||
| ) | ||
| return Response( | ||
| {"detail": str(exc), "dead_letter_id": str(dead_letter.id), "failed_attempt": dead_letter.failed_attempt}, |
| failure_idempotency_key=serializer.validated_data["idempotency_key"], | ||
| ) | ||
| return Response( | ||
| {"detail": str(exc), "dead_letter_id": str(dead_letter.id), "failed_attempt": dead_letter.failed_attempt}, |
| failure_idempotency_key=serializer.validated_data["idempotency_key"], | ||
| ) | ||
| return Response( | ||
| {"detail": str(exc), "dead_letter_id": str(dead_letter.id), "failed_attempt": dead_letter.failed_attempt}, |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
product/to drive an audio-first localization MVP.pipelinecontrol-plane to make job/stage lifecycle, artifacts, retries, deliveries, alerts and review workflows first-class and auditable.Description
product/workspace with strategy, architecture, implementation plan, ADRs, governance contracts, operational runbooks, QA matrices, team roles, prompts, and execution board (WI-001..WI-017).pipelineapp implementing models, migrations, admin, serializers, views, URLs, templates and middleware to manageJob,StageExecution,Artifact,DeadLetterEvent,DeliveryRecord,AlertEvent,ReviewCorrection, andReviewDecisionentities; this includesorchestrator.py,retry_controls.py,delivery.py,alerting.py,telemetry.py, and stage skeletons (asr,mt,tts,compositing,vertical_slice).transition_job, legal transition map, dead-letter recording, replay/retry APIs, tokenized signed deliveries and webhook dispatch.check_pipeline_alerts,run_phase_a_acceptance,run_phase_a_scorecard,validate_phase_a_slos, andrelease_readiness_phase_a.MIMASA_*variables), pluggableDATABASE_URL, Redis/Channels handling, Celery backend settings, and production security defaults insrc/api/mimasa/mimasa/settings.py.translationapp to trackuser, attach output files, createTranslationNotificationobjects, add auth endpoints (/auth/signup/,/auth/login/), notification list/ack endpoints, and improvedrun_translationCelery task to publish notifications and download tokens.README.mdwith aProduct Workspacelink, production environment configuration examples and documented new API features.channels_redistorequirements.txtand removed several experimental/temp audioseparator scripts.Testing
src/api/mimasa/pipeline/tests.pycovering alert evaluation/sync, acceptance checks, QA scorecard, SLO validation and release-readiness report, and ran them withpytest; all tests passed.check_pipeline_alerts) in tests to validatesync_alert_eventsbehavior; observations in tests succeeded.Codex Task