URL of Endpoint Method View Function Function Description Models Serializers Permissions Notes transients/ GET transient_list Display transients table Transient TransientFilter TransientTable manual none add/ POST add_transient Add new transient to database after verifying no conflicts with existing transients Transient none transients// GET/POST results Full workflow: user_warning(transient) compile_workflow_status(transient) compile_photometry_results(transient, scope) compile_sed_results(transient, category, scope) get transient collect cutouts compile aperture choose cutout GET method handling POST method handling display Bokeh plot if thumbnail not available download SED thumbnails construct render function return render Status Transient Cutout AperturePhotometry Filter Aperture Alias ImageGetForm SEDFittingResult function has many duplicate calls for helpers such as: compile_sed_results, compile_photometry_results which are all defined as nested functions make an issue to remove the POST method "remove this obsolete block" not necessarily being called on download_chains/// download_chains Retrieves SED Fit "chains_file", stream from S3 bucket by helper: stream_sed_output_file these are 3 download functions but it should be 1 api endpoint with just a parameter differentiating between the 3 functions look into whether DRF already has a file download default download_modelfit/// download_modelfit Retrieves SED Fit "model_file", stream from S3 bucket by helper: stream_sed_output_file download_percentiles/// download_percentiles Retrieves SED Fit "percentile_file", stream from S3 bucket by helper: stream_sed_output_file acknowledgements/ GET acknowledgements renders acknowledgements page None None None static team/ GET team renders team members page None None None static GET home updates home page statistics helper: update_home_page_statistics() Transient manual None reprocess_transient// GET reprocess_transient_view calls reprocess_transient: verify existence, call transient_workflow, which reruns processing Transient none login required defined in workflow.py retrigger_transient// GET retrigger_transient_view calls retrigger_transient: manually retrigger transient_workflow and re-attemps all failed tasks Transient none login required defined in tasks.py report_issue/ GET report_issue gets a TaskRegister item, using item_id as pk and saves before returning redirect TaskRegister None Login required potentially merge these 2 functions as well resolve_issue/ GET resolve_issue flags the corresponding TaskRegister item as resolved and saves before returning redirect TaskRegister None login required privacy GET privacy_policy return privacy policy page rendering None None None static healthz GET healthz returns blank request None None None strictly operational, ignore cutout_fits_plot GET cutout_fits_plot acquire transient, global aperture, and local aperture, select cutout and render cutout fits image Transient Aperture Cutout JsonResponse None potentially redundant logic with the results function in transients/ fetch_sed_plot GET fetch_sed_plot acquire transient and use helper to render sed plot Transient JsonResponse None api/transient GET TransientViewSet ? Transient TransientSerializer api/transient/get/ GET get_transient_science_payload return serialized data for given transient LEGACY DataModelComponent manual api/transient/delete/(?P[a-zA-Z0-9_-]+)/(?Pall/|)$ GET delete_transient_view delete files regardless of whether transient exists, return 404 or transient object Transient manual host.delete_transient required contradictory HTTP method labelling api/transient/export/(?P[a-zA-Z0-9_-]+)/(?Pall/|)$ GET export_transient_view return serialized data for given transient, serialized using export_transient_info TaskRegister Aperture SEDFittingResult AperturePhotometry StarFormationHistoryResult Transient HostSerializer TransientSerializer manual none api/transient/post/name=&ra=&dec= POST post_transient verify transient not already in database, verify ra and dec validity, then create the transient Transient manual api/aperture GET ApertureViewSet Aperture ApertureSerializer /api/cutout GET CutoutViewSet Cutout CutoutSerializer /api/filter/ GET FilterViewSet Filter FilterSerializer /api/aperturephotometry/ GET AperturePhotometryViewSet AperturePhotometry AperturePhotometrySerializer potentially redundant logic with the results function in transients/ /api/sedfittingresult/ GET SEDFittingResultViewSet SEDFittingResult SEDFittingResultSerializer potentially redundant logic with the results function in transients/ /api/taskregister/ GET TaskRegisterViewSet TaskRegister TaskRegisterSerializer /api/task/ GET TaskViewSet Task TaskSerializer /api/host/ GET HostViewSet Host HostSerializer /api/alias GET AliasViewSet Alias AliasSerializer /api/alias/ GET alias_handler return specified Alias if it exists, and 404 error if not Alias manual /api/alias/ POST alias_handler check if Alias exists and create if not (assuming Transient and Host both exist, return 404 if not) Alias Transient manual /api/alias/ DELETE alias_handler verify authorization, then delete the alias if it exists Alias manual /api/alias//// GET alias_handler ~ ~ duplicate urls that call the same view function /api/alias//// POST alias_handler ~ ~ some permission needed alias_handler should be split into class with separate functions for POST GET DELETE /api/alias//// DELETE alias_handler ~ ~