{"license":"AGPL-3.0","license_url":"https://www.gnu.org/licenses/agpl-3.0.html","app_version":"0.1.0","app_source":{"git_remote":"https://astro.meteormeta.com","commit_hash":"7440f3173678d1c22650c25102b595e67ce9596e","tarball":"https://astro.meteormeta.com/api/v1/source/tarball"},"vendored_dependencies":[{"name":"pyjhora","upstream":"https://github.com/naturalstupid/pyjhora","commit":"fd935ba7929d8d8d1466bf42dfbdffa6a0f785cc","version":"4.8.0","license":"AGPL-3.0","role":"core Vedic astrology computation (vendored in-tree)"},{"name":"pyswisseph","upstream":"https://github.com/astrorigin/pyswisseph","version":"2.10.3.2","license":"AGPL-3.0","role":"Swiss Ephemeris Python binding (pinned in pyproject.toml)"},{"name":"KP_SL_Divisions.csv","upstream":"https://github.com/cryptekbits/KPAstroDashboard","license":"MIT","role":"KP 249 sub-lord normative data (data file only, extracted)"}],"subprocessors":[{"name":"Supabase","role":"primary data store (Postgres + Storage + Auth)","data_classes":["account","birth_profiles","charts","reports","life_events","consent_artifacts","audit_log"],"region":"eu-west-2","dpa_url":"https://supabase.com/downloads/docs/Supabase+DPA+260317.pdf"},{"name":"OpenAI","role":"LLM inference (primary): report narration/polish, chart Q&A, Prashna narration, feedback semantic scoring","data_classes":["prompt_inputs","free_text_questions","life_event_descriptions","model_outputs"],"region":"US","dpa_url":"https://openai.com/policies/data-processing-addendum/"},{"name":"Anthropic","role":"LLM inference (configured backup; active only when LLM_PROVIDER=anthropic)","data_classes":["prompt_inputs","free_text_questions","life_event_descriptions","model_outputs"],"region":"US","dpa_url":"https://support.anthropic.com/en/articles/7996862"},{"name":"Google Cloud Platform","role":"Application hosting (a Compute Engine VM), egress, logging.","data_classes":["request_metadata","application_logs"],"region":"us-west1","dpa_url":"https://cloud.google.com/terms/data-processing-addendum"},{"name":"Resend","role":"Delivery of sign-up confirmation and password-reset emails","data_classes":["email_address","auth_email_content"],"region":"eu-west-1 (Ireland)","dpa_url":"https://resend.com/legal/dpa"},{"name":"Sentry","role":"Crash and error reports from the app and the backend","data_classes":["error_reports","device_metadata","account_identifier"],"region":"EU (Germany)","dpa_url":"https://sentry.io/legal/dpa/"},{"name":"Expo","role":"Delivery of over-the-air app updates (EAS Update)","data_classes":["ip_address","installation_identifier","app_version"],"region":"US","dpa_url":null}],"privacy":{"privacy_policy_url":"https://astro.meteormeta.com/privacy","terms_of_service_url":"https://astro.meteormeta.com/terms","account_deletion_url":"https://astro.meteormeta.com/account-deletion","data_protection_contact":"privacy@meteormeta.com","data_residency_region":"eu-west-2"},"rebuild_instructions":"See backend/INSTALL.md in the repo for full rebuild from source.","notice_file":"https://astro.meteormeta.com/api/v1/source/notice","contributor_flow":"https://astro.meteormeta.com/api/v1/source/contributing"}