{# 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" %} {% 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. #}
{% if gcp_projects %} {% for project in gcp_projects %} {% endfor %} {% endif %} {% 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 %}
Back
{% endblock %}