{# Step 3 - pick the audit target. Project dropdown comes from gcp_projects_for_picker(); region is free text with a list of common BigQuery locations. The billing project chosen on step 2 is carried forward via the ``form_data.billing_project_id`` value and surfaces as a small confirmation pill above the form + a hidden input on the form so the step 3 POST writes the full payload (project, region, lookback, billing) atomically. #} {% extends "setup/layout.html" %} {% from "components/_project_combobox.html" import project_combobox, project_combobox_script %} {% block content %}

Step 3 · Choose audit target

Pick the BigQuery project you want to audit, the region its dataset lives in, and the lookback window for the first scan. Project and region are required - everything in audit is scoped to a single (project, region) pair. Submitting this form saves the config and starts the scan in the background; you'll land on the configurations page where it continues running.

{% if form_data and form_data.billing_project_id %}
Billing project: {{ form_data.billing_project_id }} change
{% else %}
Billing project: analysed project pays change
{% endif %} {% if errors and errors.get('_general') %}
{{ errors['_general'] }}
{% endif %} {% if discovery_error %}
{{ discovery_error }}
{% endif %}
{# Spec 150 - carry the billing choice from step 2 (or empty for "analysed project pays") into this POST as a hidden input. #}
{{ project_combobox("gcp_project_id", gcp_projects, value=(form_data.gcp_project_id if form_data else ""), required=true) }} {% if errors and errors.get('gcp_project_id') %}

{{ errors['gcp_project_id'] }}

{% endif %}

Single-region (us-east1) or multi-region (us / eu). Must match the dataset's location.

{% if errors and errors.get('bigquery_region') %}

{{ errors['bigquery_region'] }}

{% endif %}

How far back the first scan looks at INFORMATION_SCHEMA.JOBS_BY_PROJECT. Shorter windows finish in seconds; you can re-scan with a wider window any time from the configurations page.

{% if errors and errors.get('lookback_days') %}

{{ errors['lookback_days'] }}

{% endif %}

Skip generating issues and suggestions for any object whose aggregated query cost in the scan window is below this amount. The object's spend still counts toward the totals; it just won't appear on the dashboard or Issues page. Defaults to 5 to focus on material spend; set 0 to detect everything. You can change this any time on Settings -> Issues.

Back
{{ project_combobox_script() }} {% endblock %}