diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 00000000..effd2b21 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,32 @@ +# Security Policy + +As a U.S. Government agency, the General Services Administration (GSA) takes +seriously our responsibility to protect the public's information, including +financial and personal information, from unwarranted disclosure. + +## Reporting a Vulnerability + +Services operated by the U.S. General Services Administration (GSA) +are covered by the **GSA Vulnerability Disclosure Program (VDP)**. + +See the [GSA Vulnerability Disclosure Policy](https://gsa.gov/vulnerability-disclosure-policy) +at for details including: + +* How to submit a report if you believe you have discovered a vulnerability. +* Bug bounty scope. +* GSA's coordinated disclosure policy. +* Information on how you may conduct security research on GSA developed + software and systems. +* Important legal and policy guidance. + +## Supported Versions + +Please note that only certain branches are supported with security updates. + +| Version (Branch) | Supported | +| ---------------- | ------------------ | +| main | :white_check_mark: | +| other | :x: | + +When using this code or reporting vulnerabilities please only use supported +versions. diff --git a/assets/img/updates/submissions-in-2016.png b/assets/img/updates/submissions-in-2016.png new file mode 100644 index 00000000..9d1c0c35 Binary files /dev/null and b/assets/img/updates/submissions-in-2016.png differ diff --git a/assets/img/updates/submissions-in-2017.png b/assets/img/updates/submissions-in-2017.png new file mode 100644 index 00000000..e733a985 Binary files /dev/null and b/assets/img/updates/submissions-in-2017.png differ diff --git a/assets/img/updates/submissions-in-2018.png b/assets/img/updates/submissions-in-2018.png new file mode 100644 index 00000000..27d0a80e Binary files /dev/null and b/assets/img/updates/submissions-in-2018.png differ diff --git a/assets/img/updates/submissions-in-2019.png b/assets/img/updates/submissions-in-2019.png new file mode 100644 index 00000000..9f0d5240 Binary files /dev/null and b/assets/img/updates/submissions-in-2019.png differ diff --git a/assets/img/updates/submissions-in-2020.png b/assets/img/updates/submissions-in-2020.png new file mode 100644 index 00000000..75494fc7 Binary files /dev/null and b/assets/img/updates/submissions-in-2020.png differ diff --git a/assets/img/updates/submissions-in-2021.png b/assets/img/updates/submissions-in-2021.png new file mode 100644 index 00000000..1338d2f4 Binary files /dev/null and b/assets/img/updates/submissions-in-2021.png differ diff --git a/assets/img/updates/submissions-in-2022.png b/assets/img/updates/submissions-in-2022.png new file mode 100644 index 00000000..5e1b669c Binary files /dev/null and b/assets/img/updates/submissions-in-2022.png differ diff --git a/assets/img/updates/submissions-in-2023.png b/assets/img/updates/submissions-in-2023.png new file mode 100644 index 00000000..05a1f5b4 Binary files /dev/null and b/assets/img/updates/submissions-in-2023.png differ diff --git a/generate_api_docs.sh b/generate_api_docs.sh deleted file mode 100755 index 56550aa9..00000000 --- a/generate_api_docs.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash - -URL="${URL:-https://api-staging.fac.gov}" - -echo Generating docs from ${URL} - -for version in v1_0_0 -do - echo "Generating docs for $version" - - docker run \ - -v ${PWD}:/input \ - -v ${PWD}/src/_includes/api/${version}:/output \ - fac/o2u \ - --template tools/openapi2uswds/template.html \ - --api-key $API_GOV_KEY \ - --jwt-token $JWT \ - --url $URL - - # Remove the file that has everything in it. We only want - # the pieces-parts. - rm -f src/_includes/api/${version}/api-documentation.html -done diff --git a/src/_collections/updates/2023-09-08-01-historical-search.md b/src/_collections/updates/2023-09-08-01-historical-search.md index 57f48f21..e972dbe6 100644 --- a/src/_collections/updates/2023-09-08-01-historical-search.md +++ b/src/_collections/updates/2023-09-08-01-historical-search.md @@ -1,5 +1,5 @@ --- -tags: general +tags: date: "2023-09-08" --- Search and download of audit data from 2016-2022 will remain on [the Census' site](https://facdissem.census.gov/Main.aspx) through December, 31, 2023. This data will migrate to the new FAC by the end of the year. diff --git a/src/_includes/api/v1_0_0/api-documentation-body.html b/src/_includes/api/v1_0_0/api-documentation-body.html deleted file mode 100644 index bcee1f8d..00000000 --- a/src/_includes/api/v1_0_0/api-documentation-body.html +++ /dev/null @@ -1,3041 +0,0 @@ - -
-
-
- - -

- additional_ueis -

-

- -

-
-

- -

-

- Fields -

-
-
- Field name -
-
- Type -
-
- Format -
-
- Description -
-
-
-
-

- additional_uei -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- audit_year -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditee_uei -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- report_id -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-
- - -

- corrective_action_plans -

-

- -

-
-

- -

-

- Fields -

-
-
- Field name -
-
- Type -
-
- Format -
-
- Description -
-
-
-
-

- audit_year -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditee_uei -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- contains_chart_or_table -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- finding_ref_number -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- planned_action -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- report_id -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-
- - -

- federal_awards -

-

- -

-
-

- -

-

- Fields -

-
-
- Field name -
-
- Type -
-
- Format -
-
- Description -
-
-
-
-

- additional_award_identification -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- amount_expended -

-
-
-
- - integer - -
-
- bigint -
-
-

- -

-
-
-
-
-

- audit_report_type -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- audit_year -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditee_uei -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- award_reference -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- cluster_name -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- cluster_total -

-
-
-
- - integer - -
-
- bigint -
-
-

- -

-
-
-
-
-

- federal_agency_prefix -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- federal_award_extension -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- federal_program_name -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- federal_program_total -

-
-
-
- - integer - -
-
- bigint -
-
-

- -

-
-
-
-
-

- findings_count -

-
-
-
- - integer - -
-
- integer -
-
-

- -

-
-
-
-
-

- is_direct -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- is_loan -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- is_major -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- is_passthrough_award -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- loan_balance -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- other_cluster_name -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- passthrough_amount -

-
-
-
- - integer - -
-
- bigint -
-
-

- -

-
-
-
-
-

- report_id -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- state_cluster_name -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-
- - -

- findings -

-

- -

-
-

- -

-

- Fields -

-
-
- Field name -
-
- Type -
-
- Format -
-
- Description -
-
-
-
-

- audit_year -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditee_uei -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- award_reference -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- is_material_weakness -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- is_modified_opinion -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- is_other_findings -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- is_other_matters -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- is_questioned_costs -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- is_repeat_finding -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- is_significant_deficiency -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- prior_finding_ref_numbers -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- reference_number -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- report_id -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- type_requirement -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-
- - -

- findings_text -

-

- -

-
-

- -

-

- Fields -

-
-
- Field name -
-
- Type -
-
- Format -
-
- Description -
-
-
-
-

- audit_year -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditee_uei -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- contains_chart_or_table -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- finding_ref_number -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- finding_text -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- report_id -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-
- - -

- general -

-

- -

-
-

- -

-

- Fields -

-
-
- Field name -
-
- Type -
-
- Format -
-
- Description -
-
-
-
-

- agencies_with_prior_findings -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- audit_period_covered -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- audit_type -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- audit_year -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditee_address_line_1 -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditee_certify_name -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditee_certify_title -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditee_city -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditee_contact_name -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditee_contact_title -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditee_ein -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditee_email -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditee_name -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditee_phone -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditee_state -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditee_uei -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditee_zip -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditor_address_line_1 -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditor_city -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditor_contact_name -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditor_contact_title -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditor_country -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditor_ein -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditor_email -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditor_firm_name -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditor_phone -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditor_state -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditor_zip -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- cognizant_agency -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- data_source -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- date_created -

-
-
-
- - string - -
-
- date -
-
-

- -

-
-
-
-
-

- dollar_threshold -

-
-
-
- - integer - -
-
- bigint -
-
-

- -

-
-
-
-
-

- entity_type -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- fy_end_date -

-
-
-
- - string - -
-
- date -
-
-

- -

-
-
-
-
-

- fy_start_date -

-
-
-
- - string - -
-
- date -
-
-

- -

-
-
-
-
-

- gaap_results -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- is_going_concern_included -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- is_internal_control_deficiency_disclosed -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- is_internal_control_material_weakness_disclosed -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- is_low_risk_auditee -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- is_material_noncompliance_disclosed -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- is_public -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- is_sp_framework_required -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- number_months -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- oversight_agency -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- ready_for_certification_date -

-
-
-
- - string - -
-
- date -
-
-

- -

-
-
-
-
-

- report_id -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- sp_framework_basis -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- sp_framework_opinions -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- submitted_date -

-
-
-
- - string - -
-
- date -
-
-

- -

-
-
-
-
-

- total_amount_expended -

-
-
-
- - integer - -
-
- bigint -
-
-

- -

-
-
-
-
-

- type_audit_code -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-
- - -

- notes_to_sefa -

-

- -

-
-

- -

-

- Fields -

-
-
- Field name -
-
- Type -
-
- Format -
-
- Description -
-
-
-
-

- accounting_policies -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- audit_year -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditee_uei -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- content -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- is_minimis_rate_used -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- rate_explained -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- report_id -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- title -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-
- - -

- passthrough -

-

- -

-
-

- -

-

- Fields -

-
-
- Field name -
-
- Type -
-
- Format -
-
- Description -
-
-
-
-

- audit_year -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditee_uei -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- award_reference -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- passthrough_id -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- passthrough_name -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- report_id -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-
- - -

- secondary_auditors -

-

- -

-
-

- -

-

- Fields -

-
-
- Field name -
-
- Type -
-
- Format -
-
- Description -
-
-
-
-

- address_city -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- address_state -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- address_street -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- address_zipcode -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- audit_year -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditee_uei -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditor_ein -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- auditor_name -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- contact_email -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- contact_name -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- contact_phone -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- report_id -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-
-
\ No newline at end of file diff --git a/src/_includes/api/v1_0_0/api-documentation-nav.html b/src/_includes/api/v1_0_0/api-documentation-nav.html deleted file mode 100644 index bf080be4..00000000 --- a/src/_includes/api/v1_0_0/api-documentation-nav.html +++ /dev/null @@ -1,50 +0,0 @@ - - \ No newline at end of file diff --git a/src/_includes/api/v1_0_0_beta/api-documentation-body.html b/src/_includes/api/v1_0_0_beta/api-documentation-body.html deleted file mode 100644 index ce170e87..00000000 --- a/src/_includes/api/v1_0_0_beta/api-documentation-body.html +++ /dev/null @@ -1,4260 +0,0 @@ -
-
-
- - -

- auditor -

-

- -

-
-

- -

-

- Fields -

-
-
- Field name -
-
- Type -
-
- Format -
-
- Description -
-
-
-
-

- audit_year -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditee_ein -

-
-
-
- - integer - -
-
- integer -
-
-

- -

-
-
-
-
-

- auditee_uei -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditor_address_line_1 -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditor_city -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditor_contact_title -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditor_country -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditor_ein -

-
-
-
- - integer - -
-
- integer -
-
-

- -

-
-
-
-
-

- auditor_email -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditor_firm_name -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditor_foreign_addr -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditor_phone -

-
-
-
- - integer - -
-
- bigint -
-
-

- -

-
-
-
-
-

- auditor_seq_number -

-
-
-
- - integer - -
-
- integer -
-
-

- -

-
-
-
-
-

- auditor_state -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditor_zip -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- id -

-
-
-
- - integer - -
-
- bigint -
-
-

- Note: -This is a Primary Key.<pk/> -

-
-
-
-
-

- report_id -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-
- - -

- cap_text -

-

- -

-
-

- -

-

- Fields -

-
-
- Field name -
-
- Type -
-
- Format -
-
- Description -
-
-
-
-

- audit_year -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditee_ein -

-
-
-
- - integer - -
-
- integer -
-
-

- -

-
-
-
-
-

- auditee_uei -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- cap_text -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- charts_tables -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- finding_ref_number -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- fy_end_date -

-
-
-
- - string - -
-
- date -
-
-

- -

-
-
-
-
-

- fy_start_date -

-
-
-
- - string - -
-
- date -
-
-

- -

-
-
-
-
-

- id -

-
-
-
- - integer - -
-
- bigint -
-
-

- Note: -This is a Primary Key.<pk/> -

-
-
-
-
-

- report_id -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-
- - -

- federal_award -

-

- -

-
-

- -

-

- Fields -

-
-
- Field name -
-
- Type -
-
- Format -
-
- Description -
-
-
-
-

- additional_award_identification -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- amount_expended -

-
-
-
- - integer - -
-
- bigint -
-
-

- -

-
-
-
-
-

- audit_year -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditee_ein -

-
-
-
- - integer - -
-
- integer -
-
-

- -

-
-
-
-
-

- auditee_uei -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- award_seq_number -

-
-
-
- - integer - -
-
- integer -
-
-

- -

-
-
-
-
-

- cluster_name -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- cluster_total -

-
-
-
- - integer - -
-
- bigint -
-
-

- -

-
-
-
-
-

- federal_agency_prefix -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- federal_award_extension -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- federal_program_name -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- federal_program_total -

-
-
-
- - integer - -
-
- bigint -
-
-

- -

-
-
-
-
-

- findings_count -

-
-
-
- - integer - -
-
- integer -
-
-

- -

-
-
-
-
-

- fy_end_date -

-
-
-
- - string - -
-
- date -
-
-

- -

-
-
-
-
-

- fy_start_date -

-
-
-
- - string - -
-
- date -
-
-

- -

-
-
-
-
-

- id -

-
-
-
- - integer - -
-
- bigint -
-
-

- Note: -This is a Primary Key.<pk/> -

-
-
-
-
-

- is_direct -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- is_loan -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- is_major -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- loan_balance_at_audit_period_end -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- mp_audit_report_type -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- other_cluster_name -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- passthrough_amount -

-
-
-
- - integer - -
-
- bigint -
-
-

- -

-
-
-
-
-

- passthrough_award -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- report_id -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- state_cluster_name -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- type_requirement -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-
- - -

- finding -

-

- -

-
-

- -

-

- Fields -

-
-
- Field name -
-
- Type -
-
- Format -
-
- Description -
-
-
-
-

- audit_year -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditee_ein -

-
-
-
- - integer - -
-
- integer -
-
-

- -

-
-
-
-
-

- auditee_uei -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- award_seq_number -

-
-
-
- - integer - -
-
- integer -
-
-

- -

-
-
-
-
-

- federal_agency_prefix -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- federal_award_extension -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- finding_ref_number -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- finding_seq_number -

-
-
-
- - integer - -
-
- integer -
-
-

- -

-
-
-
-
-

- fy_end_date -

-
-
-
- - string - -
-
- date -
-
-

- -

-
-
-
-
-

- fy_start_date -

-
-
-
- - string - -
-
- date -
-
-

- -

-
-
-
-
-

- id -

-
-
-
- - integer - -
-
- bigint -
-
-

- Note: -This is a Primary Key.<pk/> -

-
-
-
-
-

- is_material_weakness -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- is_significant_deficiency -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- modified_opinion -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- other_findings -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- other_non_compliance -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- prior_finding_ref_numbers -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- questioned_costs -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- repeat_finding -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- report_id -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- type_requirement -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-
- - -

- finding_text -

-

- -

-
-

- -

-

- Fields -

-
-
- Field name -
-
- Type -
-
- Format -
-
- Description -
-
-
-
-

- audit_year -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditee_ein -

-
-
-
- - integer - -
-
- integer -
-
-

- -

-
-
-
-
-

- auditee_uei -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- charts_tables -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- finding_ref_number -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- finding_text -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- fy_end_date -

-
-
-
- - string - -
-
- date -
-
-

- -

-
-
-
-
-

- fy_start_date -

-
-
-
- - string - -
-
- date -
-
-

- -

-
-
-
-
-

- id -

-
-
-
- - integer - -
-
- bigint -
-
-

- Note: -This is a Primary Key.<pk/> -

-
-
-
-
-

- report_id -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-
- - -

- general -

-

- -

-
-

- -

-

- Fields -

-
-
- Field name -
-
- Type -
-
- Format -
-
- Description -
-
-
-
-

- audit_period_covered -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- audit_type -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- audit_year -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditee_addl_duns_list -

-
-
-
- - array - -
-
- character varying[] -
-
-

- -

-
-
-
-
-

- auditee_addl_ein_list -

-
-
-
- - array - -
-
- integer[] -
-
-

- -

-
-
-
-
-

- auditee_addl_uei_list -

-
-
-
- - array - -
-
- character varying[] -
-
-

- -

-
-
-
-
-

- auditee_address_line_1 -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditee_certified_date -

-
-
-
- - string - -
-
- date -
-
-

- -

-
-
-
-
-

- auditee_certify_name -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditee_certify_title -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditee_city -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditee_contact_name -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditee_contact_title -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditee_duns -

-
-
-
- - array - -
-
- character varying[] -
-
-

- -

-
-
-
-
-

- auditee_ein -

-
-
-
- - integer - -
-
- integer -
-
-

- -

-
-
-
-
-

- auditee_email -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditee_name -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditee_phone -

-
-
-
- - integer - -
-
- bigint -
-
-

- -

-
-
-
-
-

- auditee_state -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditee_uei -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditee_zip -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditor_address_line_1 -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditor_certified_date -

-
-
-
- - string - -
-
- date -
-
-

- -

-
-
-
-
-

- auditor_city -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditor_contact_name -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditor_contact_title -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditor_country -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditor_ein -

-
-
-
- - integer - -
-
- integer -
-
-

- -

-
-
-
-
-

- auditor_email -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditor_firm_name -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditor_foreign_addr -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditor_phone -

-
-
-
- - integer - -
-
- bigint -
-
-

- -

-
-
-
-
-

- auditor_state -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditor_zip -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- cfac_report_id -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- cfac_version -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- cognizant_agency -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- condition_or_deficiency_major_program -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- create_date -

-
-
-
- - string - -
-
- timestamp with time zone -
-
-

- -

-
-
-
-
-

- current_or_former_findings -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- data_source -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- date_published -

-
-
-
- - string - -
-
- date -
-
-

- -

-
-
-
-
-

- date_received -

-
-
-
- - string - -
-
- date -
-
-

- -

-
-
-
-
-

- dbkey -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- dollar_threshold -

-
-
-
- - number - -
-
- double precision -
-
-

- -

-
-
-
-
-

- ein_subcode -

-
-
-
- - integer - -
-
- integer -
-
-

- -

-
-
-
-
-

- entity_type -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- fac_accepted_date -

-
-
-
- - string - -
-
- date -
-
-

- -

-
-
-
-
-

- federal_agency_prefix -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- federal_award_extension -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- form_date_received -

-
-
-
- - string - -
-
- date -
-
-

- -

-
-
-
-
-

- fy_end_date -

-
-
-
- - string - -
-
- date -
-
-

- -

-
-
-
-
-

- fy_start_date -

-
-
-
- - string - -
-
- date -
-
-

- -

-
-
-
-
-

- hist_auditee_address_line_2 -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- hist_auditee_fax -

-
-
-
- - integer - -
-
- bigint -
-
-

- -

-
-
-
-
-

- hist_auditor_address_line_2 -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- hist_auditor_fax -

-
-
-
- - integer - -
-
- bigint -
-
-

- -

-
-
-
-
-

- hist_completed_date -

-
-
-
- - string - -
-
- date -
-
-

- -

-
-
-
-
-

- hist_component_date_received -

-
-
-
- - string - -
-
- date -
-
-

- -

-
-
-
-
-

- hist_previous_completed_on -

-
-
-
- - string - -
-
- date -
-
-

- -

-
-
-
-
-

- hist_previous_date_published -

-
-
-
- - string - -
-
- date -
-
-

- -

-
-
-
-
-

- hist_reportable_condition -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- hist_type_of_entity -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- id -

-
-
-
- - integer - -
-
- bigint -
-
-

- Note: -This is a Primary Key.<pk/> -

-
-
-
-
-

- initial_date_received -

-
-
-
- - string - -
-
- date -
-
-

- -

-
-
-
-
-

- is_duplicate_reports -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- is_going_concern -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- is_low_risk -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- is_material_noncompliance -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- is_material_weakness -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- is_public -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- is_significant_deficiency -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- is_special_framework_required -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- material_weakness -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- material_weakness_major_program -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- modified_date -

-
-
-
- - string - -
-
- timestamp with time zone -
-
-

- -

-
-
-
-
-

- multiple_auditors -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- multiple_duns -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- multiple_ein -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- multiple_uei -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- number_months -

-
-
-
- - integer - -
-
- integer -
-
-

- -

-
-
-
-
-

- oversight_agency -

-
-
-
- - integer - -
-
- integer -
-
-

- -

-
-
-
-
-

- pdf_url -

-
-
-
- - array - -
-
- character varying[] -
-
-

- -

-
-
-
-
-

- prior_year_schedule -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- questioned_costs -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- report_id -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- report_required -

-
-
-
- - boolean - -
-
- boolean -
-
-

- -

-
-
-
-
-

- special_framework -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- suppression_code -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- total_fed_expenditures -

-
-
-
- - integer - -
-
- bigint -
-
-

- -

-
-
-
-
-

- type_audit_code -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- type_report_financial_statements -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- type_report_major_program -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- type_report_special_purpose_framework -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-
- - -

- note -

-

- -

-
-

- -

-

- Fields -

-
-
- Field name -
-
- Type -
-
- Format -
-
- Description -
-
-
-
-

- audit_year -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- auditee_ein -

-
-
-
- - integer - -
-
- integer -
-
-

- -

-
-
-
-
-

- auditee_uei -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- content -

-
-
-
- - string - -
-
- text -
-
-

- -

-
-
-
-
-

- fy_end_date -

-
-
-
- - string - -
-
- date -
-
-

- -

-
-
-
-
-

- fy_start_date -

-
-
-
- - string - -
-
- date -
-
-

- -

-
-
-
-
-

- id -

-
-
-
- - integer - -
-
- bigint -
-
-

- Note: -This is a Primary Key.<pk/> -

-
-
-
-
-

- note_index -

-
-
-
- - integer - -
-
- integer -
-
-

- -

-
-
-
-
-

- note_seq_number -

-
-
-
- - integer - -
-
- integer -
-
-

- -

-
-
-
-
-

- note_title -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- report_id -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-

- type_id -

-
-
-
- - string - -
-
- character varying -
-
-

- -

-
-
-
-
-
-
\ No newline at end of file diff --git a/src/_includes/api/v1_0_0_beta/api-documentation-nav.html b/src/_includes/api/v1_0_0_beta/api-documentation-nav.html deleted file mode 100644 index da512496..00000000 --- a/src/_includes/api/v1_0_0_beta/api-documentation-nav.html +++ /dev/null @@ -1,40 +0,0 @@ - - \ No newline at end of file diff --git a/src/api/retrieve-many.md b/src/api/retrieve-many.md new file mode 100644 index 00000000..0dd5e5df --- /dev/null +++ b/src/api/retrieve-many.md @@ -0,0 +1,118 @@ +--- +layout: home.njk +title: Retrieving many results from the FAC API +meta: + name: Retrieving many results from the FAC API + description: How to use pagination +--- + +# Retriving many results from the FAC API + +Every year, roughly 40,000-50,000 audits are submitted to the FAC. Given that there is data in the FAC database going back to 2016, that means there are more than 200,000 audits, with more than 2.5M `federal_awards` records. + +To keep the FAC running smoothly for all users, we limit requests to 20,000 results at a time. So, how do you search and retrieve more than that? + +## Consider more focused queries + +Our first recommendation is *not* to issue queries that return tens or hundreds of thousands of results. You will likely find the experience to be non-performant. + +Wherever possible, we recommend that partners build systems that issue small, restrictive queries. For small agencies, asking for all of the audits in a month or year may work well; for large agencies, it may not. Therefore, we recommend you consider issuing queries for a single day's or week's worth of audits. While this may mean more queries, each individual request will be more performant. + +### Example + +Assume you want to retrieve all of the awards for which your agency is cognizant in a given year. If you were to do this in SQL, it might be a `JOIN` across two tables. This would be slow, as you would be querying the `general` table, which has hundreds of thousands of rows, against the `federal_awards` table, which has millions of rows. + +Instead, you can issue a sequence of small queries via the API. The following example demonstrates how this might work using Python: + +```python +# Create a function that gets a list of all audits for a +# given agency in a given year. Then, for each audit, +# request its corresponding awards and add them to a list. +def retrieve_cog_awards(year, agency): + general_url = f"{FAC_API_BASE}/general" + federal_awards_url = f"{FAC_API_BASE}/federal_awards" + general_response = requests.get(general_url, + params={ + "select": "report_id", + "audit_year": f"eq.{year}", + "cognizant_agency": f"eq.{agency}" + }, + headers={ "X-API-Key": FAC_API_KEY }) + + print(f"Agency[{agency}] Records: {len(general_response.json())}") + report_ids = set(map(lambda o: o["report_id"], res.json())) + awards = [] + for report_id in report_ids: + awards_response = requests.get(federal_awards_url, + params={ + "report_id": f"eq.{report_id}" + }, + headers={ "X-API-Key": FAC_API_KEY }) + print(f"\treport_id[{report_id}]: {len(awards_response.json())} awards") + awards.append(awards_response.json()) + + return awards + +# Call your function +treasury = retrieve_cog_awards(2020, 21) +``` + +This example prints out the following: + +``` +Agency[21] Records: 18 + report_id[2020-12-CENSUS-0000187886]: 42 awards + report_id[2020-12-CENSUS-0000182305]: 71 awards + report_id[2020-12-CENSUS-0000187776]: 12 awards + report_id[2020-06-CENSUS-0000242068]: 1 awards + report_id[2020-09-CENSUS-0000136906]: 68 awards + report_id[2020-11-CENSUS-0000138628]: 45 awards + report_id[2020-12-CENSUS-0000251225]: 1 awards + report_id[2020-12-CENSUS-0000252841]: 1 awards + report_id[2020-12-CENSUS-0000166851]: 46 awards + report_id[2020-12-CENSUS-0000208943]: 6 awards + report_id[2020-09-CENSUS-0000074286]: 7 awards + report_id[2020-12-CENSUS-0000128618]: 3 awards + report_id[2020-12-CENSUS-0000230310]: 2 awards + report_id[2020-11-CENSUS-0000138705]: 48 awards + report_id[2020-12-CENSUS-0000022772]: 4 awards + report_id[2020-12-CENSUS-0000188333]: 36 awards + report_id[2020-12-CENSUS-0000258107]: 2 awards + report_id[2020-06-CENSUS-0000200809]: 11 awards +``` + +In the first query against `general`, you discover that Treasury was the cognizant agency 18 audits in 2020. In the second set of queries, you requested the `federal_awards` for each audit, where each query returned between 1 and 71 results. + +## Use pagination + +If you cannot restrict your queries in the manner described above, or if your focused queries still return more than 20,000 results, you will need to use pagination to get retrieve all of your results. + +There are two ways to do this. The first is to use the query parameters `limit` and `offset`. The `limit` parameter determines the maximum number of results that will be included in each "page" of results. The `offset` parameter tells the API where to begin its count of results. For example, if you believe a query is going to return 35K results, you could make the following requests in a sequence of queries to get all of your results: + +``` +...url.../...table...?limit=4999&offset=0 +...url.../...table...?limit=4999&offset=5000 +...url.../...table...?limit=4999&offset=10000 +...url.../...table...?limit=4999&offset=15000 +...url.../...table...?limit=4999&offset=20000 +...url.../...table...?limit=4999&offset=25000 +...url.../...table...?limit=4999&offset=30000 +``` + + You can terminate your loop in one of two ways: + +1. Use the [headers that PostgREST supplies to determine where you are in your pagination](https://postgrest.org/en/stable/references/api/pagination_count.html), and stop at the appropriate time. +2. Stop when you get no results. With this method, there is some danger your loop could run forever, consuming your entire API query limit. We recommend you always use an upper limit to prevent this issue. + +The following is an example of how you could use both methods to terminate the loop using Python: + +```python +# Get results from count 0 to 35,000, going in increments of 5,000 +for offset in range(0, 35000, 5000): + ... + results = requests.get(... query using the `offset` variable ...) + if results == []: + break + else: + ... +``` diff --git a/src/api/rollups.md b/src/api/rollups.md new file mode 100644 index 00000000..5227aa6f --- /dev/null +++ b/src/api/rollups.md @@ -0,0 +1,352 @@ +--- +layout: home.njk +title: FAC API rollup tutorial +meta: + name: FAC API rollup tutorial + description: A tutorial focused on the rollup fields in the API +rollups: + ALN: + rolled: CFDA + orig: CFDA table + criteria: A combination of agency and program number + output: A CFDA/ALN number + censusdesc: FIXME + code: https://github.com/GSA-TTS/fac-api-examples/tree/main/rollups/01-aln + COGOVER: + rolled: FIXME + orig: FIXME + criteria: FIXME + output: FIXME + censusdesc: FIXME + code: https://github.com/GSA-TTS/fac-api-examples/tree/main/rollups/02-cogover + QCOSTS: + rolled: QCOSTS + orig: QCOSTS from Findings table + criteria: "If any of the auditee's findings have QCOSTS = Y (QCOSTS from Findings Table)" + output: Then QCOSTS in General table = Y otherwise QCOSTS = N + censusdesc: Indicate whether or not the audit disclosed any known questioned costs. + code: https://github.com/GSA-TTS/fac-api-examples/tree/main/rollups/03-qcosts + CYFINDINGS: + rolled: CYFINDINGS + orig: Findings Table + criteria: If any records in the Findings table + output: "CYFINDINGS=Y" + censusdesc: > + Indicate whether or not current year findings affecting direct funds were reported + code: https://github.com/GSA-TTS/fac-api-examples/tree/main/rollups/04-cyfindings + TYPEREPORT_MP: + rolled: TYPEREPORT_MP + orig: TYPEREPORT_MP from CFDA (now `federal_awards`) table + criteria: Combines all values (U, D, A, S) entered in the TYPEREPORT_MP field from CFDA + output: > + "U" if all TYPEREPORT_MP = U or the non-"U" values listed once + censusdesc: Type of report issued on the major program compliance + code: https://github.com/GSA-TTS/fac-api-examples/tree/main/rollups/050-typereportmp + MATERIALWEAKNESS_MP: + rolled: MATERIALWEAKNESS_MP + orig: MATERIALWEAKNESS from Findings table + criteria: If any of the auditee’s findings have MATERIALWEAKNESS = Y + output: Then MATERIAL WEAKNESS_MP = Y + censusdesc: > + Indicate whether any reportable condition/signficant deficiency was disclosed as a material weakness for a major program in the Schedule of Findings and Questioned Costs + code: https://github.com/GSA-TTS/fac-api-examples/tree/main/rollups/06-materialweakness + REPORTABLECONDITION_MP: + rolled: REPORTABLECONDITION_MP + orig: SIGNIFICANTDEFICIENCY from Findings Table + criteria: If any of the auditee’s findings have SIGNIFICANTDEFICIENCY = Y + output: Then the REPORTABLE CONDITION_MP = Y + censusdesc: > + Whether or not the audit disclosed a reportable condition/significant deficiency for any major program in the Schedule of Findings and Questioned Costs + code: https://github.com/GSA-TTS/fac-api-examples/tree/main/rollups/07-reportable + PYSCHEDULE: + rolled: PYSCHEDULE + orig: Question 3.d. on the Audit Info tab + criteria: If there is any number other than 00 listed + output: PYSCHEDULE=Y + censusdesc: > + Indicate whether or not the report includes a Summary Schedule of Prior Year Audit Findings + code: https://github.com/GSA-TTS/fac-api-examples/tree/main/rollups/08-pysched +--- + +{% macro rollup(tag) %} + +{% endmacro %} + +# FAC API rollup tutorial + +The FAC API follows the historical data format distributed by Census with a few exceptions. During the transition, we attempted to provide consistency for our partners as they migrate between system while streamlining the data wherever possible. This tutorial will look at some of the fields we no longer provide and how those fields can be recreated using the data already in the FAC API. + +## About this code + +The code for this tutorial can be found in the [fac-api-examples](https://github.com/GSA-TTS/fac-api-examples) repository. These resources would not be possible without help from HHS, who provided feedback and documentation regarding many of these rollup fields. If you see space for improvement, please reach out via our [help desk](https://support.fac.gov/hc/en-us). + +### Rollups covered + +* [ALN (previously CFDA)](#ALN) +* [COGOVER](#COGOVER) +* [QCOSTS](#QCOSTS) +* [CYFINDINGS](#CYFINDINGS) +* [TYPEREPORT_MP](#TYPEREPORT_MP) +* [MATERIALWEAKNESS_MP](#MATERIALWEAKNESS_MP) +* [REPORTABLECONDITION_MP](#REPORTABLECONDITION_MP) +* [PYSCHEDULE](#PYSCHEDULE) + +## Example: ALN (previously CFDA) + +{{ rollup("ALN") }} + +The ALN, or Agency Listing number, is a two-part identifier with the shape `12.345`. Sometimes it includes letters (`12.RD`), or even letters _and_ numbers (`12.U01`). Historically, it is sometimes even messier. The FAC does not distribute the ALN. It distributes the agency prefix (the first part of the code) and the program number (the second part of the code). + +The FAC collects two fields related to the ALN: the `federal_agency_prefix` and `federal_award_extension`. Both of these fields are required as part of the federal awards workbook and are distributed via the `federal_awards` endpoint. + +To generate a single ALN, combine `federal_agency_prefix` and `federal_award_extension` with a `.` in the middle. + +### Code example output + +If you run the sample code provided above, you should get: + +``` +2023-06-GSAFAC-0000000002 ['84.027', '84.027', '84.173', '84.173', '84.010', '84.367', '84.424', '84.424', '84.425', '84.425', '84.425', '84.425', '84.425', '84.425', '84.425', '10.553', '10.555', '10.575', '10.649', '10.555'] +2023-06-GSAFAC-0000000688 ['14.155', '14.195', '14.018', '14.228'] +2022-12-GSAFAC-0000001061 ['16.557', '16.524', '16.841', '16.526', '93.497', '16.575'] +``` + +## Example: Given a report ID, calculate COGOVER + +{{ rollup("COGOVER") }} + +Every audit has an agency who is either cognizant or has oversight. The FAC populates one of two fields in every record: `cognizant_agency` or `oversight_agency`. Only one of the two fields will ever be populated. + +Census included a field called `cog_over` that would be set to `C` if the audit had an agency that was cognizant, and `O` if the audit had an agency who had oversight. + +### Code example output + +If you run the sample code provided above, you should get: + +``` +2023-06-GSAFAC-0000000002 O +2023-06-GSAFAC-0000000688 O +2022-12-GSAFAC-0000001061 O +``` + +## Example: Are there questioned costs? + +{{ rollup("QCOSTS") }} + +The `QCOSTS` rollup did a bit more work. In the original table, this field looked at all questioned costs fields and if any of them were `yes`, then this field was `yes`. + +``` +IF the audit has any findings AND one of the questioned cost fields are `true` +THEN this is true +ELSE false +``` + +To compute this using the new FAC data, you need to check each of those questioned costs fields. + +### Code example output + +If you run the sample code provided above, you should get the following output. From the first 30 audits that come back, three of them have findings. + +``` +2023-01-GSAFAC-0000000854 N +2023-06-GSAFAC-0000000688 N +2022-12-GSAFAC-0000001061 N +2023-06-GSAFAC-0000000733 N +2023-06-GSAFAC-0000001206 N +2023-05-GSAFAC-0000001215 N +2021-06-GSAFAC-0000000998 N +2023-06-GSAFAC-0000002250 N +2022-12-GSAFAC-0000000861 N +2023-06-GSAFAC-0000000779 N +2023-06-GSAFAC-0000000800 N +2023-04-GSAFAC-0000000495 N +2023-02-GSAFAC-0000000773 N +2023-03-GSAFAC-0000000812 Y +2023-06-GSAFAC-0000000127 N +2023-06-GSAFAC-0000000050 N +2023-06-GSAFAC-0000000198 N +... +``` + +## Example: Are there current year findings? + +{{ rollup("CYFINDINGS") }} + +The `CYFINDINGS` field rolled up an audit's findings and, if any were found, reported `True`. To recreate the `CYFINDINGS` field, query the `/findings` endpoint for a given report ID. If there are findings, it is `True`. If there are no findings, it is `False`. + + +### Code example output + +If you run the sample code provided above, you should get the following output. From the first 5 audits that come back, none have findings. + +``` +2023-01-GSAFAC-0000000854 N +2023-06-GSAFAC-0000000688 N +2022-12-GSAFAC-0000001061 N +2023-06-GSAFAC-0000000733 N +2023-06-GSAFAC-0000001206 N +``` + +## Example: Major program report type? + + +{{ rollup("TYPEREPORT_MP") }} + +The logic for this rollup is set-based. + +``` +"U" if all TYPEREPORT_MP = U or the non-"U" values listed once +``` + +In Python, we've unpacked this in the example code as follows: + +```python + types = set() + for art in json: + if art["audit_report_type"] != "": + types.add(art["audit_report_type"]) + if types == {"U"}: + return "U" + elif "U" not in types: + return set_to_string(types) + else: + return "ERR" +``` + +For each row in `federal_awards`, look at the report type and add it to a `set`. If the end result is that the entirety of the set is `{"U"}`, return `"U"`. Otherwise, collapse the set to a single string (e.g. `"AD"`). Include the "ERR" case, but do not expect it to be possible to reach. + +### Code example output + +If you run the sample code provided above, you should get: + +``` +2023-06-GSAFAC-0000000198 U +2022-12-GSAFAC-0000000165 U +2023-06-GSAFAC-0000000339 U +2023-06-GSAFAC-0000001644 U +2023-06-GSAFAC-0000000967 U +``` + +## Example: + +{{ rollup("MATERIALWEAKNESS_MP") }} + +If any of the auditee’s findings' `MATERIALWEAKNESS` fields equal a certain value (`Y`, for example), then `MATERIAL WEAKNESS_MP` equals that value. + +``` +If any findings have MATERIALWEAKNESS = Y +Then MATERIALWEAKNESS_MP = Y +``` + +The FAC stores this value in the `general` table under the key `is_internal_control_material_weakness_disclosed`. Note that the FAC stores *yes* values as `"Yes"`, and *no* values as `"No"`. The example code maps these back to `Y/N` to demonstrate mapping values to the old-style. + +### Code example output + +If you run the sample code provided above, you should get: + +``` +2023-01-GSAFAC-0000000854 N +2023-06-GSAFAC-0000000688 N +2022-12-GSAFAC-0000001061 N +2023-06-GSAFAC-0000000733 N +2023-06-GSAFAC-0000001206 N +2023-05-GSAFAC-0000001215 N +2021-06-GSAFAC-0000000998 N +2023-06-GSAFAC-0000002250 N +2022-12-GSAFAC-0000000861 N +2023-06-GSAFAC-0000000779 N +2023-06-GSAFAC-0000000800 N +2023-04-GSAFAC-0000000495 N +2023-02-GSAFAC-0000000773 N +2023-03-GSAFAC-0000000812 Y +2023-06-GSAFAC-0000000127 N +2023-06-GSAFAC-0000000050 N +2023-06-GSAFAC-0000000198 N +2022-12-GSAFAC-0000000165 N +2023-06-GSAFAC-0000000339 N +2023-06-GSAFAC-0000001644 N +``` + +## Example: + +{{ rollup("REPORTABLECONDITION_MP") }} + +This is almost identical in construction to the previous example. + +### Code example output + +If you run the sample code provided above, you should get: + +``` +2023-01-GSAFAC-0000000854 N +2023-06-GSAFAC-0000000688 N +2022-12-GSAFAC-0000001061 N +2023-06-GSAFAC-0000000733 N +2023-06-GSAFAC-0000001206 N +2023-05-GSAFAC-0000001215 N +2021-06-GSAFAC-0000000998 N +2023-06-GSAFAC-0000002250 N +2022-12-GSAFAC-0000000861 N +2023-06-GSAFAC-0000000779 N +2023-06-GSAFAC-0000000800 N +2023-04-GSAFAC-0000000495 N +2023-02-GSAFAC-0000000773 N +2023-03-GSAFAC-0000000812 Y +2023-06-GSAFAC-0000000127 N +2023-06-GSAFAC-0000000050 N +2023-06-GSAFAC-0000000198 N +2022-12-GSAFAC-0000000165 N +2023-06-GSAFAC-0000000339 N +2023-06-GSAFAC-0000001644 N +``` + +## Example: Previous year findings? + +{{ rollup("PYSCHEDULE") }} + +This involves looking at the array of values in `agencies_with_prior_findings` in `general`, splitting on the string (and stripping any spaces for good measure) and asking whether or not any agencies had findings. + +In the Python example provided, you can do this by converting the list to a set, then deciding if the set is non-empty. + +```python + # If there is any number other than 00 listed + # Then PYSCHEDULE=Y + set_of_agencies = set() + for find in json: + numbers = list(filter(lambda n: n != "00", + [n.strip() for n in find[AWPF].split(',')] + )) + set_of_agencies.update(numbers) + # An empty set is "false" in python + return bool(set_of_agencies) +``` + +### Code example output + +If you run the sample code provided above, you should get: + +``` +2023-01-GSAFAC-0000000854 N +2023-06-GSAFAC-0000000688 N +2022-12-GSAFAC-0000001061 N +2023-06-GSAFAC-0000000733 N +2023-06-GSAFAC-0000001206 N +2023-05-GSAFAC-0000001215 N +2021-06-GSAFAC-0000000998 N +2023-06-GSAFAC-0000002250 N +2022-12-GSAFAC-0000000861 N +2023-06-GSAFAC-0000000779 Y +2023-06-GSAFAC-0000000800 N +2023-04-GSAFAC-0000000495 N +... +``` diff --git a/src/api/v1_0_0/index.md b/src/api/v1_0_0/index.md deleted file mode 100644 index fbeda072..00000000 --- a/src/api/v1_0_0/index.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -layout: home.njk -title: FAC API v1.0.0 ---- - -# {{title}} - -{% include "api/v1_0_0/api-documentation-body.html" %} diff --git a/src/audit-resources/sf-sac/federal-awards-audit-findings.md b/src/audit-resources/sf-sac/federal-awards-audit-findings.md index 03d1d834..c3e032cd 100644 --- a/src/audit-resources/sf-sac/federal-awards-audit-findings.md +++ b/src/audit-resources/sf-sac/federal-awards-audit-findings.md @@ -27,7 +27,7 @@ Enter the award reference number as listed in SF-SAC Section 1: Federal Awards. ### Column B: Audit Finding Reference Number -Enter the audit finding reference number as listed in F-SAC Section 1: Federal Awards. Audit finding reference numbers must be formatted “YYYY-###”. +Enter the audit finding reference number as listed in SF-SAC Section 1: Federal Awards. Audit finding reference numbers must be formatted “YYYY-###”. ### Column C: Type(s) of Compliance Requirement(s) diff --git a/src/audit-resources/sf-sac/federal-awards.md b/src/audit-resources/sf-sac/federal-awards.md index 707d0cc8..7a2d5490 100644 --- a/src/audit-resources/sf-sac/federal-awards.md +++ b/src/audit-resources/sf-sac/federal-awards.md @@ -124,9 +124,9 @@ This field can't be left blank. ### Column O: If no (Direct Award), Name of Passthrough Entity -If column N is "Y". this field can't be left blank. You must enter the name of your pass-through entity. +If column N is "N". this field can't be left blank. You must enter the name of your pass-through entity. -If column N is "N", you must leave this field blank. +If column N is "Y", you must leave this field blank. ### Column P: If no (Direct Award), Identifying Number Assigned by the Pass-through Entity, if assigned diff --git a/src/updates/archive.md b/src/updates/archive.md index d917cb91..508a92dd 100644 --- a/src/updates/archive.md +++ b/src/updates/archive.md @@ -10,19 +10,155 @@ meta: The FAC is committed to working transparently and openly. In addition to [our regular updates](https://www.fac.gov/info/updates/), you can find historical updates below. + +
+

+ +

+
+ +The team has been focused on completing a migration of data from Census to GSA. This update covers mid-December to the current week. + +### Historic data transfer + +**Single Audit submissions from 2016–present are now available from the GSA FAC, and the Census Bureau is shutting down their data distribution.** Single Audits from prior years will appear in our search results. This is a major milestone, and future work will involve documenting the data migration, our continued curation of this data, and improvements to how this data is queried and used. + +The migration caused some disruptions to service. With 10 times more data, our system has struggled to keep up with volume for some of our search filters. The most affected filter is the ALN search. Results for this filter show whether an audit contains findings (“Findings My ALN/Findings Other ALN”). Before the migration, this filter applied to small amounts of data, but after adding prior years, this began crashing the system. We've removed this feature to resolve the system strain. Our team is working on a replacement feature to handle the larger amount of data. + + +### What we delivered + +We work in [an agile manner](https://asana.com/resources/agile-methodology). That means we have a long-term strategy, medium-term features we work to deliver, and make continuous improvement and bug fixes to the existing product. + +#### Customer experience +We achieved “helpdesk zero” in the last week of January. We had no questions come in on a workday, and we emptied our queue so we had no support questions left to answer. We have continued to empty our question queue on a near-daily basis. + +The team currently replies to a ticket within 1.5 hours of receipt, and closes 75% of tickets within 8 hours. The helpdesk remains an excellent place to get timely support. + +#### UX/Design + +We completed user testing on navigation changes for [FAC.gov]({{ config.baseUrl }}). This validated a new site structure that will be easier for users to navigate. + +The team finalized a research plan around audit resolution work. We began interviews with audit resolution officials, IG offices, and other users. + +#### Submission improvements + +We made multiple improvements to the submission experience. We use research and interviews with our users, as well as issues reported in the helpdesk, to guide this work. + +- Added an SF-SAC summary report, allowing users to review the form data for in-progress and completed audits (PR [3025](https://github.com/GSA-TTS/FAC/pull/3025)). + +- Significantly sped up PDF validation (PR [3057](https://github.com/GSA-TTS/FAC/pull/3057)). + +- Submitters can now unlock an in-progress audit anytime up to the time of final submission (PR [3136](https://github.com/GSA-TTS/FAC/pull/3136)). + +- Synchronization fixes between the audit state and submission checklist (PR [3144](https://github.com/GSA-TTS/FAC/pull/3144)). + +- Users no longer have to log out and back in for changes to user access (e.g. changing the Auditee Certifying Official email address) to take effect. (PR [3194](https://github.com/GSA-TTS/FAC/pull/3194)). + +- Simplified the submission checklist after an audit is validated and locked for certification. (PR [3197](https://github.com/GSA-TTS/FAC/pull/3197)). + +- Improved validations regarding reference numbers (PR [3221](https://github.com/GSA-TTS/FAC/pull/3221)). + +- Added the ability to download Audit Report Packages and the SF-SAC for in-progress review (PR [3212](https://github.com/GSA-TTS/FAC/pull/3212)). + +- Many search performance improvements (PR [3283](https://github.com/GSA-TTS/FAC/pull/3283)). + +- Fixes around our new “testing” banner and pre-certification report generation (PRs [3261](https://github.com/GSA-TTS/FAC/pull/3261), [3326](https://github.com/GSA-TTS/FAC/pull/3326), [3333](https://github.com/GSA-TTS/FAC/pull/3333)). + +- Improved validation error reporting around ALNs (PR [3230](https://github.com/GSA-TTS/FAC/pull/3230)). + +- Improved validation and error reporting around empty/zero loan balances (PR [3335](https://github.com/GSA-TTS/FAC/pull/3335)). + +#### Intake, Search, and API + +We also made multiple improvements to the audit search experience. + +- A small update to SF-SAC summary exports (PR [3296](https://github.com/GSA-TTS/FAC/pull/3296)) that adds ALNs to the Federal Awards sheet. + +- Fixed a performance bug within the FAC API (PR [3355](https://github.com/GSA-TTS/FAC/pull/3355)). + +### What's next? + +We're anticipating March to be a busy month. To support this, we'll be: + +- **Focusing on performance improvements** and growing our team’s capacity for user support so that the auditors and auditees are well-supported during this time. + +- **Providing documentation** regarding the migration of Census data to GSA and how to use it effectively. + +- **Improving search**, both to support Federal oversight work as well as the public’s experience with FAC data. + +- **Adding Tribal data access to the API** (PR [3359](https://github.com/GSA-TTS/FAC/pull/3359)) and writing documentation and legal agreements to accompany it. + +
+

+This week we've made improvements to user access roles, search results, and Tribal data access. + +### What we delivered + +We work in [an agile manner](https://asana.com/resources/agile-methodology). That means we have a long-term strategy, medium-term features we work to deliver, and make continuous improvement and bug fixes to the existing product. + +#### Audit access management + +We improved [the user access experience]({{ config.baseUrl }}resources/instructions/user-access) for single audits. Users can now change both the auditor and auditee certifying official for a submission and add new audit editors. + +Future improvements will allow for the removal of other contributors to a submission. + +#### Search improvements + +We added the ability to filter search results by auditee state. We also enhanced the results returned by the ALN filter, making it possible to see if a submission includes audit findings. + +#### Tribal data access controls + +We have implemented [access controls for Tribal audit data]({{ config.baseUrl }}data/tribal), and notified NSACs and KMSALs. This data will now appear in searches for logged in Federal users who have access. + +#### Summary reports + +We added the ability to download a summary report for an individual single audit submission. This combines all data from a single SF-SAC into one Excel document. + +#### Pre-certification review + +Auditors and auditees can now review a submission after it is validated and locked, but before it is certified. + +### What's next? + +#### Historic data migration + +We continue to work with Census on the migration of historic data. +
+ +
+

+ +

+
+ *This update is a bit richer given the cancellation of the November office hour for Federal partners.* We completed the development work necessary to make it possible to unlock audits that had been locked for certification. Auditors and auditees are now able to unlock these audits to make further edits before re-locking for certification. @@ -86,12 +222,12 @@ The historical data migration occupies a lot of our team’s time. However, we a type="button" class="usa-accordion__button" aria-expanded="false" - aria-controls="b-a2" + aria-controls="b-a3" > Week of October 20, 2023 -
+
We launched search and are ready for users to begin searching single audit reports. This initial iteration of search leverages six different filters for sorting data. @@ -253,12 +389,12 @@ Do you have an idea that could transform and improve grants management and overs type="button" class="usa-accordion__button" aria-expanded="false" - aria-controls="b-a3" + aria-controls="b-a4" > Week of October 23, 2023 -
+
The FAC participated in the Single Audit Roundtable, providing an update on our work to date and planned next steps, and used the opportunity to discuss pressing needs for auditors, resolution officials, and IGs. @@ -403,12 +539,12 @@ Do you have an idea that could transform and improve grants management and overs type="button" class="usa-accordion__button" aria-expanded="false" - aria-controls="b-a4" + aria-controls="b-a5" > Week of October 16, 2023 -
+
We released the GSA FAC as a minimal viable product. That means we are continuing to work and improve the FAC. We work in [an agile manner](https://asana.com/resources/agile-methodology). @@ -435,12 +571,12 @@ Our pending feature priorities are: type="button" class="usa-accordion__button" aria-expanded="false" - aria-controls="b-a5" + aria-controls="b-a6" > Week of October 9, 2023 -
+
We released the GSA FAC as a minimal viable product. That means we are continuing to work and improve the FAC. We work in [an agile manner](https://asana.com/resources/agile-methodology). @@ -471,12 +607,12 @@ Our other feature priorities are: type="button" class="usa-accordion__button" aria-expanded="false" - aria-controls="b-a6" + aria-controls="b-a7" > Week of September 25, 2023 -
+
We're excited to see completed audits coming in and data exporting via the FAC API. That said, we know there have been some issues. We're doing our best to provide help center support for those as fast as possible. diff --git a/src/updates/index.md b/src/updates/index.md index eb01167e..094aef6d 100644 --- a/src/updates/index.md +++ b/src/updates/index.md @@ -19,41 +19,64 @@ The Federal Audit Clearinghouse team works in the open. Our day-to-day task boar * Updates for [grantees and auditors](#grantees-and-auditors) * Updates for [agencies](#agencies) -## Week of December 18, 2023 +## Week of February 26, 2024 -This week we've made improvements to user access roles, search results, and Tribal data access. +Our work through the end of February and into March is focused in three areas: -### What we delivered +1. Improving search. +2. Improving access to Tribal data. +3. Preparing for the March submission deadline. -We work in [an agile manner](https://asana.com/resources/agile-methodology). That means we have a long-term strategy, medium-term features we work to deliver, and make continuous improvement and bug fixes to the existing product. +### Improving search -#### Audit access management +We added new search filters, covered in ticket [#3407](https://github.com/GSA-TTS/FAC/issues/3407). These new filters allow for: -We improved [the user access experience]({{ config.baseUrl }}resources/instructions/user-access) for single audits. Users can now change both the auditor and auditee certifying official for a submission and add new audit editors. +1. Searching audits by finding type. +2. Filtering by direct or passthrough funding. +3. Filtering by whether an audit is on a major program or not. -Future improvements will allow for the removal of other contributors to a submission. +We're continuing to improve search performance and are tracking our plans in story [#3388](https://github.com/GSA-TTS/FAC/issues/3388). -#### Search improvements + If you encounter issues with any of these new features, please let us know [via the FAC helpdesk](https://support.fac.gov/hc/en-us/requests/new). -We added the ability to filter search results by auditee state. We also enhanced the results returned by the ALN filter, making it possible to see if a submission includes audit findings. +### Improving access to Tribal data -#### Tribal data access controls +We're reviewing ticket [#2298](https://github.com/GSA-TTS/FAC/issues/2298). This will make Tribal data available to Federal partners via the FAC API. The team is also close to completing ticket [#3331](https://github.com/GSA-TTS/FAC/issues/3331), which will make the public portion of Tribal audits appropriately visible in search. -We have implemented [access controls for Tribal audit data]({{ config.baseUrl }}data/tribal), and notified NSACs and KMSALs. This data will now appear in searches for logged in Federal users who have access. +### March submission deadline -#### Summary reports +It's possible to [use the FAC API](https://github.com/GSA-TTS/fac-api-examples/tree/main/count-march-submissions) to predict what is coming in March. Here are plots of the submissions-per-day to the FAC from March of 2016 through 2022. -We added the ability to download a summary report for an individual single audit submission. This combines all data from a single SF-SAC into one Excel document. +
+
+
Histogram of submissions in 2016
+
Histogram of submissions in 2017
+
Histogram of submissions in 2018
+
Histogram of submissions in 2019
+
+
+
Histogram of submissions in 2020
+
Histogram of submissions in 2021
+
Histogram of submissions in 2022
+
+
+
-#### Pre-certification review +The Clearinghouse typically sees between 700 and 900 audit submissions per day at the end of March. In 2022, the Census Bureau saw close to 2000 audits submitted in one day. -Auditors and auditees can now review a submission after it is validated and locked, but before it is certified. +We're doing many things to prepare for this submission volume. Since our launch, we've run two "copies" of the FAC to handle submissions. This means that, if two people are uploading audits to the FAC, one might get "FAC 1," and the other "FAC 2," so they both experience good web performance. As we go into March, we are increasing that number to 10, and can double that to 20 if necessary. This way, if 10 people are uploading data at the same time, they will each experience the same level of performance. + +This is possible because the FAC is built on top of technologies like [cloud.gov](https://cloud.gov) and [Login.gov](https://login.gov). ### What's next? -#### Historic data migration +We're keeping our focus on March. Looking ahead to the next few months, we'll be: + +- Focusing on performance improvements and growing our team’s capacity for user support. + +- Providing documentation on the migration of historical and how to use it. -We continue to work with Census on the migration of historic data. +- Improving search to support Federal oversight work and the public’s use of FAC data.

General updates

diff --git a/tools/openapi2uswds/.gitignore b/tools/openapi2uswds/.gitignore deleted file mode 100644 index e691d13d..00000000 --- a/tools/openapi2uswds/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -*~ -compiled -*.html -o2u -openapi-to-uswds -*.json -!template.html -!fac-template.html -assets \ No newline at end of file diff --git a/tools/openapi2uswds/Dockerfile b/tools/openapi2uswds/Dockerfile deleted file mode 100644 index 8ab08d97..00000000 --- a/tools/openapi2uswds/Dockerfile +++ /dev/null @@ -1,18 +0,0 @@ -FROM racket/racket:8.9-full - -RUN mkdir /app -COPY *.rkt /app -RUN mkdir /input -COPY template.html /input -WORKDIR /app -RUN raco pkg install \ - --auto \ - --no-cache \ - --no-docs \ - cli \ - gregor \ - http-easy -RUN raco exe -o openapi-to-uswds main.rkt ;\ - raco distribute o2u openapi-to-uswds -RUN mkdir /output -ENTRYPOINT ["/app/o2u/bin/openapi-to-uswds", "--output-directory", "/output", "--input-directory", "/input"] diff --git a/tools/openapi2uswds/README.md b/tools/openapi2uswds/README.md deleted file mode 100644 index 01de5f3b..00000000 --- a/tools/openapi2uswds/README.md +++ /dev/null @@ -1,63 +0,0 @@ -## To build - -``` -docker build -t fac/o2u -f Dockerfile . -``` - -## To run - -``` -docker run -v ${PWD}:/output fac/o2u --url -``` - -## For help - -``` -docker run fac/o2u --help -``` - -## Input and output - -The tool defaults to the output directory `/output`; hence, mapping - -``` --v :/output -``` - -will set where the output file should be rendered. - -``` -docker run -v ${PWD}/output fac/o2u --url -``` - -will render the URL through a default template to the file `api-documentation.html`. - -The output filename can be changed with `--outfile`. - -To use a different template, it needs to be placed in the input directory. You should map this as well. - -``` -docker run -v ${PWD}:/output -v ${PWD}:/input fac/o2u --url -``` - -It is possible to run against a file instead of a URL, but it, too, should be in the input directory. - -``` -docker run -v ${PWD}:/output -v ${PWD}:/input fac/o2u --file -``` - -## Running locally - -``` -racket main.rkt -``` - -will run the application. It defaults to the current directory for input and output directories. - -``` -racket main.rkt --url -``` - -is the equivalent to the dockerized commands above. - -Tested with Racket 8.9. Probably good back to at least Racket 8.6. \ No newline at end of file diff --git a/tools/openapi2uswds/as-sexp.rkt b/tools/openapi2uswds/as-sexp.rkt deleted file mode 100644 index 6261b37a..00000000 --- a/tools/openapi2uswds/as-sexp.rkt +++ /dev/null @@ -1,5259 +0,0 @@ -'#hasheq((basePath . "/") - (consumes - . - ("application/json" "application/vnd.pgrst.object+json" "text/csv")) - (definitions - . - #hasheq((vw_auditee - . - #hasheq((description - . - "Information about the entity undergoing the audit") - (properties - . - #hasheq((auditee_certify_name - . - #hasheq((description - . - "Name of Auditee Certifying Official Data sources: SF-SAC 1997-2000: I/6/g; SF-SAC 2001-2003: I/6/g; SF-SAC 2004-2007: I/6/g; SF-SAC 2008-2009: I/5/g; SF-SAC 2010-2012: I/5/g; SF-SAC 2013-2015: certifications; SF-SAC 2016-2018: certifications; SF-SAC 2019-2021: certifications; SF-SAC 2022: certifications Census mapping: GENERAL, AUDITEECERTIFYNAME") - (format . "character varying") - (maxLength . 50) - (type . "string"))) - (auditee_certify_title - . - #hasheq((description - . - "Title of Auditee Certifying Official Data sources: SF-SAC 1997-2000: I/6/g; SF-SAC 2001-2003: I/6/g; SF-SAC 2004-2007: I/6/g; SF-SAC 2008-2009: I/5/g; SF-SAC 2010-2012: I/5/g; SF-SAC 2013-2015: certifications; SF-SAC 2016-2018: certifications; SF-SAC 2019-2021: certifications; SF-SAC 2022: certifications Census mapping: GENERAL, AUDITEECERTIFYTITLE") - (format . "character varying") - (maxLength . 50) - (type . "string"))) - (auditee_city - . - #hasheq((description - . - "Auditee City Data sources: SF-SAC 1997-2000: I/6/b; SF-SAC 2001-2003: I/6/b; SF-SAC 2004-2007: I/6/b; SF-SAC 2008-2009: I/5/b; SF-SAC 2010-2012: I/5/b; SF-SAC 2013-2015: I/5/b; SF-SAC 2016-2018: I/5/b; SF-SAC 2019-2021: I/5/b; SF-SAC 2022: I/5/b Census mapping: GENERAL, CITY") - (format . "character varying") - (maxLength . 30) - (type . "string"))) - (auditee_contact - . - #hasheq((description - . - "Name of Auditee Contact Data sources: SF-SAC 1997-2000: I/6/c; SF-SAC 2001-2003: I/6/c; SF-SAC 2004-2007: I/6/c; SF-SAC 2008-2009: I/5/c; SF-SAC 2010-2012: I/5/c; SF-SAC 2013-2015: I/5/c; SF-SAC 2016-2018: I/5/c; SF-SAC 2019-2021: I/5/c; SF-SAC 2022: I/5/c Census mapping: GENERAL, AUDITEECONTACT") - (format . "character varying") - (maxLength . 50) - (type . "string"))) - (auditee_email - . - #hasheq((description - . - "Auditee Email address Data sources: SF-SAC 1997-2000: I/6/f; SF-SAC 2001-2003: I/6/f; SF-SAC 2004-2007: I/6/f; SF-SAC 2008-2009: I/5/f; SF-SAC 2010-2012: I/5/f; SF-SAC 2013-2015: I/5/f; SF-SAC 2016-2018: I/5/e; SF-SAC 2019-2021: I/5/e; SF-SAC 2022: I/5/e Census mapping: GENERAL, AUDITEEEMAIL") - (format . "character varying") - (maxLength . 60) - (type . "string"))) - (auditee_fax - . - #hasheq((description - . - "Auditee Fax Number (optional) Data sources: SF-SAC 1997-2000: I/6/e; SF-SAC 2001-2003: I/6/e; SF-SAC 2004-2007: I/6/e; SF-SAC 2008-2009: I/5/e; SF-SAC 2010-2012: I/5/e; SF-SAC 2013-2015: I/5/e Census mapping: GENERAL, AUDITEEFAX") - (format . "bigint") - (type . "integer"))) - (auditee_name - . - #hasheq((description - . - "Name of the Auditee Data sources: SF-SAC 1997-2000: I/6/a; SF-SAC 2001-2003: I/6/a; SF-SAC 2004-2007: I/6/a; SF-SAC 2008-2009: I/5/a; SF-SAC 2010-2012: I/5/a; SF-SAC 2013-2015: I/5/a; SF-SAC 2016-2018: I/5/a; SF-SAC 2019-2021: I/5/a; SF-SAC 2022: I/5/a Census mapping: GENERAL, AUDITEENAME") - (format . "character varying") - (maxLength . 70) - (type . "string"))) - (auditee_name_title - . - #hasheq((description - . - "Title of Auditee Certifying Official Data sources: SF-SAC 1997-2000: I/6/g; SF-SAC 2001-2003: I/6/g; SF-SAC 2004-2007: I/6/g; SF-SAC 2008-2009: I/5/g; SF-SAC 2010-2012: I/5/g; SF-SAC 2013-2015: certifications; SF-SAC 2016-2018: certifications; SF-SAC 2019-2021: certifications; SF-SAC 2022: certifications Census mapping: GENERAL, AUDITEENAMETITLE") - (format . "character varying") - (maxLength . 70) - (type . "string"))) - (auditee_phone - . - #hasheq((description - . - "Auditee Phone Number Data sources: SF-SAC 1997-2000: I/6/d; SF-SAC 2001-2003: I/6/d; SF-SAC 2004-2007: I/6/d; SF-SAC 2008-2009: I/5/d; SF-SAC 2010-2012: I/5/d; SF-SAC 2013-2015: I/5/d; SF-SAC 2016-2018: I/5/d; SF-SAC 2019-2021: I/5/d; SF-SAC 2022: I/5/d Census mapping: GENERAL, AUDITEEPHONE") - (format . "bigint") - (type . "integer"))) - (auditee_state - . - #hasheq((description - . - "Auditee State Data sources: SF-SAC 1997-2000: I/6/b; SF-SAC 2001-2003: I/6/b; SF-SAC 2004-2007: I/6/b; SF-SAC 2008-2009: I/5/b; SF-SAC 2010-2012: I/5/b; SF-SAC 2013-2015: I/5/b; SF-SAC 2016-2018: I/5/b; SF-SAC 2019-2021: I/5/b; SF-SAC 2022: I/5/b Census mapping: GENERAL, STATE") - (format . "character varying") - (maxLength . 2) - (type . "string"))) - (auditee_street1 - . - #hasheq((description - . - "Auditee Street Address Data sources: SF-SAC 1997-2000: I/6/b; SF-SAC 2001-2003: I/6/b; SF-SAC 2004-2007: I/6/b; SF-SAC 2008-2009: I/5/b; SF-SAC 2010-2012: I/5/b; SF-SAC 2013-2015: I/5/b; SF-SAC 2016-2018: I/5/b; SF-SAC 2019-2021: I/5/b; SF-SAC 2022: I/5/b Census mapping: GENERAL, STREET1") - (format . "character varying") - (maxLength . 45) - (type . "string"))) - (auditee_street2 - . - #hasheq((description - . - "Auditee Street Address Data sources: SF-SAC 1997-2000: I/6/b; SF-SAC 2001-2003: I/6/b; SF-SAC 2004-2007: I/6/b; SF-SAC 2008-2009: I/5/b; SF-SAC 2010-2012: I/5/b; SF-SAC 2013-2015: I/5/b; SF-SAC 2016-2018: I/5/b; SF-SAC 2019-2021: I/5/b; SF-SAC 2022: I/5/b Census mapping: GENERAL, STREET2") - (format . "character varying") - (maxLength . 45) - (type . "string"))) - (auditee_title - . - #hasheq((description - . - "Title of Auditee Contact Data sources: SF-SAC 1997-2000: I/6/c; SF-SAC 2001-2003: I/6/c; SF-SAC 2004-2007: I/6/c; SF-SAC 2008-2009: I/5/c; SF-SAC 2010-2012: I/5/c; SF-SAC 2013-2015: I/5/c; SF-SAC 2016-2018: I/5/c; SF-SAC 2019-2021: I/5/c; SF-SAC 2022: I/5/c Census mapping: GENERAL, AUDITEETITLE") - (format . "character varying") - (maxLength . 40) - (type . "string"))) - (auditee_zip_code - . - #hasheq((description - . - "Auditee Zip Code Data sources: SF-SAC 1997-2000: I/6/b; SF-SAC 2001-2003: I/6/b; SF-SAC 2004-2007: I/6/b; SF-SAC 2008-2009: I/5/b; SF-SAC 2010-2012: I/5/b; SF-SAC 2013-2015: I/5/b; SF-SAC 2016-2018: I/5/b; SF-SAC 2019-2021: I/5/b; SF-SAC 2022: I/5/b Census mapping: GENERAL, ZIPCODE") - (format . "character varying") - (maxLength . 12) - (type . "string"))) - (dbkey - . - #hasheq((format . "character varying[]") - (items - . - #hasheq((type . "string"))) - (type . "array"))) - (duns_list - . - #hasheq((description . "duns list ") - (format . "integer[]") - (items - . - #hasheq((type . "integer"))) - (type . "array"))) - (ein_list - . - #hasheq((description . "ein list ") - (format . "integer[]") - (items - . - #hasheq((type . "integer"))) - (type . "array"))) - (ein_subcode - . - #hasheq((description - . - "Subcode assigned to the EIN. Census mapping: GENERAL, EINSUBCODE") - (format . "integer") - (type . "integer"))) - (general_id - . - #hasheq((format . "bigint[]") - (items - . - #hasheq((type . "integer"))) - (type . "array"))) - (id - . - #hasheq((description - . - "ID \n\nNote:\nThis is a Primary Key.") - (format . "bigint") - (type . "integer"))) - (is_public - . - #hasheq((description - . - "True if appears in a public record ") - (format . "boolean") - (type . "boolean"))) - (uei_list - . - #hasheq((description . "uei list ") - (format . "character varying[]") - (items - . - #hasheq((type . "string"))) - (type . "array"))))) - (type . "object"))) - (vw_auditor - . - #hasheq((description - . - "Information about the Auditing CPA firm conducting the audit") - (properties - . - #hasheq((cpa_city - . - #hasheq((description - . - "CPA City Data sources: SF-SAC 1997-2000: I/7/b; SF-SAC 2001-2003: I/7/b; SF-SAC 2004-2007: I/7/b; SF-SAC 2008-2009: I/6/b; SF-SAC 2010-2012: I/6/b; SF-SAC 2013-2015: I/6/c; SF-SAC 2016-2018: I/6/c; SF-SAC 2019-2021: I/6/c; SF-SAC 2022: I/6/c Census mapping: GENERAL, CPACITY (AND) Data sources: SF-SAC 2008-2009: I/8/b; SF-SAC 2010-2012: I/8/b; SF-SAC 2013-2015: I/8/d; SF-SAC 2016-2018: I/8/d; SF-SAC 2019-2021: I/6/h/iv; SF-SAC 2022: I/6/h/iv Census mapping: MULTIPLE CPAS INFO, CPACITY") - (format . "character varying") - (maxLength . 30) - (type . "string"))) - (cpa_contact - . - #hasheq((description - . - "Name of CPA Contact Data sources: SF-SAC 1997-2000: I/7/c; SF-SAC 2001-2003: I/7/c; SF-SAC 2004-2007: I/7/c; SF-SAC 2008-2009: I/6/c; SF-SAC 2010-2012: I/6/c; SF-SAC 2013-2015: I/6/d; SF-SAC 2016-2018: I/6/d; SF-SAC 2019-2021: I/6/d; SF-SAC 2022: I/6/d Census mapping: GENERAL, CPACONTACT (AND) Data sources: SF-SAC 2008-2009: I/8/c; SF-SAC 2010-2012: I/8/c; SF-SAC 2013-2015: I/8/g; SF-SAC 2016-2018: I/8/g; SF-SAC 2019-2021: I/6/h/vii; SF-SAC 2022: I/6/h/vii Census mapping: MULTIPLE CPAS INFO, CPACONTACT") - (format . "character varying") - (maxLength . 50) - (type . "string"))) - (cpa_country - . - #hasheq((description - . - "CPA Country Data sources: SF-SAC 2019-2021: I/6/c; SF-SAC 2022: I/6/c Census mapping: GENERAL, CPACOUNTRY") - (format . "character varying") - (maxLength . 6) - (type . "string"))) - (cpa_ein - . - #hasheq((description - . - "CPA Firm EIN (only available for audit years 2013 and beyond) Data sources: SF-SAC 2013-2015: I/6/b; SF-SAC 2016-2018: I/6/b; SF-SAC 2019-2021: I/6/b; SF-SAC 2022: I/6/b Census mapping: GENERAL, AUDITOR_EIN (AND) Data sources: SF-SAC 2013-2015: I/8/b; SF-SAC 2016-2018: I/8/b; SF-SAC 2019-2021: I/6/h/ii; SF-SAC 2022: I/6/h/ii Census mapping: MULTIPLE CPAS INFO, CPAEIN") - (format . "integer") - (type . "integer"))) - (cpa_email - . - #hasheq((description - . - "CPA mail address (optional) Data sources: SF-SAC 1997-2000: I/7/f; SF-SAC 2001-2003: I/7/f; SF-SAC 2004-2007: I/7/f; SF-SAC 2008-2009: I/6/f; SF-SAC 2010-2012: I/6/f; SF-SAC 2013-2015: I/6/g; SF-SAC 2016-2018: I/6/f; SF-SAC 2019-2021: I/6/f; SF-SAC 2022: I/6/f Census mapping: GENERAL, CPAEMAIL (AND) Data sources: SF-SAC 2008-2009: I/8/f; SF-SAC 2010-2012: I/8/f; SF-SAC 2013-2015: I/8/k; SF-SAC 2016-2018: I/8/k; SF-SAC 2019-2021: I/6/h/x; SF-SAC 2022: I/6/h/x Census mapping: MULTIPLE CPAS INFO, CPAEMAIL") - (format . "character varying") - (maxLength . 60) - (type . "string"))) - (cpa_fax - . - #hasheq((description - . - "CPA fax number (optional) Data sources: SF-SAC 1997-2000: I/7/e; SF-SAC 2001-2003: I/7/e; SF-SAC 2004-2007: I/7/e; SF-SAC 2008-2009: I/6/e; SF-SAC 2010-2012: I/6/e; SF-SAC 2013-2015: I/6/f Census mapping: GENERAL, CPAFAX (AND) Data sources: SF-SAC 2008-2009: I/8/e; SF-SAC 2010-2012: I/8/e; SF-SAC 2013-2015: I/8/j; SF-SAC 2016-2018: I/8/j Census mapping: MULTIPLE CPAS INFO, CPAFAX") - (format . "bigint") - (type . "integer"))) - (cpa_firm_name - . - #hasheq((description - . - "CPA Firm Name Data sources: SF-SAC 1997-2000: I/7/a; SF-SAC 2001-2003: I/7/a; SF-SAC 2004-2007: I/7/a; SF-SAC 2008-2009: I/6/a; SF-SAC 2010-2012: I/6/a; SF-SAC 2013-2015: I/6/a; SF-SAC 2016-2018: I/6/a; SF-SAC 2019-2021: I/6/a; SF-SAC 2022: I/6/a Census mapping: GENERAL, CPAFIRMNAME (AND) Data sources: SF-SAC 2008-2009: I/8/a; SF-SAC 2010-2012: I/8/a; SF-SAC 2013-2015: I/8/a; SF-SAC 2016-2018: I/8/a; SF-SAC 2019-2021: I/6/h/i; SF-SAC 2022: I/6/h/i Census mapping: MULTIPLE CPAS INFO, CPAFIRMNAME") - (format . "character varying") - (maxLength . 64) - (type . "string"))) - (cpa_foreign - . - #hasheq((description - . - "CPA Address - if international Data sources: SF-SAC 2019-2021: I/6/c; SF-SAC 2022: I/6/c Census mapping: GENERAL, CPAFOREIGN") - (format . "character varying") - (maxLength . 200) - (type . "string"))) - (cpa_phone - . - #hasheq((description - . - "CPA phone number Data sources: SF-SAC 1997-2000: I/7/d; SF-SAC 2001-2003: I/7/d; SF-SAC 2004-2007: I/7/d; SF-SAC 2008-2009: I/6/d; SF-SAC 2010-2012: I/6/d; SF-SAC 2013-2015: I/6/e; SF-SAC 2016-2018: I/6/e; SF-SAC 2019-2021: I/6/e; SF-SAC 2022: I/6/e Census mapping: GENERAL, CPAPHONE (AND) Data sources: SF-SAC 2008-2009: I/8/d; SF-SAC 2010-2012: I/8/d; SF-SAC 2013-2015: I/8/i; SF-SAC 2016-2018: I/8/i; SF-SAC 2019-2021: I/6/h/ix; SF-SAC 2022: I/6/h/ix Census mapping: MULTIPLE CPAS INFO, CPAPHONE") - (format . "bigint") - (type . "integer"))) - (cpa_state - . - #hasheq((description - . - "CPA State Data sources: SF-SAC 1997-2000: I/7/b; SF-SAC 2001-2003: I/7/b; SF-SAC 2004-2007: I/7/b; SF-SAC 2008-2009: I/6/b; SF-SAC 2010-2012: I/6/b; SF-SAC 2013-2015: I/6/c; SF-SAC 2016-2018: I/6/c; SF-SAC 2019-2021: I/6/c; SF-SAC 2022: I/6/c Census mapping: GENERAL, CPASTATE (AND) Data sources: SF-SAC 2008-2009: I/8/b; SF-SAC 2010-2012: I/8/b; SF-SAC 2013-2015: I/8/e; SF-SAC 2016-2018: I/8/e; SF-SAC 2019-2021: I/6/h/v; SF-SAC 2022: I/6/h/v Census mapping: MULTIPLE CPAS INFO, CPASTATE") - (format . "character varying") - (maxLength . 2) - (type . "string"))) - (cpa_street1 - . - #hasheq((description - . - "CPA Street Address Data sources: SF-SAC 1997-2000: I/7/b; SF-SAC 2001-2003: I/7/b; SF-SAC 2004-2007: I/7/b; SF-SAC 2008-2009: I/6/b; SF-SAC 2010-2012: I/6/b; SF-SAC 2013-2015: I/6/c; SF-SAC 2016-2018: I/6/c; SF-SAC 2019-2021: I/6/c; SF-SAC 2022: I/6/c Census mapping: GENERAL, CPASTREET1 (AND) Data sources: SF-SAC 2008-2009: I/8/b; SF-SAC 2010-2012: I/8/b; SF-SAC 2013-2015: I/8/c; SF-SAC 2016-2018: I/8/c; SF-SAC 2019-2021: I/6/h/iii; SF-SAC 2022: I/6/h/iii Census mapping: MULTIPLE CPAS INFO, CPASTREET1") - (format . "character varying") - (maxLength . 45) - (type . "string"))) - (cpa_street2 - . - #hasheq((description - . - "CPA Street Address, line 2 Data sources: SF-SAC 1997-2000: I/7/b; SF-SAC 2001-2003: I/7/b; SF-SAC 2004-2007: I/7/b; SF-SAC 2008-2009: I/6/b; SF-SAC 2010-2012: I/6/b; SF-SAC 2013-2015: I/6/c; SF-SAC 2016-2018: I/6/c; SF-SAC 2019-2021: I/6/c; SF-SAC 2022: I/6/c Census mapping: GENERAL, CPASTREET2") - (format . "character varying") - (maxLength . 45) - (type . "string"))) - (cpa_title - . - #hasheq((description - . - "Title of CPA Contact Data sources: SF-SAC 1997-2000: I/7/c; SF-SAC 2001-2003: I/7/c; SF-SAC 2004-2007: I/7/c; SF-SAC 2008-2009: I/6/c; SF-SAC 2010-2012: I/6/c; SF-SAC 2013-2015: I/6/d; SF-SAC 2016-2018: I/6/d; SF-SAC 2019-2021: I/6/d; SF-SAC 2022: I/6/d Census mapping: GENERAL, CPATITLE (AND) Data sources: SF-SAC 2008-2009: I/8/c; SF-SAC 2010-2012: I/8/c; SF-SAC 2013-2015: I/8/h; SF-SAC 2016-2018: I/8/h; SF-SAC 2019-2021: I/6/h/viii; SF-SAC 2022: I/6/h/viii Census mapping: MULTIPLE CPAS INFO, CPATITLE") - (format . "character varying") - (maxLength . 40) - (type . "string"))) - (cpa_zip_code - . - #hasheq((description - . - "CPA Zip Code Data sources: SF-SAC 1997-2000: I/7/b; SF-SAC 2001-2003: I/7/b; SF-SAC 2004-2007: I/7/b; SF-SAC 2008-2009: I/6/b; SF-SAC 2010-2012: I/6/b; SF-SAC 2013-2015: I/6/c; SF-SAC 2016-2018: I/6/c; SF-SAC 2019-2021: I/6/c; SF-SAC 2022: I/6/c Census mapping: GENERAL, CPAZIPCODE (AND) Data sources: SF-SAC 2008-2009: I/8/b; SF-SAC 2010-2012: I/8/b; SF-SAC 2013-2015: I/8/f; SF-SAC 2016-2018: I/8/f; SF-SAC 2019-2021: I/6/h/vi; SF-SAC 2022: I/6/h/vi Census mapping: MULTIPLE CPAS INFO, CPAZIPCODE") - (format . "character varying") - (maxLength . 12) - (type . "string"))) - (general_id - . - #hasheq((format . "bigint[]") - (items - . - #hasheq((type . "integer"))) - (type . "array"))) - (id - . - #hasheq((description - . - "ID \n\nNote:\nThis is a Primary Key.") - (format . "bigint") - (type . "integer"))) - (is_public - . - #hasheq((description - . - "True if appears in a public record ") - (format . "boolean") - (type . "boolean"))) - (secondary_auditor_general_id - . - #hasheq((format . "bigint[]") - (items - . - #hasheq((type . "integer"))) - (type . "array"))) - (sequence_number - . - #hasheq((description - . - "Order that Auditors were reported on page 5 of SF-SAC (only for secondary_auditors) Census mapping: GENERAL, SEQNUM (AND) Census mapping: MULTIPLE CPAS INFO, SEQNUM") - (format . "integer") - (type . "integer"))))) - (type . "object"))) - (vw_cap_text - . - #hasheq((properties - . - #hasheq((audit_year - . - #hasheq((format . "character varying") - (maxLength . 40) - (type . "string"))) - (auditee_ein - . - #hasheq((format . "integer") - (type . "integer"))) - (auditee_uei - . - #hasheq((format . "character varying") - (type . "string"))) - (cap_text - . - #hasheq((format . "text") - (type . "string"))) - (charts_tables - . - #hasheq((format . "boolean") - (type . "boolean"))) - (finding_ref_number - . - #hasheq((format . "character varying") - (maxLength . 100) - (type . "string"))) - (fy_end_date - . - #hasheq((format . "date") - (type . "string"))) - (fy_start_date - . - #hasheq((format . "date") - (type . "string"))) - (id - . - #hasheq((description - . - "Note:\nThis is a Primary Key.") - (format . "bigint") - (type . "integer"))) - (report_id - . - #hasheq((format . "character varying") - (maxLength . 40) - (type . "string"))))) - (type . "object"))) - (vw_federal_award - . - #hasheq((properties - . - #hasheq((additional_award_identification - . - #hasheq((format . "character varying") - (maxLength . 50) - (type . "string"))) - (amount_expended - . - #hasheq((format . "bigint") - (type . "integer"))) - (audit_year - . - #hasheq((format . "character varying") - (maxLength . 40) - (type . "string"))) - (auditee_ein - . - #hasheq((format . "integer") - (type . "integer"))) - (auditee_uei - . - #hasheq((format . "character varying") - (type . "string"))) - (award_seq_number - . - #hasheq((format . "integer") - (type . "integer"))) - (cluster_name - . - #hasheq((format . "character varying") - (maxLength . 75) - (type . "string"))) - (cluster_total - . - #hasheq((format . "bigint") - (type . "integer"))) - (federal_agency_prefix - . - #hasheq((format . "character varying") - (maxLength . 2) - (type . "string"))) - (federal_award_extension - . - #hasheq((format . "character varying") - (maxLength . 3) - (type . "string"))) - (federal_program_name - . - #hasheq((format . "character varying") - (maxLength . 300) - (type . "string"))) - (federal_program_total - . - #hasheq((format . "bigint") - (type . "integer"))) - (findings_count - . - #hasheq((format . "integer") - (type . "integer"))) - (fy_end_date - . - #hasheq((format . "date") - (type . "string"))) - (fy_start_date - . - #hasheq((format . "date") - (type . "string"))) - (id - . - #hasheq((description - . - "Note:\nThis is a Primary Key.") - (format . "bigint") - (type . "integer"))) - (is_direct - . - #hasheq((format . "boolean") - (type . "boolean"))) - (is_loan - . - #hasheq((format . "boolean") - (type . "boolean"))) - (is_major - . - #hasheq((format . "boolean") - (type . "boolean"))) - (loan_balance_at_audit_period_end - . - #hasheq((format . "character varying") - (maxLength . 40) - (type . "string"))) - (mp_audit_report_type - . - #hasheq((format . "character varying") - (maxLength . 40) - (type . "string"))) - (other_cluster_name - . - #hasheq((format . "character varying") - (maxLength . 75) - (type . "string"))) - (passthrough_amount - . - #hasheq((format . "bigint") - (type . "integer"))) - (passthrough_award - . - #hasheq((format . "boolean") - (type . "boolean"))) - (report_id - . - #hasheq((format . "character varying") - (maxLength . 40) - (type . "string"))) - (state_cluster_name - . - #hasheq((format . "character varying") - (maxLength . 75) - (type . "string"))) - (type_requirement - . - #hasheq((format . "character varying") - (maxLength . 40) - (type . "string"))))) - (type . "object"))) - (vw_finding - . - #hasheq((properties - . - #hasheq((audit_year - . - #hasheq((format . "character varying") - (maxLength . 40) - (type . "string"))) - (auditee_ein - . - #hasheq((format . "integer") - (type . "integer"))) - (auditee_uei - . - #hasheq((format . "character varying") - (type . "string"))) - (award_seq_number - . - #hasheq((format . "integer") - (type . "integer"))) - (federal_agency_prefix - . - #hasheq((format . "character varying") - (maxLength . 2) - (type . "string"))) - (federal_award_extension - . - #hasheq((format . "character varying") - (maxLength . 3) - (type . "string"))) - (finding_ref_number - . - #hasheq((format . "character varying") - (maxLength . 100) - (type . "string"))) - (finding_seq_number - . - #hasheq((format . "integer") - (type . "integer"))) - (fy_end_date - . - #hasheq((format . "date") - (type . "string"))) - (fy_start_date - . - #hasheq((format . "date") - (type . "string"))) - (id - . - #hasheq((description - . - "Note:\nThis is a Primary Key.") - (format . "bigint") - (type . "integer"))) - (is_material_weakness - . - #hasheq((format . "boolean") - (type . "boolean"))) - (is_significant_deficiency - . - #hasheq((format . "boolean") - (type . "boolean"))) - (modified_opinion - . - #hasheq((format . "boolean") - (type . "boolean"))) - (other_findings - . - #hasheq((format . "boolean") - (type . "boolean"))) - (other_non_compliance - . - #hasheq((format . "boolean") - (type . "boolean"))) - (prior_finding_ref_numbers - . - #hasheq((format . "character varying") - (maxLength . 100) - (type . "string"))) - (questioned_costs - . - #hasheq((format . "boolean") - (type . "boolean"))) - (repeat_finding - . - #hasheq((format . "boolean") - (type . "boolean"))) - (report_id - . - #hasheq((format . "character varying") - (maxLength . 40) - (type . "string"))) - (type_requirement - . - #hasheq((format . "character varying") - (maxLength . 40) - (type . "string"))))) - (type . "object"))) - (vw_finding_text - . - #hasheq((properties - . - #hasheq((audit_year - . - #hasheq((format . "character varying") - (maxLength . 40) - (type . "string"))) - (auditee_ein - . - #hasheq((format . "integer") - (type . "integer"))) - (auditee_uei - . - #hasheq((format . "character varying") - (type . "string"))) - (charts_tables - . - #hasheq((format . "boolean") - (type . "boolean"))) - (finding_ref_number - . - #hasheq((format . "character varying") - (maxLength . 100) - (type . "string"))) - (finding_text - . - #hasheq((format . "text") - (type . "string"))) - (fy_end_date - . - #hasheq((format . "date") - (type . "string"))) - (fy_start_date - . - #hasheq((format . "date") - (type . "string"))) - (id - . - #hasheq((description - . - "Note:\nThis is a Primary Key.") - (format . "bigint") - (type . "integer"))) - (report_id - . - #hasheq((format . "character varying") - (maxLength . 40) - (type . "string"))))) - (type . "object"))) - (vw_findings - . - #hasheq((description . "A finding from the audit") - (properties - . - #hasheq((audit_findings_id - . - #hasheq((description - . - "FAC system generated sequence number for finding Census mapping: FINDINGS, ELECAUDITFINDINGSID") - (format . "integer") - (type . "integer"))) - (audit_id - . - #hasheq((description - . - "FAC system generated sequence number used to link to Findings data between CFDA Info and Findings Census mapping: FINDINGS, ELECAUDITSID") - (format . "integer") - (type . "integer"))) - (audit_year - . - #hasheq((description - . - "Audit Year and DBKEY (database key) combined make up the primary key. Census mapping: FINDINGS, AUDITYEAR") - (format . "character varying") - (maxLength . 40) - (type . "string"))) - (dbkey - . - #hasheq((description - . - "Audit Year and DBKEY (database key) combined make up the primary key. Census mapping: FINDINGS, DBKEY") - (format . "character varying") - (maxLength . 40) - (type . "string"))) - (finding_ref_number - . - #hasheq((description - . - "Findings Reference Numbers Data sources: SF-SAC 2013-2015: III/7/d; SF-SAC 2016-2018: III/4/e; SF-SAC 2019-2021: III/4/e; SF-SAC 2022: III/4/e Census mapping: FINDINGS, FINDINGSREFNUMS") - (format . "character varying") - (maxLength . 100) - (type . "string"))) - (findings_text_id - . - #hasheq((format . "bigint[]") - (items - . - #hasheq((type . "integer"))) - (type . "array"))) - (general_id - . - #hasheq((format . "bigint[]") - (items - . - #hasheq((type . "integer"))) - (type . "array"))) - (id - . - #hasheq((description - . - "ID \n\nNote:\nThis is a Primary Key.") - (format . "bigint") - (type . "integer"))) - (is_public - . - #hasheq((description - . - "True for public records, False for non-public records ") - (format . "boolean") - (type . "boolean"))) - (material_weakness - . - #hasheq((description - . - "Material Weakness finding Data sources: SF-SAC 2013-2015: III/7/h; SF-SAC 2016-2018: III/4/i; SF-SAC 2019-2021: III/4/i; SF-SAC 2022: III/4/i Census mapping: FINDINGS, MATERIALWEAKNESS") - (format . "boolean") - (type . "boolean"))) - (modified_opinion - . - #hasheq((description - . - "Modified Opinion finding Data sources: SF-SAC 2013-2015: III/7/f; SF-SAC 2016-2018: III/4/g; SF-SAC 2019-2021: III/4/g; SF-SAC 2022: III/4/g Census mapping: FINDINGS, MODIFIEDOPINION") - (format . "boolean") - (type . "boolean"))) - (other_findings - . - #hasheq((description - . - "Other findings Data sources: SF-SAC 2013-2015: III/7/j; SF-SAC 2016-2018: III/4/k; SF-SAC 2019-2021: III/4/k; SF-SAC 2022: III/4/k Census mapping: FINDINGS, OTHERFINDINGS") - (format . "boolean") - (type . "boolean"))) - (other_non_compliance - . - #hasheq((description - . - "Other Noncompliance finding Data sources: SF-SAC 2013-2015: III/7/g; SF-SAC 2016-2018: III/4/h; SF-SAC 2019-2021: III/4/h; SF-SAC 2022: III/4/h Census mapping: FINDINGS, OTHERNONCOMPLIANCE") - (format . "boolean") - (type . "boolean"))) - (prior_finding_ref_numbers - . - #hasheq((description - . - "Audit finding reference numbers from the immediate prior audit Data sources: SF-SAC 2016-2018: III/4/n; SF-SAC 2019-2021: III/4/n; SF-SAC 2022: III/4/n Census mapping: FINDINGS, PRIORFINDINGREFNUMS") - (format . "character varying") - (maxLength . 100) - (type . "string"))) - (questioned_costs - . - #hasheq((description - . - "Questioned Costs Data sources: SF-SAC 2013-2015: III/7/k; SF-SAC 2016-2018: III/4/l; SF-SAC 2019-2021: III/4/l; SF-SAC 2022: III/4/l Census mapping: FINDINGS, QCOSTS") - (format . "boolean") - (type . "boolean"))) - (repeat_finding - . - #hasheq((description - . - "Indicates whether or not the audit finding was a repeat of an audit finding in the immediate prior audit Data sources: SF-SAC 2016-2018: III/4/m; SF-SAC 2019-2021: III/4/m; SF-SAC 2022: III/4/m Census mapping: FINDINGS, REPEATFINDING") - (format . "boolean") - (type . "boolean"))) - (significant_deficiency - . - #hasheq((description - . - "Significant Deficiency finding Data sources: SF-SAC 1997-2000: II/3; SF-SAC 2001-2003: II/3; SF-SAC 2004-2007: II/3; SF-SAC 2008-2009: II/3; SF-SAC 2010-2012: II/3; SF-SAC 2013-2015: II/3; SF-SAC 2016-2018: III/2/c; SF-SAC 2019-2021: III/2/c; SF-SAC 2022: III/2/c Census mapping: FINDINGS, SIGNIFICANTDEFICIENCY") - (format . "boolean") - (type . "boolean"))) - (type_requirement - . - #hasheq((description - . - "Type Requirement Failure Data sources: SF-SAC 2013-2015: III/7/e; SF-SAC 2016-2018: III/4/f; SF-SAC 2019-2021: III/4/f; SF-SAC 2022: III/4/f Census mapping: FINDINGS, TYPEREQUIREMENT") - (format . "character varying") - (maxLength . 40) - (type . "string"))))) - (type . "object"))) - (vw_findings_text - . - #hasheq((description . "Specific findings details") - (properties - . - #hasheq((audit_year - . - #hasheq((description - . - "Audit Year and DBKEY (database key) combined make up the primary key. Census mapping: FINDINGSTEXT, AUDITYEAR") - (format . "character varying") - (maxLength . 40) - (type . "string"))) - (charts_tables - . - #hasheq((description - . - "Indicates whether or not the text contained charts or tables that could not be entered due to formatting restrictions Census mapping: FINDINGSTEXT, CHARTSTABLES") - (format . "boolean") - (type . "boolean"))) - (dbkey - . - #hasheq((description - . - "Audit Year and DBKEY (database key) combined make up the primary key. Census mapping: FINDINGSTEXT, DBKEY") - (format . "character varying") - (maxLength . 40) - (type . "string"))) - (finding_ref_number - . - #hasheq((description - . - "Audit Finding Reference Number Data sources: SF-SAC 2019-2021: III/5/a; SF-SAC 2022: III/5/a Census mapping: FINDINGSTEXT, FINDINGREFNUMS") - (format . "character varying") - (maxLength . 100) - (type . "string"))) - (general_id - . - #hasheq((format . "bigint[]") - (items - . - #hasheq((type . "integer"))) - (type . "array"))) - (id - . - #hasheq((description - . - "ID \n\nNote:\nThis is a Primary Key.") - (format . "bigint") - (type . "integer"))) - (is_public - . - #hasheq((description - . - "True for public records, False for non-public records ") - (format . "boolean") - (type . "boolean"))) - (sequence_number - . - #hasheq((description - . - "Order that the findings text was reported Census mapping: FINDINGSTEXT, SEQ_NUMBER") - (format . "integer") - (type . "integer"))) - (text - . - #hasheq((description - . - "Content of the finding text Data sources: SF-SAC 2019-2021: III/5/b; SF-SAC 2022: III/5/b Census mapping: FINDINGSTEXT, TEXT") - (format . "text") - (type . "string"))))) - (type . "object"))) - (vw_general - . - #hasheq((properties - . - #hasheq((audit_period_covered - . - #hasheq((format . "character varying") - (maxLength . 40) - (type . "string"))) - (audit_type - . - #hasheq((format . "character varying") - (maxLength . 40) - (type . "string"))) - (audit_year - . - #hasheq((format . "character varying") - (maxLength . 40) - (type . "string"))) - (auditee_addl_duns_list - . - #hasheq((format . "character varying[]") - (items - . - #hasheq((type . "string"))) - (type . "array"))) - (auditee_addl_ein_list - . - #hasheq((format . "integer[]") - (items - . - #hasheq((type . "integer"))) - (type . "array"))) - (auditee_addl_uei_list - . - #hasheq((format . "character varying[]") - (items - . - #hasheq((type . "string"))) - (type . "array"))) - (auditee_address_line_1 - . - #hasheq((format . "character varying") - (maxLength . 45) - (type . "string"))) - (auditee_certified_date - . - #hasheq((format . "date") - (type . "string"))) - (auditee_certify_name - . - #hasheq((format . "character varying") - (maxLength . 50) - (type . "string"))) - (auditee_certify_title - . - #hasheq((format . "character varying") - (maxLength . 50) - (type . "string"))) - (auditee_city - . - #hasheq((format . "character varying") - (maxLength . 30) - (type . "string"))) - (auditee_contact_name - . - #hasheq((format . "character varying") - (maxLength . 50) - (type . "string"))) - (auditee_contact_title - . - #hasheq((format . "character varying") - (maxLength . 40) - (type . "string"))) - (auditee_duns - . - #hasheq((format . "character varying[]") - (items - . - #hasheq((type . "string"))) - (type . "array"))) - (auditee_ein - . - #hasheq((format . "integer") - (type . "integer"))) - (auditee_email - . - #hasheq((format . "character varying") - (maxLength . 60) - (type . "string"))) - (auditee_name - . - #hasheq((format . "character varying") - (maxLength . 70) - (type . "string"))) - (auditee_phone - . - #hasheq((format . "bigint") - (type . "integer"))) - (auditee_state - . - #hasheq((format . "character varying") - (maxLength . 2) - (type . "string"))) - (auditee_uei - . - #hasheq((format . "character varying") - (type . "string"))) - (auditee_zip - . - #hasheq((format . "character varying") - (maxLength . 12) - (type . "string"))) - (auditor_address_line_1 - . - #hasheq((format . "character varying") - (maxLength . 45) - (type . "string"))) - (auditor_certified_date - . - #hasheq((format . "date") - (type . "string"))) - (auditor_city - . - #hasheq((format . "character varying") - (maxLength . 30) - (type . "string"))) - (auditor_contact_name - . - #hasheq((format . "character varying") - (maxLength . 50) - (type . "string"))) - (auditor_contact_title - . - #hasheq((format . "character varying") - (maxLength . 40) - (type . "string"))) - (auditor_country - . - #hasheq((format . "character varying") - (maxLength . 45) - (type . "string"))) - (auditor_ein - . - #hasheq((format . "integer") - (type . "integer"))) - (auditor_email - . - #hasheq((format . "character varying") - (maxLength . 60) - (type . "string"))) - (auditor_firm_name - . - #hasheq((format . "character varying") - (maxLength . 64) - (type . "string"))) - (auditor_foreign_addr - . - #hasheq((format . "character varying") - (maxLength . 200) - (type . "string"))) - (auditor_phone - . - #hasheq((format . "bigint") - (type . "integer"))) - (auditor_state - . - #hasheq((format . "character varying") - (maxLength . 2) - (type . "string"))) - (auditor_zip - . - #hasheq((format . "character varying") - (maxLength . 12) - (type . "string"))) - (cfac_report_id - . - #hasheq((format . "character varying") - (type . "string"))) - (cfac_version - . - #hasheq((format . "character varying") - (type . "string"))) - (cognizant_agency - . - #hasheq((format . "character varying") - (maxLength . 2) - (type . "string"))) - (condition_or_deficiency_major_program - . - #hasheq((format . "boolean") - (type . "boolean"))) - (create_date - . - #hasheq((format - . - "timestamp with time zone") - (type . "string"))) - (current_or_former_findings - . - #hasheq((format . "boolean") - (type . "boolean"))) - (data_source - . - #hasheq((format . "character varying") - (maxLength . 25) - (type . "string"))) - (date_published - . - #hasheq((format . "date") - (type . "string"))) - (date_received - . - #hasheq((format . "date") - (type . "string"))) - (dbkey - . - #hasheq((format . "character varying") - (maxLength . 40) - (type . "string"))) - (dollar_threshold - . - #hasheq((format . "double precision") - (type . "number"))) - (ein_subcode - . - #hasheq((format . "integer") - (type . "integer"))) - (entity_type - . - #hasheq((format . "character varying") - (maxLength . 50) - (type . "string"))) - (fac_accepted_date - . - #hasheq((format . "date") - (type . "string"))) - (federal_agency_prefix - . - #hasheq((format . "character varying") - (maxLength . 2) - (type . "string"))) - (federal_award_extension - . - #hasheq((format . "character varying") - (maxLength . 3) - (type . "string"))) - (form_date_received - . - #hasheq((format . "date") - (type . "string"))) - (fy_end_date - . - #hasheq((format . "date") - (type . "string"))) - (fy_start_date - . - #hasheq((format . "date") - (type . "string"))) - (hist_auditee_address_line_2 - . - #hasheq((format . "character varying") - (maxLength . 45) - (type . "string"))) - (hist_auditee_fax - . - #hasheq((format . "bigint") - (type . "integer"))) - (hist_auditor_address_line_2 - . - #hasheq((format . "character varying") - (maxLength . 45) - (type . "string"))) - (hist_auditor_fax - . - #hasheq((format . "bigint") - (type . "integer"))) - (hist_completed_date - . - #hasheq((format . "date") - (type . "string"))) - (hist_component_date_received - . - #hasheq((format . "date") - (type . "string"))) - (hist_previous_completed_on - . - #hasheq((format . "date") - (type . "string"))) - (hist_previous_date_published - . - #hasheq((format . "date") - (type . "string"))) - (hist_reportable_condition - . - #hasheq((format . "boolean") - (type . "boolean"))) - (hist_type_of_entity - . - #hasheq((format . "character varying") - (maxLength . 40) - (type . "string"))) - (id - . - #hasheq((description - . - "Note:\nThis is a Primary Key.") - (format . "bigint") - (type . "integer"))) - (initial_date_received - . - #hasheq((format . "date") - (type . "string"))) - (is_duplicate_reports - . - #hasheq((format . "boolean") - (type . "boolean"))) - (is_going_concern - . - #hasheq((format . "boolean") - (type . "boolean"))) - (is_low_risk - . - #hasheq((format . "boolean") - (type . "boolean"))) - (is_material_noncompliance - . - #hasheq((format . "boolean") - (type . "boolean"))) - (is_material_weakness - . - #hasheq((format . "boolean") - (type . "boolean"))) - (is_public - . - #hasheq((format . "boolean") - (type . "boolean"))) - (is_significant_deficiency - . - #hasheq((format . "boolean") - (type . "boolean"))) - (is_special_framework_required - . - #hasheq((format . "boolean") - (type . "boolean"))) - (material_weakness - . - #hasheq((format . "boolean") - (type . "boolean"))) - (material_weakness_major_program - . - #hasheq((format . "boolean") - (type . "boolean"))) - (modified_date - . - #hasheq((format - . - "timestamp with time zone") - (type . "string"))) - (multiple_auditors - . - #hasheq((format . "boolean") - (type . "boolean"))) - (multiple_duns - . - #hasheq((format . "boolean") - (type . "boolean"))) - (multiple_ein - . - #hasheq((format . "boolean") - (type . "boolean"))) - (multiple_uei - . - #hasheq((format . "boolean") - (type . "boolean"))) - (number_months - . - #hasheq((format . "integer") - (type . "integer"))) - (oversight_agency - . - #hasheq((format . "integer") - (type . "integer"))) - (pdf_url - . - #hasheq((format . "character varying[]") - (items - . - #hasheq((type . "string"))) - (type . "array"))) - (prior_year_schedule - . - #hasheq((format . "boolean") - (type . "boolean"))) - (questioned_costs - . - #hasheq((format . "boolean") - (type . "boolean"))) - (report_id - . - #hasheq((format . "character varying") - (maxLength . 40) - (type . "string"))) - (report_required - . - #hasheq((format . "boolean") - (type . "boolean"))) - (special_framework - . - #hasheq((format . "character varying") - (maxLength . 40) - (type . "string"))) - (suppression_code - . - #hasheq((format . "character varying") - (type . "string"))) - (total_fed_expenditures - . - #hasheq((format . "bigint") - (type . "integer"))) - (type_audit_code - . - #hasheq((format . "character varying") - (type . "string"))) - (type_report_financial_statements - . - #hasheq((format . "character varying") - (maxLength . 40) - (type . "string"))) - (type_report_major_program - . - #hasheq((format . "character varying") - (maxLength . 40) - (type . "string"))) - (type_report_special_purpose_framework - . - #hasheq((format . "character varying") - (maxLength . 40) - (type . "string"))))) - (type . "object"))) - (vw_note - . - #hasheq((properties - . - #hasheq((audit_year - . - #hasheq((format . "character varying") - (maxLength . 40) - (type . "string"))) - (auditee_ein - . - #hasheq((format . "integer") - (type . "integer"))) - (auditee_uei - . - #hasheq((format . "character varying") - (type . "string"))) - (content - . - #hasheq((format . "text") - (type . "string"))) - (fy_end_date - . - #hasheq((format . "date") - (type . "string"))) - (fy_start_date - . - #hasheq((format . "date") - (type . "string"))) - (id - . - #hasheq((description - . - "Note:\nThis is a Primary Key.") - (format . "bigint") - (type . "integer"))) - (note_index - . - #hasheq((format . "integer") - (type . "integer"))) - (note_seq_number - . - #hasheq((format . "integer") - (type . "integer"))) - (note_title - . - #hasheq((format . "character varying") - (maxLength . 75) - (type . "string"))) - (report_id - . - #hasheq((format . "character varying") - (maxLength . 40) - (type . "string"))) - (type_id - . - #hasheq((format . "character varying") - (maxLength . 1) - (type . "string"))))) - (type . "object"))) - (vw_passthrough - . - #hasheq((description - . - "The pass-through entity information, when it is not a direct federal award") - (properties - . - #hasheq((audit_id - . - #hasheq((format . "integer") - (type . "integer"))) - (audit_year - . - #hasheq((format . "character varying") - (maxLength . 40) - (type . "string"))) - (dbkey - . - #hasheq((format . "character varying") - (maxLength . 40) - (type . "string"))) - (general_id - . - #hasheq((format . "bigint[]") - (items - . - #hasheq((type . "integer"))) - (type . "array"))) - (id - . - #hasheq((description - . - "Note:\nThis is a Primary Key.") - (format . "bigint") - (type . "integer"))) - (is_public - . - #hasheq((format . "boolean") - (type . "boolean"))) - (passthrough_id - . - #hasheq((format . "character varying") - (maxLength . 70) - (type . "string"))) - (passthrough_name - . - #hasheq((format . "character varying") - (maxLength . 150) - (type . "string"))))) - (type . "object"))) - (vw_revision - . - #hasheq((description - . - "Documents what was revised on the associated form from the previous version") - (properties - . - #hasheq((audit_info - . - #hasheq((description - . - "Indicates what items on the Audit Info page were edited during the revision Census mapping: REVISIONS, AUDITINFO") - (format . "character varying") - (maxLength . 200) - (type . "string"))) - (audit_info_explain - . - #hasheq((description - . - "Explanation of what items on the Audit Info page were edited during the revision Census mapping: REVISIONS, AUDITINFO_EXPLAIN") - (format . "text") - (type . "string"))) - (audit_year - . - #hasheq((description - . - "Audit Year and DBKEY (database key) combined make up the primary key. Census mapping: REVISIONS, AUDITYEAR") - (format . "character varying") - (maxLength . 40) - (type . "string"))) - (cap - . - #hasheq((description - . - "Indicates what items on the CAP Text page were edited during the revision Census mapping: REVISIONS, CAP") - (format . "character varying") - (maxLength . 6) - (type . "string"))) - (cap_explain - . - #hasheq((description - . - "Explanation of what items on the CAP Text page were edited during the revision Census mapping: REVISIONS, CAP_EXPLAIN") - (format . "text") - (type . "string"))) - (dbkey - . - #hasheq((description - . - "Audit Year and DBKEY (database key) combined make up the primary key. Census mapping: REVISIONS, DBKEY") - (format . "character varying") - (maxLength . 40) - (type . "string"))) - (federal_awards - . - #hasheq((description - . - "Indicates what items on the Federal Awards page were edited during the revision Census mapping: REVISIONS, FEDERALAWARDS") - (format . "character varying") - (maxLength . 140) - (type . "string"))) - (federal_awards_explain - . - #hasheq((description - . - "Explanation of what items on the Federal Awards page were edited during the revision Census mapping: REVISIONS, FEDERALAWARDS_EXPLAIN") - (format . "text") - (type . "string"))) - (findings - . - #hasheq((description - . - "Indicates what items on the Findings page were edited during the revision Census mapping: REVISIONS, FINDINGS") - (format . "character varying") - (maxLength . 110) - (type . "string"))) - (findings_explain - . - #hasheq((description - . - "Explanation of what items on the Findings page were edited during the revision Census mapping: REVISIONS, FINDINGS_EXPLAIN") - (format . "text") - (type . "string"))) - (findings_text - . - #hasheq((description - . - "Indicates what items on the Text of the Audit Findings page were edited during the revision Census mapping: REVISIONS, FINDINGSTEXT") - (format . "character varying") - (maxLength . 6) - (type . "string"))) - (findings_text_explain - . - #hasheq((description - . - "Explanation of what items on the Text of the Audit Findings page were edited during the revision Census mapping: REVISIONS, FINDINGSTEXT_EXPLAIN") - (format . "text") - (type . "string"))) - (general_id - . - #hasheq((format . "bigint[]") - (items - . - #hasheq((type . "integer"))) - (type . "array"))) - (general_info - . - #hasheq((description - . - "Indicates what items on the General Info page were edited during the revision Census mapping: REVISIONS, GENINFO") - (format . "character varying") - (maxLength . 75) - (type . "string"))) - (general_info_explain - . - #hasheq((description - . - "Explanation of what items on the General Info page were edited during the revision Census mapping: REVISIONS, GENINFO_EXPLAIN") - (format . "text") - (type . "string"))) - (id - . - #hasheq((description - . - "ID \n\nNote:\nThis is a Primary Key.") - (format . "bigint") - (type . "integer"))) - (is_public - . - #hasheq((description - . - "True for public records, False for non-public records ") - (format . "boolean") - (type . "boolean"))) - (notes_to_sefa - . - #hasheq((description - . - "Indicates what items on the Notes to Schedule of Expenditures of Federal Awards (SEFA) page were edited during the revision Census mapping: REVISIONS, NOTESTOSEFA") - (format . "character varying") - (maxLength . 50) - (type . "string"))) - (notes_to_sefa_explain - . - #hasheq((description - . - "Explanation of what items on the Notes to Schedule of Expenditures of Federal Awards (SEFA) page were edited during the revision Census mapping: REVISIONS, NOTESTOSEFA_EXPLAIN") - (format . "text") - (type . "string"))) - (other - . - #hasheq((description - . - "Indicates what other miscellaneous items were edited during the revision Census mapping: REVISIONS, OTHER") - (format . "character varying") - (maxLength . 65) - (type . "string"))) - (other_explain - . - #hasheq((description - . - "Explanation of what other miscellaneous items were edited during the revision Census mapping: REVISIONS, OTHER_EXPLAIN") - (format . "text") - (type . "string"))) - (revision_id - . - #hasheq((description - . - "Internal Unique Identifier for the record Census mapping: REVISIONS, ELECRPTREVISIONID") - (format . "integer") - (type . "integer"))))) - (type . "object"))))) - (externalDocs - . - #hasheq((description . "PostgREST Documentation") - (url . "https://postgrest.org/en/v11.0/api.html"))) - (host . "0.0.0.0:3000") - (info - . - #hasheq((description - . - "This is a dynamic API generated by PostgREST") - (title . "PostgREST API") - (version . "11.0.1"))) - (parameters - . - #hasheq((body.vw_auditee - . - #hasheq((description . "vw_auditee") - (in . "body") - (name . "vw_auditee") - (required . #f) - (schema - . - #hasheq(($ref . "#/definitions/vw_auditee"))))) - (body.vw_auditor - . - #hasheq((description . "vw_auditor") - (in . "body") - (name . "vw_auditor") - (required . #f) - (schema - . - #hasheq(($ref . "#/definitions/vw_auditor"))))) - (body.vw_cap_text - . - #hasheq((description . "vw_cap_text") - (in . "body") - (name . "vw_cap_text") - (required . #f) - (schema - . - #hasheq(($ref . "#/definitions/vw_cap_text"))))) - (body.vw_federal_award - . - #hasheq((description . "vw_federal_award") - (in . "body") - (name . "vw_federal_award") - (required . #f) - (schema - . - #hasheq(($ref - . - "#/definitions/vw_federal_award"))))) - (body.vw_finding - . - #hasheq((description . "vw_finding") - (in . "body") - (name . "vw_finding") - (required . #f) - (schema - . - #hasheq(($ref . "#/definitions/vw_finding"))))) - (body.vw_finding_text - . - #hasheq((description . "vw_finding_text") - (in . "body") - (name . "vw_finding_text") - (required . #f) - (schema - . - #hasheq(($ref - . - "#/definitions/vw_finding_text"))))) - (body.vw_findings - . - #hasheq((description . "vw_findings") - (in . "body") - (name . "vw_findings") - (required . #f) - (schema - . - #hasheq(($ref . "#/definitions/vw_findings"))))) - (body.vw_findings_text - . - #hasheq((description . "vw_findings_text") - (in . "body") - (name . "vw_findings_text") - (required . #f) - (schema - . - #hasheq(($ref - . - "#/definitions/vw_findings_text"))))) - (body.vw_general - . - #hasheq((description . "vw_general") - (in . "body") - (name . "vw_general") - (required . #f) - (schema - . - #hasheq(($ref . "#/definitions/vw_general"))))) - (body.vw_note - . - #hasheq((description . "vw_note") - (in . "body") - (name . "vw_note") - (required . #f) - (schema - . - #hasheq(($ref . "#/definitions/vw_note"))))) - (body.vw_passthrough - . - #hasheq((description . "vw_passthrough") - (in . "body") - (name . "vw_passthrough") - (required . #f) - (schema - . - #hasheq(($ref . "#/definitions/vw_passthrough"))))) - (body.vw_revision - . - #hasheq((description . "vw_revision") - (in . "body") - (name . "vw_revision") - (required . #f) - (schema - . - #hasheq(($ref . "#/definitions/vw_revision"))))) - (limit - . - #hasheq((description . "Limiting and Pagination") - (in . "query") - (name . "limit") - (required . #f) - (type . "string"))) - (offset - . - #hasheq((description . "Limiting and Pagination") - (in . "query") - (name . "offset") - (required . #f) - (type . "string"))) - (on_conflict - . - #hasheq((description . "On Conflict") - (in . "query") - (name . "on_conflict") - (required . #f) - (type . "string"))) - (order - . - #hasheq((description . "Ordering") - (in . "query") - (name . "order") - (required . #f) - (type . "string"))) - (preferCount - . - #hasheq((description . "Preference") - (enum . ("count=none")) - (in . "header") - (name . "Prefer") - (required . #f) - (type . "string"))) - (preferParams - . - #hasheq((description . "Preference") - (enum . ("params=single-object")) - (in . "header") - (name . "Prefer") - (required . #f) - (type . "string"))) - (preferPost - . - #hasheq((description . "Preference") - (enum - . - ("return=representation" - "return=minimal" - "return=none" - "resolution=ignore-duplicates" - "resolution=merge-duplicates")) - (in . "header") - (name . "Prefer") - (required . #f) - (type . "string"))) - (preferReturn - . - #hasheq((description . "Preference") - (enum - . - ("return=representation" - "return=minimal" - "return=none")) - (in . "header") - (name . "Prefer") - (required . #f) - (type . "string"))) - (range - . - #hasheq((description . "Limiting and Pagination") - (in . "header") - (name . "Range") - (required . #f) - (type . "string"))) - (rangeUnit - . - #hasheq((default . "items") - (description . "Limiting and Pagination") - (in . "header") - (name . "Range-Unit") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditee.auditee_certify_name - . - #hasheq((description - . - "Name of Auditee Certifying Official Data sources: SF-SAC 1997-2000: I/6/g; SF-SAC 2001-2003: I/6/g; SF-SAC 2004-2007: I/6/g; SF-SAC 2008-2009: I/5/g; SF-SAC 2010-2012: I/5/g; SF-SAC 2013-2015: certifications; SF-SAC 2016-2018: certifications; SF-SAC 2019-2021: certifications; SF-SAC 2022: certifications Census mapping: GENERAL, AUDITEECERTIFYNAME") - (format . "character varying") - (in . "query") - (name . "auditee_certify_name") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditee.auditee_certify_title - . - #hasheq((description - . - "Title of Auditee Certifying Official Data sources: SF-SAC 1997-2000: I/6/g; SF-SAC 2001-2003: I/6/g; SF-SAC 2004-2007: I/6/g; SF-SAC 2008-2009: I/5/g; SF-SAC 2010-2012: I/5/g; SF-SAC 2013-2015: certifications; SF-SAC 2016-2018: certifications; SF-SAC 2019-2021: certifications; SF-SAC 2022: certifications Census mapping: GENERAL, AUDITEECERTIFYTITLE") - (format . "character varying") - (in . "query") - (name . "auditee_certify_title") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditee.auditee_city - . - #hasheq((description - . - "Auditee City Data sources: SF-SAC 1997-2000: I/6/b; SF-SAC 2001-2003: I/6/b; SF-SAC 2004-2007: I/6/b; SF-SAC 2008-2009: I/5/b; SF-SAC 2010-2012: I/5/b; SF-SAC 2013-2015: I/5/b; SF-SAC 2016-2018: I/5/b; SF-SAC 2019-2021: I/5/b; SF-SAC 2022: I/5/b Census mapping: GENERAL, CITY") - (format . "character varying") - (in . "query") - (name . "auditee_city") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditee.auditee_contact - . - #hasheq((description - . - "Name of Auditee Contact Data sources: SF-SAC 1997-2000: I/6/c; SF-SAC 2001-2003: I/6/c; SF-SAC 2004-2007: I/6/c; SF-SAC 2008-2009: I/5/c; SF-SAC 2010-2012: I/5/c; SF-SAC 2013-2015: I/5/c; SF-SAC 2016-2018: I/5/c; SF-SAC 2019-2021: I/5/c; SF-SAC 2022: I/5/c Census mapping: GENERAL, AUDITEECONTACT") - (format . "character varying") - (in . "query") - (name . "auditee_contact") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditee.auditee_email - . - #hasheq((description - . - "Auditee Email address Data sources: SF-SAC 1997-2000: I/6/f; SF-SAC 2001-2003: I/6/f; SF-SAC 2004-2007: I/6/f; SF-SAC 2008-2009: I/5/f; SF-SAC 2010-2012: I/5/f; SF-SAC 2013-2015: I/5/f; SF-SAC 2016-2018: I/5/e; SF-SAC 2019-2021: I/5/e; SF-SAC 2022: I/5/e Census mapping: GENERAL, AUDITEEEMAIL") - (format . "character varying") - (in . "query") - (name . "auditee_email") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditee.auditee_fax - . - #hasheq((description - . - "Auditee Fax Number (optional) Data sources: SF-SAC 1997-2000: I/6/e; SF-SAC 2001-2003: I/6/e; SF-SAC 2004-2007: I/6/e; SF-SAC 2008-2009: I/5/e; SF-SAC 2010-2012: I/5/e; SF-SAC 2013-2015: I/5/e Census mapping: GENERAL, AUDITEEFAX") - (format . "bigint") - (in . "query") - (name . "auditee_fax") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditee.auditee_name - . - #hasheq((description - . - "Name of the Auditee Data sources: SF-SAC 1997-2000: I/6/a; SF-SAC 2001-2003: I/6/a; SF-SAC 2004-2007: I/6/a; SF-SAC 2008-2009: I/5/a; SF-SAC 2010-2012: I/5/a; SF-SAC 2013-2015: I/5/a; SF-SAC 2016-2018: I/5/a; SF-SAC 2019-2021: I/5/a; SF-SAC 2022: I/5/a Census mapping: GENERAL, AUDITEENAME") - (format . "character varying") - (in . "query") - (name . "auditee_name") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditee.auditee_name_title - . - #hasheq((description - . - "Title of Auditee Certifying Official Data sources: SF-SAC 1997-2000: I/6/g; SF-SAC 2001-2003: I/6/g; SF-SAC 2004-2007: I/6/g; SF-SAC 2008-2009: I/5/g; SF-SAC 2010-2012: I/5/g; SF-SAC 2013-2015: certifications; SF-SAC 2016-2018: certifications; SF-SAC 2019-2021: certifications; SF-SAC 2022: certifications Census mapping: GENERAL, AUDITEENAMETITLE") - (format . "character varying") - (in . "query") - (name . "auditee_name_title") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditee.auditee_phone - . - #hasheq((description - . - "Auditee Phone Number Data sources: SF-SAC 1997-2000: I/6/d; SF-SAC 2001-2003: I/6/d; SF-SAC 2004-2007: I/6/d; SF-SAC 2008-2009: I/5/d; SF-SAC 2010-2012: I/5/d; SF-SAC 2013-2015: I/5/d; SF-SAC 2016-2018: I/5/d; SF-SAC 2019-2021: I/5/d; SF-SAC 2022: I/5/d Census mapping: GENERAL, AUDITEEPHONE") - (format . "bigint") - (in . "query") - (name . "auditee_phone") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditee.auditee_state - . - #hasheq((description - . - "Auditee State Data sources: SF-SAC 1997-2000: I/6/b; SF-SAC 2001-2003: I/6/b; SF-SAC 2004-2007: I/6/b; SF-SAC 2008-2009: I/5/b; SF-SAC 2010-2012: I/5/b; SF-SAC 2013-2015: I/5/b; SF-SAC 2016-2018: I/5/b; SF-SAC 2019-2021: I/5/b; SF-SAC 2022: I/5/b Census mapping: GENERAL, STATE") - (format . "character varying") - (in . "query") - (name . "auditee_state") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditee.auditee_street1 - . - #hasheq((description - . - "Auditee Street Address Data sources: SF-SAC 1997-2000: I/6/b; SF-SAC 2001-2003: I/6/b; SF-SAC 2004-2007: I/6/b; SF-SAC 2008-2009: I/5/b; SF-SAC 2010-2012: I/5/b; SF-SAC 2013-2015: I/5/b; SF-SAC 2016-2018: I/5/b; SF-SAC 2019-2021: I/5/b; SF-SAC 2022: I/5/b Census mapping: GENERAL, STREET1") - (format . "character varying") - (in . "query") - (name . "auditee_street1") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditee.auditee_street2 - . - #hasheq((description - . - "Auditee Street Address Data sources: SF-SAC 1997-2000: I/6/b; SF-SAC 2001-2003: I/6/b; SF-SAC 2004-2007: I/6/b; SF-SAC 2008-2009: I/5/b; SF-SAC 2010-2012: I/5/b; SF-SAC 2013-2015: I/5/b; SF-SAC 2016-2018: I/5/b; SF-SAC 2019-2021: I/5/b; SF-SAC 2022: I/5/b Census mapping: GENERAL, STREET2") - (format . "character varying") - (in . "query") - (name . "auditee_street2") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditee.auditee_title - . - #hasheq((description - . - "Title of Auditee Contact Data sources: SF-SAC 1997-2000: I/6/c; SF-SAC 2001-2003: I/6/c; SF-SAC 2004-2007: I/6/c; SF-SAC 2008-2009: I/5/c; SF-SAC 2010-2012: I/5/c; SF-SAC 2013-2015: I/5/c; SF-SAC 2016-2018: I/5/c; SF-SAC 2019-2021: I/5/c; SF-SAC 2022: I/5/c Census mapping: GENERAL, AUDITEETITLE") - (format . "character varying") - (in . "query") - (name . "auditee_title") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditee.auditee_zip_code - . - #hasheq((description - . - "Auditee Zip Code Data sources: SF-SAC 1997-2000: I/6/b; SF-SAC 2001-2003: I/6/b; SF-SAC 2004-2007: I/6/b; SF-SAC 2008-2009: I/5/b; SF-SAC 2010-2012: I/5/b; SF-SAC 2013-2015: I/5/b; SF-SAC 2016-2018: I/5/b; SF-SAC 2019-2021: I/5/b; SF-SAC 2022: I/5/b Census mapping: GENERAL, ZIPCODE") - (format . "character varying") - (in . "query") - (name . "auditee_zip_code") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditee.dbkey - . - #hasheq((format . "character varying[]") - (in . "query") - (name . "dbkey") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditee.duns_list - . - #hasheq((description . "duns list ") - (format . "integer[]") - (in . "query") - (name . "duns_list") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditee.ein_list - . - #hasheq((description . "ein list ") - (format . "integer[]") - (in . "query") - (name . "ein_list") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditee.ein_subcode - . - #hasheq((description - . - "Subcode assigned to the EIN. Census mapping: GENERAL, EINSUBCODE") - (format . "integer") - (in . "query") - (name . "ein_subcode") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditee.general_id - . - #hasheq((format . "bigint[]") - (in . "query") - (name . "general_id") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditee.id - . - #hasheq((description . "ID ") - (format . "bigint") - (in . "query") - (name . "id") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditee.is_public - . - #hasheq((description - . - "True if appears in a public record ") - (format . "boolean") - (in . "query") - (name . "is_public") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditee.uei_list - . - #hasheq((description . "uei list ") - (format . "character varying[]") - (in . "query") - (name . "uei_list") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditor.cpa_city - . - #hasheq((description - . - "CPA City Data sources: SF-SAC 1997-2000: I/7/b; SF-SAC 2001-2003: I/7/b; SF-SAC 2004-2007: I/7/b; SF-SAC 2008-2009: I/6/b; SF-SAC 2010-2012: I/6/b; SF-SAC 2013-2015: I/6/c; SF-SAC 2016-2018: I/6/c; SF-SAC 2019-2021: I/6/c; SF-SAC 2022: I/6/c Census mapping: GENERAL, CPACITY (AND) Data sources: SF-SAC 2008-2009: I/8/b; SF-SAC 2010-2012: I/8/b; SF-SAC 2013-2015: I/8/d; SF-SAC 2016-2018: I/8/d; SF-SAC 2019-2021: I/6/h/iv; SF-SAC 2022: I/6/h/iv Census mapping: MULTIPLE CPAS INFO, CPACITY") - (format . "character varying") - (in . "query") - (name . "cpa_city") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditor.cpa_contact - . - #hasheq((description - . - "Name of CPA Contact Data sources: SF-SAC 1997-2000: I/7/c; SF-SAC 2001-2003: I/7/c; SF-SAC 2004-2007: I/7/c; SF-SAC 2008-2009: I/6/c; SF-SAC 2010-2012: I/6/c; SF-SAC 2013-2015: I/6/d; SF-SAC 2016-2018: I/6/d; SF-SAC 2019-2021: I/6/d; SF-SAC 2022: I/6/d Census mapping: GENERAL, CPACONTACT (AND) Data sources: SF-SAC 2008-2009: I/8/c; SF-SAC 2010-2012: I/8/c; SF-SAC 2013-2015: I/8/g; SF-SAC 2016-2018: I/8/g; SF-SAC 2019-2021: I/6/h/vii; SF-SAC 2022: I/6/h/vii Census mapping: MULTIPLE CPAS INFO, CPACONTACT") - (format . "character varying") - (in . "query") - (name . "cpa_contact") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditor.cpa_country - . - #hasheq((description - . - "CPA Country Data sources: SF-SAC 2019-2021: I/6/c; SF-SAC 2022: I/6/c Census mapping: GENERAL, CPACOUNTRY") - (format . "character varying") - (in . "query") - (name . "cpa_country") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditor.cpa_ein - . - #hasheq((description - . - "CPA Firm EIN (only available for audit years 2013 and beyond) Data sources: SF-SAC 2013-2015: I/6/b; SF-SAC 2016-2018: I/6/b; SF-SAC 2019-2021: I/6/b; SF-SAC 2022: I/6/b Census mapping: GENERAL, AUDITOR_EIN (AND) Data sources: SF-SAC 2013-2015: I/8/b; SF-SAC 2016-2018: I/8/b; SF-SAC 2019-2021: I/6/h/ii; SF-SAC 2022: I/6/h/ii Census mapping: MULTIPLE CPAS INFO, CPAEIN") - (format . "integer") - (in . "query") - (name . "cpa_ein") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditor.cpa_email - . - #hasheq((description - . - "CPA mail address (optional) Data sources: SF-SAC 1997-2000: I/7/f; SF-SAC 2001-2003: I/7/f; SF-SAC 2004-2007: I/7/f; SF-SAC 2008-2009: I/6/f; SF-SAC 2010-2012: I/6/f; SF-SAC 2013-2015: I/6/g; SF-SAC 2016-2018: I/6/f; SF-SAC 2019-2021: I/6/f; SF-SAC 2022: I/6/f Census mapping: GENERAL, CPAEMAIL (AND) Data sources: SF-SAC 2008-2009: I/8/f; SF-SAC 2010-2012: I/8/f; SF-SAC 2013-2015: I/8/k; SF-SAC 2016-2018: I/8/k; SF-SAC 2019-2021: I/6/h/x; SF-SAC 2022: I/6/h/x Census mapping: MULTIPLE CPAS INFO, CPAEMAIL") - (format . "character varying") - (in . "query") - (name . "cpa_email") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditor.cpa_fax - . - #hasheq((description - . - "CPA fax number (optional) Data sources: SF-SAC 1997-2000: I/7/e; SF-SAC 2001-2003: I/7/e; SF-SAC 2004-2007: I/7/e; SF-SAC 2008-2009: I/6/e; SF-SAC 2010-2012: I/6/e; SF-SAC 2013-2015: I/6/f Census mapping: GENERAL, CPAFAX (AND) Data sources: SF-SAC 2008-2009: I/8/e; SF-SAC 2010-2012: I/8/e; SF-SAC 2013-2015: I/8/j; SF-SAC 2016-2018: I/8/j Census mapping: MULTIPLE CPAS INFO, CPAFAX") - (format . "bigint") - (in . "query") - (name . "cpa_fax") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditor.cpa_firm_name - . - #hasheq((description - . - "CPA Firm Name Data sources: SF-SAC 1997-2000: I/7/a; SF-SAC 2001-2003: I/7/a; SF-SAC 2004-2007: I/7/a; SF-SAC 2008-2009: I/6/a; SF-SAC 2010-2012: I/6/a; SF-SAC 2013-2015: I/6/a; SF-SAC 2016-2018: I/6/a; SF-SAC 2019-2021: I/6/a; SF-SAC 2022: I/6/a Census mapping: GENERAL, CPAFIRMNAME (AND) Data sources: SF-SAC 2008-2009: I/8/a; SF-SAC 2010-2012: I/8/a; SF-SAC 2013-2015: I/8/a; SF-SAC 2016-2018: I/8/a; SF-SAC 2019-2021: I/6/h/i; SF-SAC 2022: I/6/h/i Census mapping: MULTIPLE CPAS INFO, CPAFIRMNAME") - (format . "character varying") - (in . "query") - (name . "cpa_firm_name") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditor.cpa_foreign - . - #hasheq((description - . - "CPA Address - if international Data sources: SF-SAC 2019-2021: I/6/c; SF-SAC 2022: I/6/c Census mapping: GENERAL, CPAFOREIGN") - (format . "character varying") - (in . "query") - (name . "cpa_foreign") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditor.cpa_phone - . - #hasheq((description - . - "CPA phone number Data sources: SF-SAC 1997-2000: I/7/d; SF-SAC 2001-2003: I/7/d; SF-SAC 2004-2007: I/7/d; SF-SAC 2008-2009: I/6/d; SF-SAC 2010-2012: I/6/d; SF-SAC 2013-2015: I/6/e; SF-SAC 2016-2018: I/6/e; SF-SAC 2019-2021: I/6/e; SF-SAC 2022: I/6/e Census mapping: GENERAL, CPAPHONE (AND) Data sources: SF-SAC 2008-2009: I/8/d; SF-SAC 2010-2012: I/8/d; SF-SAC 2013-2015: I/8/i; SF-SAC 2016-2018: I/8/i; SF-SAC 2019-2021: I/6/h/ix; SF-SAC 2022: I/6/h/ix Census mapping: MULTIPLE CPAS INFO, CPAPHONE") - (format . "bigint") - (in . "query") - (name . "cpa_phone") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditor.cpa_state - . - #hasheq((description - . - "CPA State Data sources: SF-SAC 1997-2000: I/7/b; SF-SAC 2001-2003: I/7/b; SF-SAC 2004-2007: I/7/b; SF-SAC 2008-2009: I/6/b; SF-SAC 2010-2012: I/6/b; SF-SAC 2013-2015: I/6/c; SF-SAC 2016-2018: I/6/c; SF-SAC 2019-2021: I/6/c; SF-SAC 2022: I/6/c Census mapping: GENERAL, CPASTATE (AND) Data sources: SF-SAC 2008-2009: I/8/b; SF-SAC 2010-2012: I/8/b; SF-SAC 2013-2015: I/8/e; SF-SAC 2016-2018: I/8/e; SF-SAC 2019-2021: I/6/h/v; SF-SAC 2022: I/6/h/v Census mapping: MULTIPLE CPAS INFO, CPASTATE") - (format . "character varying") - (in . "query") - (name . "cpa_state") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditor.cpa_street1 - . - #hasheq((description - . - "CPA Street Address Data sources: SF-SAC 1997-2000: I/7/b; SF-SAC 2001-2003: I/7/b; SF-SAC 2004-2007: I/7/b; SF-SAC 2008-2009: I/6/b; SF-SAC 2010-2012: I/6/b; SF-SAC 2013-2015: I/6/c; SF-SAC 2016-2018: I/6/c; SF-SAC 2019-2021: I/6/c; SF-SAC 2022: I/6/c Census mapping: GENERAL, CPASTREET1 (AND) Data sources: SF-SAC 2008-2009: I/8/b; SF-SAC 2010-2012: I/8/b; SF-SAC 2013-2015: I/8/c; SF-SAC 2016-2018: I/8/c; SF-SAC 2019-2021: I/6/h/iii; SF-SAC 2022: I/6/h/iii Census mapping: MULTIPLE CPAS INFO, CPASTREET1") - (format . "character varying") - (in . "query") - (name . "cpa_street1") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditor.cpa_street2 - . - #hasheq((description - . - "CPA Street Address, line 2 Data sources: SF-SAC 1997-2000: I/7/b; SF-SAC 2001-2003: I/7/b; SF-SAC 2004-2007: I/7/b; SF-SAC 2008-2009: I/6/b; SF-SAC 2010-2012: I/6/b; SF-SAC 2013-2015: I/6/c; SF-SAC 2016-2018: I/6/c; SF-SAC 2019-2021: I/6/c; SF-SAC 2022: I/6/c Census mapping: GENERAL, CPASTREET2") - (format . "character varying") - (in . "query") - (name . "cpa_street2") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditor.cpa_title - . - #hasheq((description - . - "Title of CPA Contact Data sources: SF-SAC 1997-2000: I/7/c; SF-SAC 2001-2003: I/7/c; SF-SAC 2004-2007: I/7/c; SF-SAC 2008-2009: I/6/c; SF-SAC 2010-2012: I/6/c; SF-SAC 2013-2015: I/6/d; SF-SAC 2016-2018: I/6/d; SF-SAC 2019-2021: I/6/d; SF-SAC 2022: I/6/d Census mapping: GENERAL, CPATITLE (AND) Data sources: SF-SAC 2008-2009: I/8/c; SF-SAC 2010-2012: I/8/c; SF-SAC 2013-2015: I/8/h; SF-SAC 2016-2018: I/8/h; SF-SAC 2019-2021: I/6/h/viii; SF-SAC 2022: I/6/h/viii Census mapping: MULTIPLE CPAS INFO, CPATITLE") - (format . "character varying") - (in . "query") - (name . "cpa_title") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditor.cpa_zip_code - . - #hasheq((description - . - "CPA Zip Code Data sources: SF-SAC 1997-2000: I/7/b; SF-SAC 2001-2003: I/7/b; SF-SAC 2004-2007: I/7/b; SF-SAC 2008-2009: I/6/b; SF-SAC 2010-2012: I/6/b; SF-SAC 2013-2015: I/6/c; SF-SAC 2016-2018: I/6/c; SF-SAC 2019-2021: I/6/c; SF-SAC 2022: I/6/c Census mapping: GENERAL, CPAZIPCODE (AND) Data sources: SF-SAC 2008-2009: I/8/b; SF-SAC 2010-2012: I/8/b; SF-SAC 2013-2015: I/8/f; SF-SAC 2016-2018: I/8/f; SF-SAC 2019-2021: I/6/h/vi; SF-SAC 2022: I/6/h/vi Census mapping: MULTIPLE CPAS INFO, CPAZIPCODE") - (format . "character varying") - (in . "query") - (name . "cpa_zip_code") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditor.general_id - . - #hasheq((format . "bigint[]") - (in . "query") - (name . "general_id") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditor.id - . - #hasheq((description . "ID ") - (format . "bigint") - (in . "query") - (name . "id") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditor.is_public - . - #hasheq((description - . - "True if appears in a public record ") - (format . "boolean") - (in . "query") - (name . "is_public") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditor.secondary_auditor_general_id - . - #hasheq((format . "bigint[]") - (in . "query") - (name . "secondary_auditor_general_id") - (required . #f) - (type . "string"))) - (rowFilter.vw_auditor.sequence_number - . - #hasheq((description - . - "Order that Auditors were reported on page 5 of SF-SAC (only for secondary_auditors) Census mapping: GENERAL, SEQNUM (AND) Census mapping: MULTIPLE CPAS INFO, SEQNUM") - (format . "integer") - (in . "query") - (name . "sequence_number") - (required . #f) - (type . "string"))) - (rowFilter.vw_cap_text.audit_year - . - #hasheq((format . "character varying") - (in . "query") - (name . "audit_year") - (required . #f) - (type . "string"))) - (rowFilter.vw_cap_text.auditee_ein - . - #hasheq((format . "integer") - (in . "query") - (name . "auditee_ein") - (required . #f) - (type . "string"))) - (rowFilter.vw_cap_text.auditee_uei - . - #hasheq((format . "character varying") - (in . "query") - (name . "auditee_uei") - (required . #f) - (type . "string"))) - (rowFilter.vw_cap_text.cap_text - . - #hasheq((format . "text") - (in . "query") - (name . "cap_text") - (required . #f) - (type . "string"))) - (rowFilter.vw_cap_text.charts_tables - . - #hasheq((format . "boolean") - (in . "query") - (name . "charts_tables") - (required . #f) - (type . "string"))) - (rowFilter.vw_cap_text.finding_ref_number - . - #hasheq((format . "character varying") - (in . "query") - (name . "finding_ref_number") - (required . #f) - (type . "string"))) - (rowFilter.vw_cap_text.fy_end_date - . - #hasheq((format . "date") - (in . "query") - (name . "fy_end_date") - (required . #f) - (type . "string"))) - (rowFilter.vw_cap_text.fy_start_date - . - #hasheq((format . "date") - (in . "query") - (name . "fy_start_date") - (required . #f) - (type . "string"))) - (rowFilter.vw_cap_text.id - . - #hasheq((format . "bigint") - (in . "query") - (name . "id") - (required . #f) - (type . "string"))) - (rowFilter.vw_cap_text.report_id - . - #hasheq((format . "character varying") - (in . "query") - (name . "report_id") - (required . #f) - (type . "string"))) - (rowFilter.vw_federal_award.additional_award_identification - . - #hasheq((format . "character varying") - (in . "query") - (name . "additional_award_identification") - (required . #f) - (type . "string"))) - (rowFilter.vw_federal_award.amount_expended - . - #hasheq((format . "bigint") - (in . "query") - (name . "amount_expended") - (required . #f) - (type . "string"))) - (rowFilter.vw_federal_award.audit_year - . - #hasheq((format . "character varying") - (in . "query") - (name . "audit_year") - (required . #f) - (type . "string"))) - (rowFilter.vw_federal_award.auditee_ein - . - #hasheq((format . "integer") - (in . "query") - (name . "auditee_ein") - (required . #f) - (type . "string"))) - (rowFilter.vw_federal_award.auditee_uei - . - #hasheq((format . "character varying") - (in . "query") - (name . "auditee_uei") - (required . #f) - (type . "string"))) - (rowFilter.vw_federal_award.award_seq_number - . - #hasheq((format . "integer") - (in . "query") - (name . "award_seq_number") - (required . #f) - (type . "string"))) - (rowFilter.vw_federal_award.cluster_name - . - #hasheq((format . "character varying") - (in . "query") - (name . "cluster_name") - (required . #f) - (type . "string"))) - (rowFilter.vw_federal_award.cluster_total - . - #hasheq((format . "bigint") - (in . "query") - (name . "cluster_total") - (required . #f) - (type . "string"))) - (rowFilter.vw_federal_award.federal_agency_prefix - . - #hasheq((format . "character varying") - (in . "query") - (name . "federal_agency_prefix") - (required . #f) - (type . "string"))) - (rowFilter.vw_federal_award.federal_award_extension - . - #hasheq((format . "character varying") - (in . "query") - (name . "federal_award_extension") - (required . #f) - (type . "string"))) - (rowFilter.vw_federal_award.federal_program_name - . - #hasheq((format . "character varying") - (in . "query") - (name . "federal_program_name") - (required . #f) - (type . "string"))) - (rowFilter.vw_federal_award.federal_program_total - . - #hasheq((format . "bigint") - (in . "query") - (name . "federal_program_total") - (required . #f) - (type . "string"))) - (rowFilter.vw_federal_award.findings_count - . - #hasheq((format . "integer") - (in . "query") - (name . "findings_count") - (required . #f) - (type . "string"))) - (rowFilter.vw_federal_award.fy_end_date - . - #hasheq((format . "date") - (in . "query") - (name . "fy_end_date") - (required . #f) - (type . "string"))) - (rowFilter.vw_federal_award.fy_start_date - . - #hasheq((format . "date") - (in . "query") - (name . "fy_start_date") - (required . #f) - (type . "string"))) - (rowFilter.vw_federal_award.id - . - #hasheq((format . "bigint") - (in . "query") - (name . "id") - (required . #f) - (type . "string"))) - (rowFilter.vw_federal_award.is_direct - . - #hasheq((format . "boolean") - (in . "query") - (name . "is_direct") - (required . #f) - (type . "string"))) - (rowFilter.vw_federal_award.is_loan - . - #hasheq((format . "boolean") - (in . "query") - (name . "is_loan") - (required . #f) - (type . "string"))) - (rowFilter.vw_federal_award.is_major - . - #hasheq((format . "boolean") - (in . "query") - (name . "is_major") - (required . #f) - (type . "string"))) - (rowFilter.vw_federal_award.loan_balance_at_audit_period_end - . - #hasheq((format . "character varying") - (in . "query") - (name . "loan_balance_at_audit_period_end") - (required . #f) - (type . "string"))) - (rowFilter.vw_federal_award.mp_audit_report_type - . - #hasheq((format . "character varying") - (in . "query") - (name . "mp_audit_report_type") - (required . #f) - (type . "string"))) - (rowFilter.vw_federal_award.other_cluster_name - . - #hasheq((format . "character varying") - (in . "query") - (name . "other_cluster_name") - (required . #f) - (type . "string"))) - (rowFilter.vw_federal_award.passthrough_amount - . - #hasheq((format . "bigint") - (in . "query") - (name . "passthrough_amount") - (required . #f) - (type . "string"))) - (rowFilter.vw_federal_award.passthrough_award - . - #hasheq((format . "boolean") - (in . "query") - (name . "passthrough_award") - (required . #f) - (type . "string"))) - (rowFilter.vw_federal_award.report_id - . - #hasheq((format . "character varying") - (in . "query") - (name . "report_id") - (required . #f) - (type . "string"))) - (rowFilter.vw_federal_award.state_cluster_name - . - #hasheq((format . "character varying") - (in . "query") - (name . "state_cluster_name") - (required . #f) - (type . "string"))) - (rowFilter.vw_federal_award.type_requirement - . - #hasheq((format . "character varying") - (in . "query") - (name . "type_requirement") - (required . #f) - (type . "string"))) - (rowFilter.vw_finding.audit_year - . - #hasheq((format . "character varying") - (in . "query") - (name . "audit_year") - (required . #f) - (type . "string"))) - (rowFilter.vw_finding.auditee_ein - . - #hasheq((format . "integer") - (in . "query") - (name . "auditee_ein") - (required . #f) - (type . "string"))) - (rowFilter.vw_finding.auditee_uei - . - #hasheq((format . "character varying") - (in . "query") - (name . "auditee_uei") - (required . #f) - (type . "string"))) - (rowFilter.vw_finding.award_seq_number - . - #hasheq((format . "integer") - (in . "query") - (name . "award_seq_number") - (required . #f) - (type . "string"))) - (rowFilter.vw_finding.federal_agency_prefix - . - #hasheq((format . "character varying") - (in . "query") - (name . "federal_agency_prefix") - (required . #f) - (type . "string"))) - (rowFilter.vw_finding.federal_award_extension - . - #hasheq((format . "character varying") - (in . "query") - (name . "federal_award_extension") - (required . #f) - (type . "string"))) - (rowFilter.vw_finding.finding_ref_number - . - #hasheq((format . "character varying") - (in . "query") - (name . "finding_ref_number") - (required . #f) - (type . "string"))) - (rowFilter.vw_finding.finding_seq_number - . - #hasheq((format . "integer") - (in . "query") - (name . "finding_seq_number") - (required . #f) - (type . "string"))) - (rowFilter.vw_finding.fy_end_date - . - #hasheq((format . "date") - (in . "query") - (name . "fy_end_date") - (required . #f) - (type . "string"))) - (rowFilter.vw_finding.fy_start_date - . - #hasheq((format . "date") - (in . "query") - (name . "fy_start_date") - (required . #f) - (type . "string"))) - (rowFilter.vw_finding.id - . - #hasheq((format . "bigint") - (in . "query") - (name . "id") - (required . #f) - (type . "string"))) - (rowFilter.vw_finding.is_material_weakness - . - #hasheq((format . "boolean") - (in . "query") - (name . "is_material_weakness") - (required . #f) - (type . "string"))) - (rowFilter.vw_finding.is_significant_deficiency - . - #hasheq((format . "boolean") - (in . "query") - (name . "is_significant_deficiency") - (required . #f) - (type . "string"))) - (rowFilter.vw_finding.modified_opinion - . - #hasheq((format . "boolean") - (in . "query") - (name . "modified_opinion") - (required . #f) - (type . "string"))) - (rowFilter.vw_finding.other_findings - . - #hasheq((format . "boolean") - (in . "query") - (name . "other_findings") - (required . #f) - (type . "string"))) - (rowFilter.vw_finding.other_non_compliance - . - #hasheq((format . "boolean") - (in . "query") - (name . "other_non_compliance") - (required . #f) - (type . "string"))) - (rowFilter.vw_finding.prior_finding_ref_numbers - . - #hasheq((format . "character varying") - (in . "query") - (name . "prior_finding_ref_numbers") - (required . #f) - (type . "string"))) - (rowFilter.vw_finding.questioned_costs - . - #hasheq((format . "boolean") - (in . "query") - (name . "questioned_costs") - (required . #f) - (type . "string"))) - (rowFilter.vw_finding.repeat_finding - . - #hasheq((format . "boolean") - (in . "query") - (name . "repeat_finding") - (required . #f) - (type . "string"))) - (rowFilter.vw_finding.report_id - . - #hasheq((format . "character varying") - (in . "query") - (name . "report_id") - (required . #f) - (type . "string"))) - (rowFilter.vw_finding.type_requirement - . - #hasheq((format . "character varying") - (in . "query") - (name . "type_requirement") - (required . #f) - (type . "string"))) - (rowFilter.vw_finding_text.audit_year - . - #hasheq((format . "character varying") - (in . "query") - (name . "audit_year") - (required . #f) - (type . "string"))) - (rowFilter.vw_finding_text.auditee_ein - . - #hasheq((format . "integer") - (in . "query") - (name . "auditee_ein") - (required . #f) - (type . "string"))) - (rowFilter.vw_finding_text.auditee_uei - . - #hasheq((format . "character varying") - (in . "query") - (name . "auditee_uei") - (required . #f) - (type . "string"))) - (rowFilter.vw_finding_text.charts_tables - . - #hasheq((format . "boolean") - (in . "query") - (name . "charts_tables") - (required . #f) - (type . "string"))) - (rowFilter.vw_finding_text.finding_ref_number - . - #hasheq((format . "character varying") - (in . "query") - (name . "finding_ref_number") - (required . #f) - (type . "string"))) - (rowFilter.vw_finding_text.finding_text - . - #hasheq((format . "text") - (in . "query") - (name . "finding_text") - (required . #f) - (type . "string"))) - (rowFilter.vw_finding_text.fy_end_date - . - #hasheq((format . "date") - (in . "query") - (name . "fy_end_date") - (required . #f) - (type . "string"))) - (rowFilter.vw_finding_text.fy_start_date - . - #hasheq((format . "date") - (in . "query") - (name . "fy_start_date") - (required . #f) - (type . "string"))) - (rowFilter.vw_finding_text.id - . - #hasheq((format . "bigint") - (in . "query") - (name . "id") - (required . #f) - (type . "string"))) - (rowFilter.vw_finding_text.report_id - . - #hasheq((format . "character varying") - (in . "query") - (name . "report_id") - (required . #f) - (type . "string"))) - (rowFilter.vw_findings.audit_findings_id - . - #hasheq((description - . - "FAC system generated sequence number for finding Census mapping: FINDINGS, ELECAUDITFINDINGSID") - (format . "integer") - (in . "query") - (name . "audit_findings_id") - (required . #f) - (type . "string"))) - (rowFilter.vw_findings.audit_id - . - #hasheq((description - . - "FAC system generated sequence number used to link to Findings data between CFDA Info and Findings Census mapping: FINDINGS, ELECAUDITSID") - (format . "integer") - (in . "query") - (name . "audit_id") - (required . #f) - (type . "string"))) - (rowFilter.vw_findings.audit_year - . - #hasheq((description - . - "Audit Year and DBKEY (database key) combined make up the primary key. Census mapping: FINDINGS, AUDITYEAR") - (format . "character varying") - (in . "query") - (name . "audit_year") - (required . #f) - (type . "string"))) - (rowFilter.vw_findings.dbkey - . - #hasheq((description - . - "Audit Year and DBKEY (database key) combined make up the primary key. Census mapping: FINDINGS, DBKEY") - (format . "character varying") - (in . "query") - (name . "dbkey") - (required . #f) - (type . "string"))) - (rowFilter.vw_findings.finding_ref_number - . - #hasheq((description - . - "Findings Reference Numbers Data sources: SF-SAC 2013-2015: III/7/d; SF-SAC 2016-2018: III/4/e; SF-SAC 2019-2021: III/4/e; SF-SAC 2022: III/4/e Census mapping: FINDINGS, FINDINGSREFNUMS") - (format . "character varying") - (in . "query") - (name . "finding_ref_number") - (required . #f) - (type . "string"))) - (rowFilter.vw_findings.findings_text_id - . - #hasheq((format . "bigint[]") - (in . "query") - (name . "findings_text_id") - (required . #f) - (type . "string"))) - (rowFilter.vw_findings.general_id - . - #hasheq((format . "bigint[]") - (in . "query") - (name . "general_id") - (required . #f) - (type . "string"))) - (rowFilter.vw_findings.id - . - #hasheq((description . "ID ") - (format . "bigint") - (in . "query") - (name . "id") - (required . #f) - (type . "string"))) - (rowFilter.vw_findings.is_public - . - #hasheq((description - . - "True for public records, False for non-public records ") - (format . "boolean") - (in . "query") - (name . "is_public") - (required . #f) - (type . "string"))) - (rowFilter.vw_findings.material_weakness - . - #hasheq((description - . - "Material Weakness finding Data sources: SF-SAC 2013-2015: III/7/h; SF-SAC 2016-2018: III/4/i; SF-SAC 2019-2021: III/4/i; SF-SAC 2022: III/4/i Census mapping: FINDINGS, MATERIALWEAKNESS") - (format . "boolean") - (in . "query") - (name . "material_weakness") - (required . #f) - (type . "string"))) - (rowFilter.vw_findings.modified_opinion - . - #hasheq((description - . - "Modified Opinion finding Data sources: SF-SAC 2013-2015: III/7/f; SF-SAC 2016-2018: III/4/g; SF-SAC 2019-2021: III/4/g; SF-SAC 2022: III/4/g Census mapping: FINDINGS, MODIFIEDOPINION") - (format . "boolean") - (in . "query") - (name . "modified_opinion") - (required . #f) - (type . "string"))) - (rowFilter.vw_findings.other_findings - . - #hasheq((description - . - "Other findings Data sources: SF-SAC 2013-2015: III/7/j; SF-SAC 2016-2018: III/4/k; SF-SAC 2019-2021: III/4/k; SF-SAC 2022: III/4/k Census mapping: FINDINGS, OTHERFINDINGS") - (format . "boolean") - (in . "query") - (name . "other_findings") - (required . #f) - (type . "string"))) - (rowFilter.vw_findings.other_non_compliance - . - #hasheq((description - . - "Other Noncompliance finding Data sources: SF-SAC 2013-2015: III/7/g; SF-SAC 2016-2018: III/4/h; SF-SAC 2019-2021: III/4/h; SF-SAC 2022: III/4/h Census mapping: FINDINGS, OTHERNONCOMPLIANCE") - (format . "boolean") - (in . "query") - (name . "other_non_compliance") - (required . #f) - (type . "string"))) - (rowFilter.vw_findings.prior_finding_ref_numbers - . - #hasheq((description - . - "Audit finding reference numbers from the immediate prior audit Data sources: SF-SAC 2016-2018: III/4/n; SF-SAC 2019-2021: III/4/n; SF-SAC 2022: III/4/n Census mapping: FINDINGS, PRIORFINDINGREFNUMS") - (format . "character varying") - (in . "query") - (name . "prior_finding_ref_numbers") - (required . #f) - (type . "string"))) - (rowFilter.vw_findings.questioned_costs - . - #hasheq((description - . - "Questioned Costs Data sources: SF-SAC 2013-2015: III/7/k; SF-SAC 2016-2018: III/4/l; SF-SAC 2019-2021: III/4/l; SF-SAC 2022: III/4/l Census mapping: FINDINGS, QCOSTS") - (format . "boolean") - (in . "query") - (name . "questioned_costs") - (required . #f) - (type . "string"))) - (rowFilter.vw_findings.repeat_finding - . - #hasheq((description - . - "Indicates whether or not the audit finding was a repeat of an audit finding in the immediate prior audit Data sources: SF-SAC 2016-2018: III/4/m; SF-SAC 2019-2021: III/4/m; SF-SAC 2022: III/4/m Census mapping: FINDINGS, REPEATFINDING") - (format . "boolean") - (in . "query") - (name . "repeat_finding") - (required . #f) - (type . "string"))) - (rowFilter.vw_findings.significant_deficiency - . - #hasheq((description - . - "Significant Deficiency finding Data sources: SF-SAC 1997-2000: II/3; SF-SAC 2001-2003: II/3; SF-SAC 2004-2007: II/3; SF-SAC 2008-2009: II/3; SF-SAC 2010-2012: II/3; SF-SAC 2013-2015: II/3; SF-SAC 2016-2018: III/2/c; SF-SAC 2019-2021: III/2/c; SF-SAC 2022: III/2/c Census mapping: FINDINGS, SIGNIFICANTDEFICIENCY") - (format . "boolean") - (in . "query") - (name . "significant_deficiency") - (required . #f) - (type . "string"))) - (rowFilter.vw_findings.type_requirement - . - #hasheq((description - . - "Type Requirement Failure Data sources: SF-SAC 2013-2015: III/7/e; SF-SAC 2016-2018: III/4/f; SF-SAC 2019-2021: III/4/f; SF-SAC 2022: III/4/f Census mapping: FINDINGS, TYPEREQUIREMENT") - (format . "character varying") - (in . "query") - (name . "type_requirement") - (required . #f) - (type . "string"))) - (rowFilter.vw_findings_text.audit_year - . - #hasheq((description - . - "Audit Year and DBKEY (database key) combined make up the primary key. Census mapping: FINDINGSTEXT, AUDITYEAR") - (format . "character varying") - (in . "query") - (name . "audit_year") - (required . #f) - (type . "string"))) - (rowFilter.vw_findings_text.charts_tables - . - #hasheq((description - . - "Indicates whether or not the text contained charts or tables that could not be entered due to formatting restrictions Census mapping: FINDINGSTEXT, CHARTSTABLES") - (format . "boolean") - (in . "query") - (name . "charts_tables") - (required . #f) - (type . "string"))) - (rowFilter.vw_findings_text.dbkey - . - #hasheq((description - . - "Audit Year and DBKEY (database key) combined make up the primary key. Census mapping: FINDINGSTEXT, DBKEY") - (format . "character varying") - (in . "query") - (name . "dbkey") - (required . #f) - (type . "string"))) - (rowFilter.vw_findings_text.finding_ref_number - . - #hasheq((description - . - "Audit Finding Reference Number Data sources: SF-SAC 2019-2021: III/5/a; SF-SAC 2022: III/5/a Census mapping: FINDINGSTEXT, FINDINGREFNUMS") - (format . "character varying") - (in . "query") - (name . "finding_ref_number") - (required . #f) - (type . "string"))) - (rowFilter.vw_findings_text.general_id - . - #hasheq((format . "bigint[]") - (in . "query") - (name . "general_id") - (required . #f) - (type . "string"))) - (rowFilter.vw_findings_text.id - . - #hasheq((description . "ID ") - (format . "bigint") - (in . "query") - (name . "id") - (required . #f) - (type . "string"))) - (rowFilter.vw_findings_text.is_public - . - #hasheq((description - . - "True for public records, False for non-public records ") - (format . "boolean") - (in . "query") - (name . "is_public") - (required . #f) - (type . "string"))) - (rowFilter.vw_findings_text.sequence_number - . - #hasheq((description - . - "Order that the findings text was reported Census mapping: FINDINGSTEXT, SEQ_NUMBER") - (format . "integer") - (in . "query") - (name . "sequence_number") - (required . #f) - (type . "string"))) - (rowFilter.vw_findings_text.text - . - #hasheq((description - . - "Content of the finding text Data sources: SF-SAC 2019-2021: III/5/b; SF-SAC 2022: III/5/b Census mapping: FINDINGSTEXT, TEXT") - (format . "text") - (in . "query") - (name . "text") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.audit_period_covered - . - #hasheq((format . "character varying") - (in . "query") - (name . "audit_period_covered") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.audit_type - . - #hasheq((format . "character varying") - (in . "query") - (name . "audit_type") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.audit_year - . - #hasheq((format . "character varying") - (in . "query") - (name . "audit_year") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.auditee_addl_duns_list - . - #hasheq((format . "character varying[]") - (in . "query") - (name . "auditee_addl_duns_list") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.auditee_addl_ein_list - . - #hasheq((format . "integer[]") - (in . "query") - (name . "auditee_addl_ein_list") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.auditee_addl_uei_list - . - #hasheq((format . "character varying[]") - (in . "query") - (name . "auditee_addl_uei_list") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.auditee_address_line_1 - . - #hasheq((format . "character varying") - (in . "query") - (name . "auditee_address_line_1") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.auditee_certified_date - . - #hasheq((format . "date") - (in . "query") - (name . "auditee_certified_date") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.auditee_certify_name - . - #hasheq((format . "character varying") - (in . "query") - (name . "auditee_certify_name") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.auditee_certify_title - . - #hasheq((format . "character varying") - (in . "query") - (name . "auditee_certify_title") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.auditee_city - . - #hasheq((format . "character varying") - (in . "query") - (name . "auditee_city") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.auditee_contact_name - . - #hasheq((format . "character varying") - (in . "query") - (name . "auditee_contact_name") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.auditee_contact_title - . - #hasheq((format . "character varying") - (in . "query") - (name . "auditee_contact_title") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.auditee_duns - . - #hasheq((format . "character varying[]") - (in . "query") - (name . "auditee_duns") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.auditee_ein - . - #hasheq((format . "integer") - (in . "query") - (name . "auditee_ein") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.auditee_email - . - #hasheq((format . "character varying") - (in . "query") - (name . "auditee_email") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.auditee_name - . - #hasheq((format . "character varying") - (in . "query") - (name . "auditee_name") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.auditee_phone - . - #hasheq((format . "bigint") - (in . "query") - (name . "auditee_phone") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.auditee_state - . - #hasheq((format . "character varying") - (in . "query") - (name . "auditee_state") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.auditee_uei - . - #hasheq((format . "character varying") - (in . "query") - (name . "auditee_uei") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.auditee_zip - . - #hasheq((format . "character varying") - (in . "query") - (name . "auditee_zip") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.auditor_address_line_1 - . - #hasheq((format . "character varying") - (in . "query") - (name . "auditor_address_line_1") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.auditor_certified_date - . - #hasheq((format . "date") - (in . "query") - (name . "auditor_certified_date") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.auditor_city - . - #hasheq((format . "character varying") - (in . "query") - (name . "auditor_city") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.auditor_contact_name - . - #hasheq((format . "character varying") - (in . "query") - (name . "auditor_contact_name") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.auditor_contact_title - . - #hasheq((format . "character varying") - (in . "query") - (name . "auditor_contact_title") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.auditor_country - . - #hasheq((format . "character varying") - (in . "query") - (name . "auditor_country") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.auditor_ein - . - #hasheq((format . "integer") - (in . "query") - (name . "auditor_ein") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.auditor_email - . - #hasheq((format . "character varying") - (in . "query") - (name . "auditor_email") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.auditor_firm_name - . - #hasheq((format . "character varying") - (in . "query") - (name . "auditor_firm_name") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.auditor_foreign_addr - . - #hasheq((format . "character varying") - (in . "query") - (name . "auditor_foreign_addr") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.auditor_phone - . - #hasheq((format . "bigint") - (in . "query") - (name . "auditor_phone") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.auditor_state - . - #hasheq((format . "character varying") - (in . "query") - (name . "auditor_state") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.auditor_zip - . - #hasheq((format . "character varying") - (in . "query") - (name . "auditor_zip") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.cfac_report_id - . - #hasheq((format . "character varying") - (in . "query") - (name . "cfac_report_id") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.cfac_version - . - #hasheq((format . "character varying") - (in . "query") - (name . "cfac_version") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.cognizant_agency - . - #hasheq((format . "character varying") - (in . "query") - (name . "cognizant_agency") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.condition_or_deficiency_major_program - . - #hasheq((format . "boolean") - (in . "query") - (name . "condition_or_deficiency_major_program") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.create_date - . - #hasheq((format . "timestamp with time zone") - (in . "query") - (name . "create_date") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.current_or_former_findings - . - #hasheq((format . "boolean") - (in . "query") - (name . "current_or_former_findings") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.data_source - . - #hasheq((format . "character varying") - (in . "query") - (name . "data_source") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.date_published - . - #hasheq((format . "date") - (in . "query") - (name . "date_published") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.date_received - . - #hasheq((format . "date") - (in . "query") - (name . "date_received") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.dbkey - . - #hasheq((format . "character varying") - (in . "query") - (name . "dbkey") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.dollar_threshold - . - #hasheq((format . "double precision") - (in . "query") - (name . "dollar_threshold") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.ein_subcode - . - #hasheq((format . "integer") - (in . "query") - (name . "ein_subcode") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.entity_type - . - #hasheq((format . "character varying") - (in . "query") - (name . "entity_type") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.fac_accepted_date - . - #hasheq((format . "date") - (in . "query") - (name . "fac_accepted_date") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.federal_agency_prefix - . - #hasheq((format . "character varying") - (in . "query") - (name . "federal_agency_prefix") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.federal_award_extension - . - #hasheq((format . "character varying") - (in . "query") - (name . "federal_award_extension") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.form_date_received - . - #hasheq((format . "date") - (in . "query") - (name . "form_date_received") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.fy_end_date - . - #hasheq((format . "date") - (in . "query") - (name . "fy_end_date") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.fy_start_date - . - #hasheq((format . "date") - (in . "query") - (name . "fy_start_date") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.hist_auditee_address_line_2 - . - #hasheq((format . "character varying") - (in . "query") - (name . "hist_auditee_address_line_2") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.hist_auditee_fax - . - #hasheq((format . "bigint") - (in . "query") - (name . "hist_auditee_fax") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.hist_auditor_address_line_2 - . - #hasheq((format . "character varying") - (in . "query") - (name . "hist_auditor_address_line_2") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.hist_auditor_fax - . - #hasheq((format . "bigint") - (in . "query") - (name . "hist_auditor_fax") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.hist_completed_date - . - #hasheq((format . "date") - (in . "query") - (name . "hist_completed_date") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.hist_component_date_received - . - #hasheq((format . "date") - (in . "query") - (name . "hist_component_date_received") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.hist_previous_completed_on - . - #hasheq((format . "date") - (in . "query") - (name . "hist_previous_completed_on") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.hist_previous_date_published - . - #hasheq((format . "date") - (in . "query") - (name . "hist_previous_date_published") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.hist_reportable_condition - . - #hasheq((format . "boolean") - (in . "query") - (name . "hist_reportable_condition") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.hist_type_of_entity - . - #hasheq((format . "character varying") - (in . "query") - (name . "hist_type_of_entity") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.id - . - #hasheq((format . "bigint") - (in . "query") - (name . "id") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.initial_date_received - . - #hasheq((format . "date") - (in . "query") - (name . "initial_date_received") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.is_duplicate_reports - . - #hasheq((format . "boolean") - (in . "query") - (name . "is_duplicate_reports") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.is_going_concern - . - #hasheq((format . "boolean") - (in . "query") - (name . "is_going_concern") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.is_low_risk - . - #hasheq((format . "boolean") - (in . "query") - (name . "is_low_risk") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.is_material_noncompliance - . - #hasheq((format . "boolean") - (in . "query") - (name . "is_material_noncompliance") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.is_material_weakness - . - #hasheq((format . "boolean") - (in . "query") - (name . "is_material_weakness") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.is_public - . - #hasheq((format . "boolean") - (in . "query") - (name . "is_public") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.is_significant_deficiency - . - #hasheq((format . "boolean") - (in . "query") - (name . "is_significant_deficiency") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.is_special_framework_required - . - #hasheq((format . "boolean") - (in . "query") - (name . "is_special_framework_required") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.material_weakness - . - #hasheq((format . "boolean") - (in . "query") - (name . "material_weakness") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.material_weakness_major_program - . - #hasheq((format . "boolean") - (in . "query") - (name . "material_weakness_major_program") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.modified_date - . - #hasheq((format . "timestamp with time zone") - (in . "query") - (name . "modified_date") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.multiple_auditors - . - #hasheq((format . "boolean") - (in . "query") - (name . "multiple_auditors") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.multiple_duns - . - #hasheq((format . "boolean") - (in . "query") - (name . "multiple_duns") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.multiple_ein - . - #hasheq((format . "boolean") - (in . "query") - (name . "multiple_ein") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.multiple_uei - . - #hasheq((format . "boolean") - (in . "query") - (name . "multiple_uei") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.number_months - . - #hasheq((format . "integer") - (in . "query") - (name . "number_months") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.oversight_agency - . - #hasheq((format . "integer") - (in . "query") - (name . "oversight_agency") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.pdf_url - . - #hasheq((format . "character varying[]") - (in . "query") - (name . "pdf_url") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.prior_year_schedule - . - #hasheq((format . "boolean") - (in . "query") - (name . "prior_year_schedule") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.questioned_costs - . - #hasheq((format . "boolean") - (in . "query") - (name . "questioned_costs") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.report_id - . - #hasheq((format . "character varying") - (in . "query") - (name . "report_id") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.report_required - . - #hasheq((format . "boolean") - (in . "query") - (name . "report_required") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.special_framework - . - #hasheq((format . "character varying") - (in . "query") - (name . "special_framework") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.suppression_code - . - #hasheq((format . "character varying") - (in . "query") - (name . "suppression_code") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.total_fed_expenditures - . - #hasheq((format . "bigint") - (in . "query") - (name . "total_fed_expenditures") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.type_audit_code - . - #hasheq((format . "character varying") - (in . "query") - (name . "type_audit_code") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.type_report_financial_statements - . - #hasheq((format . "character varying") - (in . "query") - (name . "type_report_financial_statements") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.type_report_major_program - . - #hasheq((format . "character varying") - (in . "query") - (name . "type_report_major_program") - (required . #f) - (type . "string"))) - (rowFilter.vw_general.type_report_special_purpose_framework - . - #hasheq((format . "character varying") - (in . "query") - (name . "type_report_special_purpose_framework") - (required . #f) - (type . "string"))) - (rowFilter.vw_note.audit_year - . - #hasheq((format . "character varying") - (in . "query") - (name . "audit_year") - (required . #f) - (type . "string"))) - (rowFilter.vw_note.auditee_ein - . - #hasheq((format . "integer") - (in . "query") - (name . "auditee_ein") - (required . #f) - (type . "string"))) - (rowFilter.vw_note.auditee_uei - . - #hasheq((format . "character varying") - (in . "query") - (name . "auditee_uei") - (required . #f) - (type . "string"))) - (rowFilter.vw_note.content - . - #hasheq((format . "text") - (in . "query") - (name . "content") - (required . #f) - (type . "string"))) - (rowFilter.vw_note.fy_end_date - . - #hasheq((format . "date") - (in . "query") - (name . "fy_end_date") - (required . #f) - (type . "string"))) - (rowFilter.vw_note.fy_start_date - . - #hasheq((format . "date") - (in . "query") - (name . "fy_start_date") - (required . #f) - (type . "string"))) - (rowFilter.vw_note.id - . - #hasheq((format . "bigint") - (in . "query") - (name . "id") - (required . #f) - (type . "string"))) - (rowFilter.vw_note.note_index - . - #hasheq((format . "integer") - (in . "query") - (name . "note_index") - (required . #f) - (type . "string"))) - (rowFilter.vw_note.note_seq_number - . - #hasheq((format . "integer") - (in . "query") - (name . "note_seq_number") - (required . #f) - (type . "string"))) - (rowFilter.vw_note.note_title - . - #hasheq((format . "character varying") - (in . "query") - (name . "note_title") - (required . #f) - (type . "string"))) - (rowFilter.vw_note.report_id - . - #hasheq((format . "character varying") - (in . "query") - (name . "report_id") - (required . #f) - (type . "string"))) - (rowFilter.vw_note.type_id - . - #hasheq((format . "character varying") - (in . "query") - (name . "type_id") - (required . #f) - (type . "string"))) - (rowFilter.vw_passthrough.audit_id - . - #hasheq((format . "integer") - (in . "query") - (name . "audit_id") - (required . #f) - (type . "string"))) - (rowFilter.vw_passthrough.audit_year - . - #hasheq((format . "character varying") - (in . "query") - (name . "audit_year") - (required . #f) - (type . "string"))) - (rowFilter.vw_passthrough.dbkey - . - #hasheq((format . "character varying") - (in . "query") - (name . "dbkey") - (required . #f) - (type . "string"))) - (rowFilter.vw_passthrough.general_id - . - #hasheq((format . "bigint[]") - (in . "query") - (name . "general_id") - (required . #f) - (type . "string"))) - (rowFilter.vw_passthrough.id - . - #hasheq((format . "bigint") - (in . "query") - (name . "id") - (required . #f) - (type . "string"))) - (rowFilter.vw_passthrough.is_public - . - #hasheq((format . "boolean") - (in . "query") - (name . "is_public") - (required . #f) - (type . "string"))) - (rowFilter.vw_passthrough.passthrough_id - . - #hasheq((format . "character varying") - (in . "query") - (name . "passthrough_id") - (required . #f) - (type . "string"))) - (rowFilter.vw_passthrough.passthrough_name - . - #hasheq((format . "character varying") - (in . "query") - (name . "passthrough_name") - (required . #f) - (type . "string"))) - (rowFilter.vw_revision.audit_info - . - #hasheq((description - . - "Indicates what items on the Audit Info page were edited during the revision Census mapping: REVISIONS, AUDITINFO") - (format . "character varying") - (in . "query") - (name . "audit_info") - (required . #f) - (type . "string"))) - (rowFilter.vw_revision.audit_info_explain - . - #hasheq((description - . - "Explanation of what items on the Audit Info page were edited during the revision Census mapping: REVISIONS, AUDITINFO_EXPLAIN") - (format . "text") - (in . "query") - (name . "audit_info_explain") - (required . #f) - (type . "string"))) - (rowFilter.vw_revision.audit_year - . - #hasheq((description - . - "Audit Year and DBKEY (database key) combined make up the primary key. Census mapping: REVISIONS, AUDITYEAR") - (format . "character varying") - (in . "query") - (name . "audit_year") - (required . #f) - (type . "string"))) - (rowFilter.vw_revision.cap - . - #hasheq((description - . - "Indicates what items on the CAP Text page were edited during the revision Census mapping: REVISIONS, CAP") - (format . "character varying") - (in . "query") - (name . "cap") - (required . #f) - (type . "string"))) - (rowFilter.vw_revision.cap_explain - . - #hasheq((description - . - "Explanation of what items on the CAP Text page were edited during the revision Census mapping: REVISIONS, CAP_EXPLAIN") - (format . "text") - (in . "query") - (name . "cap_explain") - (required . #f) - (type . "string"))) - (rowFilter.vw_revision.dbkey - . - #hasheq((description - . - "Audit Year and DBKEY (database key) combined make up the primary key. Census mapping: REVISIONS, DBKEY") - (format . "character varying") - (in . "query") - (name . "dbkey") - (required . #f) - (type . "string"))) - (rowFilter.vw_revision.federal_awards - . - #hasheq((description - . - "Indicates what items on the Federal Awards page were edited during the revision Census mapping: REVISIONS, FEDERALAWARDS") - (format . "character varying") - (in . "query") - (name . "federal_awards") - (required . #f) - (type . "string"))) - (rowFilter.vw_revision.federal_awards_explain - . - #hasheq((description - . - "Explanation of what items on the Federal Awards page were edited during the revision Census mapping: REVISIONS, FEDERALAWARDS_EXPLAIN") - (format . "text") - (in . "query") - (name . "federal_awards_explain") - (required . #f) - (type . "string"))) - (rowFilter.vw_revision.findings - . - #hasheq((description - . - "Indicates what items on the Findings page were edited during the revision Census mapping: REVISIONS, FINDINGS") - (format . "character varying") - (in . "query") - (name . "findings") - (required . #f) - (type . "string"))) - (rowFilter.vw_revision.findings_explain - . - #hasheq((description - . - "Explanation of what items on the Findings page were edited during the revision Census mapping: REVISIONS, FINDINGS_EXPLAIN") - (format . "text") - (in . "query") - (name . "findings_explain") - (required . #f) - (type . "string"))) - (rowFilter.vw_revision.findings_text - . - #hasheq((description - . - "Indicates what items on the Text of the Audit Findings page were edited during the revision Census mapping: REVISIONS, FINDINGSTEXT") - (format . "character varying") - (in . "query") - (name . "findings_text") - (required . #f) - (type . "string"))) - (rowFilter.vw_revision.findings_text_explain - . - #hasheq((description - . - "Explanation of what items on the Text of the Audit Findings page were edited during the revision Census mapping: REVISIONS, FINDINGSTEXT_EXPLAIN") - (format . "text") - (in . "query") - (name . "findings_text_explain") - (required . #f) - (type . "string"))) - (rowFilter.vw_revision.general_id - . - #hasheq((format . "bigint[]") - (in . "query") - (name . "general_id") - (required . #f) - (type . "string"))) - (rowFilter.vw_revision.general_info - . - #hasheq((description - . - "Indicates what items on the General Info page were edited during the revision Census mapping: REVISIONS, GENINFO") - (format . "character varying") - (in . "query") - (name . "general_info") - (required . #f) - (type . "string"))) - (rowFilter.vw_revision.general_info_explain - . - #hasheq((description - . - "Explanation of what items on the General Info page were edited during the revision Census mapping: REVISIONS, GENINFO_EXPLAIN") - (format . "text") - (in . "query") - (name . "general_info_explain") - (required . #f) - (type . "string"))) - (rowFilter.vw_revision.id - . - #hasheq((description . "ID ") - (format . "bigint") - (in . "query") - (name . "id") - (required . #f) - (type . "string"))) - (rowFilter.vw_revision.is_public - . - #hasheq((description - . - "True for public records, False for non-public records ") - (format . "boolean") - (in . "query") - (name . "is_public") - (required . #f) - (type . "string"))) - (rowFilter.vw_revision.notes_to_sefa - . - #hasheq((description - . - "Indicates what items on the Notes to Schedule of Expenditures of Federal Awards (SEFA) page were edited during the revision Census mapping: REVISIONS, NOTESTOSEFA") - (format . "character varying") - (in . "query") - (name . "notes_to_sefa") - (required . #f) - (type . "string"))) - (rowFilter.vw_revision.notes_to_sefa_explain - . - #hasheq((description - . - "Explanation of what items on the Notes to Schedule of Expenditures of Federal Awards (SEFA) page were edited during the revision Census mapping: REVISIONS, NOTESTOSEFA_EXPLAIN") - (format . "text") - (in . "query") - (name . "notes_to_sefa_explain") - (required . #f) - (type . "string"))) - (rowFilter.vw_revision.other - . - #hasheq((description - . - "Indicates what other miscellaneous items were edited during the revision Census mapping: REVISIONS, OTHER") - (format . "character varying") - (in . "query") - (name . "other") - (required . #f) - (type . "string"))) - (rowFilter.vw_revision.other_explain - . - #hasheq((description - . - "Explanation of what other miscellaneous items were edited during the revision Census mapping: REVISIONS, OTHER_EXPLAIN") - (format . "text") - (in . "query") - (name . "other_explain") - (required . #f) - (type . "string"))) - (rowFilter.vw_revision.revision_id - . - #hasheq((description - . - "Internal Unique Identifier for the record Census mapping: REVISIONS, ELECRPTREVISIONID") - (format . "integer") - (in . "query") - (name . "revision_id") - (required . #f) - (type . "string"))) - (select - . - #hasheq((description . "Filtering Columns") - (in . "query") - (name . "select") - (required . #f) - (type . "string"))))) - (paths - . - #hasheq((/ - . - #hasheq((get - . - #hasheq((produces - . - ("application/openapi+json" - "application/json")) - (responses - . - #hasheq((|200| - . - #hasheq((description . "OK"))))) - (summary - . - "OpenAPI description (this document)") - (tags . ("Introspection")))))) - (/vw_auditee - . - #hasheq((get - . - #hasheq((parameters - . - (#hasheq(($ref - . - "#/parameters/rowFilter.vw_auditee.id")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditee.auditee_certify_name")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditee.auditee_certify_title")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditee.auditee_contact")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditee.auditee_email")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditee.auditee_fax")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditee.auditee_name")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditee.auditee_name_title")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditee.auditee_phone")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditee.auditee_title")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditee.auditee_street1")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditee.auditee_street2")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditee.auditee_city")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditee.auditee_state")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditee.auditee_zip_code")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditee.duns_list")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditee.uei_list")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditee.is_public")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditee.ein_subcode")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditee.ein_list")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditee.general_id")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditee.dbkey")) - #hasheq(($ref . "#/parameters/select")) - #hasheq(($ref . "#/parameters/order")) - #hasheq(($ref . "#/parameters/range")) - #hasheq(($ref - . - "#/parameters/rangeUnit")) - #hasheq(($ref . "#/parameters/offset")) - #hasheq(($ref . "#/parameters/limit")) - #hasheq(($ref - . - "#/parameters/preferCount")))) - (responses - . - #hasheq((|200| - . - #hasheq((description . "OK") - (schema - . - #hasheq((items - . - #hasheq(($ref - . - "#/definitions/vw_auditee"))) - (type - . - "array"))))) - (|206| - . - #hasheq((description - . - "Partial Content"))))) - (summary - . - "Information about the entity undergoing the audit") - (tags . ("vw_auditee")))))) - (/vw_auditor - . - #hasheq((get - . - #hasheq((parameters - . - (#hasheq(($ref - . - "#/parameters/rowFilter.vw_auditor.id")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditor.cpa_phone")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditor.cpa_fax")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditor.cpa_state")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditor.cpa_city")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditor.cpa_title")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditor.cpa_street1")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditor.cpa_street2")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditor.cpa_zip_code")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditor.cpa_contact")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditor.cpa_email")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditor.cpa_firm_name")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditor.cpa_ein")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditor.sequence_number")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditor.is_public")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditor.cpa_country")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditor.cpa_foreign")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditor.general_id")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_auditor.secondary_auditor_general_id")) - #hasheq(($ref . "#/parameters/select")) - #hasheq(($ref . "#/parameters/order")) - #hasheq(($ref . "#/parameters/range")) - #hasheq(($ref - . - "#/parameters/rangeUnit")) - #hasheq(($ref . "#/parameters/offset")) - #hasheq(($ref . "#/parameters/limit")) - #hasheq(($ref - . - "#/parameters/preferCount")))) - (responses - . - #hasheq((|200| - . - #hasheq((description . "OK") - (schema - . - #hasheq((items - . - #hasheq(($ref - . - "#/definitions/vw_auditor"))) - (type - . - "array"))))) - (|206| - . - #hasheq((description - . - "Partial Content"))))) - (summary - . - "Information about the Auditing CPA firm conducting the audit") - (tags . ("vw_auditor")))))) - (/vw_cap_text - . - #hasheq((get - . - #hasheq((parameters - . - (#hasheq(($ref - . - "#/parameters/rowFilter.vw_cap_text.auditee_uei")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_cap_text.auditee_ein")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_cap_text.fy_start_date")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_cap_text.fy_end_date")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_cap_text.audit_year")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_cap_text.id")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_cap_text.report_id")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_cap_text.finding_ref_number")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_cap_text.charts_tables")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_cap_text.cap_text")) - #hasheq(($ref . "#/parameters/select")) - #hasheq(($ref . "#/parameters/order")) - #hasheq(($ref . "#/parameters/range")) - #hasheq(($ref - . - "#/parameters/rangeUnit")) - #hasheq(($ref . "#/parameters/offset")) - #hasheq(($ref . "#/parameters/limit")) - #hasheq(($ref - . - "#/parameters/preferCount")))) - (responses - . - #hasheq((|200| - . - #hasheq((description . "OK") - (schema - . - #hasheq((items - . - #hasheq(($ref - . - "#/definitions/vw_cap_text"))) - (type - . - "array"))))) - (|206| - . - #hasheq((description - . - "Partial Content"))))) - (tags . ("vw_cap_text")))))) - (/vw_federal_award - . - #hasheq((get - . - #hasheq((parameters - . - (#hasheq(($ref - . - "#/parameters/rowFilter.vw_federal_award.auditee_uei")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_federal_award.auditee_ein")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_federal_award.fy_start_date")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_federal_award.fy_end_date")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_federal_award.audit_year")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_federal_award.id")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_federal_award.report_id")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_federal_award.award_seq_number")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_federal_award.federal_agency_prefix")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_federal_award.federal_award_extension")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_federal_award.additional_award_identification")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_federal_award.federal_program_name")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_federal_award.amount_expended")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_federal_award.cluster_name")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_federal_award.state_cluster_name")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_federal_award.other_cluster_name")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_federal_award.cluster_total")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_federal_award.federal_program_total")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_federal_award.is_loan")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_federal_award.loan_balance_at_audit_period_end")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_federal_award.is_direct")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_federal_award.is_major")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_federal_award.mp_audit_report_type")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_federal_award.findings_count")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_federal_award.passthrough_award")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_federal_award.passthrough_amount")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_federal_award.type_requirement")) - #hasheq(($ref . "#/parameters/select")) - #hasheq(($ref . "#/parameters/order")) - #hasheq(($ref . "#/parameters/range")) - #hasheq(($ref - . - "#/parameters/rangeUnit")) - #hasheq(($ref . "#/parameters/offset")) - #hasheq(($ref . "#/parameters/limit")) - #hasheq(($ref - . - "#/parameters/preferCount")))) - (responses - . - #hasheq((|200| - . - #hasheq((description . "OK") - (schema - . - #hasheq((items - . - #hasheq(($ref - . - "#/definitions/vw_federal_award"))) - (type - . - "array"))))) - (|206| - . - #hasheq((description - . - "Partial Content"))))) - (tags . ("vw_federal_award")))))) - (/vw_finding - . - #hasheq((get - . - #hasheq((parameters - . - (#hasheq(($ref - . - "#/parameters/rowFilter.vw_finding.auditee_uei")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_finding.auditee_ein")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_finding.fy_start_date")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_finding.fy_end_date")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_finding.audit_year")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_finding.federal_agency_prefix")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_finding.federal_award_extension")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_finding.id")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_finding.report_id")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_finding.award_seq_number")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_finding.finding_seq_number")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_finding.finding_ref_number")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_finding.prior_finding_ref_numbers")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_finding.modified_opinion")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_finding.other_non_compliance")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_finding.is_material_weakness")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_finding.is_significant_deficiency")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_finding.other_findings")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_finding.questioned_costs")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_finding.repeat_finding")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_finding.type_requirement")) - #hasheq(($ref . "#/parameters/select")) - #hasheq(($ref . "#/parameters/order")) - #hasheq(($ref . "#/parameters/range")) - #hasheq(($ref - . - "#/parameters/rangeUnit")) - #hasheq(($ref . "#/parameters/offset")) - #hasheq(($ref . "#/parameters/limit")) - #hasheq(($ref - . - "#/parameters/preferCount")))) - (responses - . - #hasheq((|200| - . - #hasheq((description . "OK") - (schema - . - #hasheq((items - . - #hasheq(($ref - . - "#/definitions/vw_finding"))) - (type - . - "array"))))) - (|206| - . - #hasheq((description - . - "Partial Content"))))) - (tags . ("vw_finding")))))) - (/vw_finding_text - . - #hasheq((get - . - #hasheq((parameters - . - (#hasheq(($ref - . - "#/parameters/rowFilter.vw_finding_text.auditee_uei")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_finding_text.auditee_ein")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_finding_text.fy_start_date")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_finding_text.fy_end_date")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_finding_text.audit_year")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_finding_text.id")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_finding_text.report_id")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_finding_text.finding_ref_number")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_finding_text.charts_tables")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_finding_text.finding_text")) - #hasheq(($ref . "#/parameters/select")) - #hasheq(($ref . "#/parameters/order")) - #hasheq(($ref . "#/parameters/range")) - #hasheq(($ref - . - "#/parameters/rangeUnit")) - #hasheq(($ref . "#/parameters/offset")) - #hasheq(($ref . "#/parameters/limit")) - #hasheq(($ref - . - "#/parameters/preferCount")))) - (responses - . - #hasheq((|200| - . - #hasheq((description . "OK") - (schema - . - #hasheq((items - . - #hasheq(($ref - . - "#/definitions/vw_finding_text"))) - (type - . - "array"))))) - (|206| - . - #hasheq((description - . - "Partial Content"))))) - (tags . ("vw_finding_text")))))) - (/vw_findings - . - #hasheq((get - . - #hasheq((parameters - . - (#hasheq(($ref - . - "#/parameters/rowFilter.vw_findings.id")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_findings.modified_opinion")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_findings.other_non_compliance")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_findings.material_weakness")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_findings.significant_deficiency")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_findings.other_findings")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_findings.questioned_costs")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_findings.repeat_finding")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_findings.finding_ref_number")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_findings.prior_finding_ref_numbers")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_findings.type_requirement")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_findings.audit_id")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_findings.audit_findings_id")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_findings.audit_year")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_findings.dbkey")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_findings.is_public")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_findings.findings_text_id")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_findings.general_id")) - #hasheq(($ref . "#/parameters/select")) - #hasheq(($ref . "#/parameters/order")) - #hasheq(($ref . "#/parameters/range")) - #hasheq(($ref - . - "#/parameters/rangeUnit")) - #hasheq(($ref . "#/parameters/offset")) - #hasheq(($ref . "#/parameters/limit")) - #hasheq(($ref - . - "#/parameters/preferCount")))) - (responses - . - #hasheq((|200| - . - #hasheq((description . "OK") - (schema - . - #hasheq((items - . - #hasheq(($ref - . - "#/definitions/vw_findings"))) - (type - . - "array"))))) - (|206| - . - #hasheq((description - . - "Partial Content"))))) - (summary . "A finding from the audit") - (tags . ("vw_findings")))))) - (/vw_findings_text - . - #hasheq((get - . - #hasheq((parameters - . - (#hasheq(($ref - . - "#/parameters/rowFilter.vw_findings_text.id")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_findings_text.charts_tables")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_findings_text.finding_ref_number")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_findings_text.sequence_number")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_findings_text.text")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_findings_text.dbkey")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_findings_text.audit_year")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_findings_text.is_public")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_findings_text.general_id")) - #hasheq(($ref . "#/parameters/select")) - #hasheq(($ref . "#/parameters/order")) - #hasheq(($ref . "#/parameters/range")) - #hasheq(($ref - . - "#/parameters/rangeUnit")) - #hasheq(($ref . "#/parameters/offset")) - #hasheq(($ref . "#/parameters/limit")) - #hasheq(($ref - . - "#/parameters/preferCount")))) - (responses - . - #hasheq((|200| - . - #hasheq((description . "OK") - (schema - . - #hasheq((items - . - #hasheq(($ref - . - "#/definitions/vw_findings_text"))) - (type - . - "array"))))) - (|206| - . - #hasheq((description - . - "Partial Content"))))) - (summary . "Specific findings details") - (tags . ("vw_findings_text")))))) - (/vw_general - . - #hasheq((get - . - #hasheq((parameters - . - (#hasheq(($ref - . - "#/parameters/rowFilter.vw_general.id")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.report_id")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.auditee_certify_name")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.auditee_certify_title")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.auditee_contact_name")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.auditee_email")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.hist_auditee_fax")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.auditee_name")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.auditee_phone")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.auditee_contact_title")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.auditee_address_line_1")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.hist_auditee_address_line_2")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.auditee_city")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.auditee_state")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.auditee_ein")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.multiple_ein")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.auditee_duns")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.multiple_duns")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.auditee_uei")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.multiple_uei")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.auditee_addl_uei_list")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.auditee_addl_ein_list")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.auditee_addl_duns_list")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.ein_subcode")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.auditee_zip")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.auditor_phone")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.hist_auditor_fax")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.auditor_state")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.auditor_city")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.auditor_contact_title")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.auditor_address_line_1")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.hist_auditor_address_line_2")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.auditor_zip")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.auditor_country")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.auditor_contact_name")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.auditor_email")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.auditor_firm_name")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.auditor_foreign_addr")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.auditor_ein")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.multiple_auditors")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.pdf_url")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.cognizant_agency")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.oversight_agency")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.auditee_certified_date")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.auditor_certified_date")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.date_published")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.fac_accepted_date")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.form_date_received")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.initial_date_received")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.date_received")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.fy_end_date")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.fy_start_date")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.hist_previous_completed_on")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.hist_previous_date_published")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.hist_completed_date")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.hist_component_date_received")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.audit_year")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.audit_type")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.hist_reportable_condition")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.is_significant_deficiency")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.is_material_weakness")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.condition_or_deficiency_major_program")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.current_or_former_findings")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.dollar_threshold")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.is_duplicate_reports")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.entity_type")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.is_going_concern")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.is_low_risk")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.is_material_noncompliance")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.material_weakness")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.material_weakness_major_program")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.number_months")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.audit_period_covered")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.prior_year_schedule")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.questioned_costs")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.report_required")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.special_framework")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.is_special_framework_required")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.total_fed_expenditures")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.hist_type_of_entity")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.type_report_financial_statements")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.type_report_major_program")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.type_report_special_purpose_framework")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.suppression_code")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.type_audit_code")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.cfac_report_id")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.cfac_version")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.dbkey")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.is_public")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.modified_date")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.create_date")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.data_source")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.federal_agency_prefix")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_general.federal_award_extension")) - #hasheq(($ref . "#/parameters/select")) - #hasheq(($ref . "#/parameters/order")) - #hasheq(($ref . "#/parameters/range")) - #hasheq(($ref - . - "#/parameters/rangeUnit")) - #hasheq(($ref . "#/parameters/offset")) - #hasheq(($ref . "#/parameters/limit")) - #hasheq(($ref - . - "#/parameters/preferCount")))) - (responses - . - #hasheq((|200| - . - #hasheq((description . "OK") - (schema - . - #hasheq((items - . - #hasheq(($ref - . - "#/definitions/vw_general"))) - (type - . - "array"))))) - (|206| - . - #hasheq((description - . - "Partial Content"))))) - (tags . ("vw_general")))))) - (/vw_note - . - #hasheq((get - . - #hasheq((parameters - . - (#hasheq(($ref - . - "#/parameters/rowFilter.vw_note.auditee_uei")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_note.auditee_ein")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_note.fy_start_date")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_note.fy_end_date")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_note.audit_year")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_note.id")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_note.report_id")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_note.note_seq_number")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_note.type_id")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_note.note_index")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_note.content")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_note.note_title")) - #hasheq(($ref . "#/parameters/select")) - #hasheq(($ref . "#/parameters/order")) - #hasheq(($ref . "#/parameters/range")) - #hasheq(($ref - . - "#/parameters/rangeUnit")) - #hasheq(($ref . "#/parameters/offset")) - #hasheq(($ref . "#/parameters/limit")) - #hasheq(($ref - . - "#/parameters/preferCount")))) - (responses - . - #hasheq((|200| - . - #hasheq((description . "OK") - (schema - . - #hasheq((items - . - #hasheq(($ref - . - "#/definitions/vw_note"))) - (type - . - "array"))))) - (|206| - . - #hasheq((description - . - "Partial Content"))))) - (tags . ("vw_note")))))) - (/vw_passthrough - . - #hasheq((get - . - #hasheq((parameters - . - (#hasheq(($ref - . - "#/parameters/rowFilter.vw_passthrough.id")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_passthrough.passthrough_name")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_passthrough.passthrough_id")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_passthrough.audit_id")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_passthrough.audit_year")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_passthrough.dbkey")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_passthrough.is_public")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_passthrough.general_id")) - #hasheq(($ref . "#/parameters/select")) - #hasheq(($ref . "#/parameters/order")) - #hasheq(($ref . "#/parameters/range")) - #hasheq(($ref - . - "#/parameters/rangeUnit")) - #hasheq(($ref . "#/parameters/offset")) - #hasheq(($ref . "#/parameters/limit")) - #hasheq(($ref - . - "#/parameters/preferCount")))) - (responses - . - #hasheq((|200| - . - #hasheq((description . "OK") - (schema - . - #hasheq((items - . - #hasheq(($ref - . - "#/definitions/vw_passthrough"))) - (type - . - "array"))))) - (|206| - . - #hasheq((description - . - "Partial Content"))))) - (summary - . - "The pass-through entity information, when it is not a direct federal award") - (tags . ("vw_passthrough")))))) - (/vw_revision - . - #hasheq((get - . - #hasheq((parameters - . - (#hasheq(($ref - . - "#/parameters/rowFilter.vw_revision.id")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_revision.findings")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_revision.revision_id")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_revision.federal_awards")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_revision.general_info_explain")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_revision.federal_awards_explain")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_revision.notes_to_sefa_explain")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_revision.audit_info_explain")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_revision.findings_explain")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_revision.findings_text_explain")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_revision.cap_explain")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_revision.other_explain")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_revision.audit_info")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_revision.notes_to_sefa")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_revision.findings_text")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_revision.cap")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_revision.other")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_revision.general_info")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_revision.audit_year")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_revision.dbkey")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_revision.is_public")) - #hasheq(($ref - . - "#/parameters/rowFilter.vw_revision.general_id")) - #hasheq(($ref . "#/parameters/select")) - #hasheq(($ref . "#/parameters/order")) - #hasheq(($ref . "#/parameters/range")) - #hasheq(($ref - . - "#/parameters/rangeUnit")) - #hasheq(($ref . "#/parameters/offset")) - #hasheq(($ref . "#/parameters/limit")) - #hasheq(($ref - . - "#/parameters/preferCount")))) - (responses - . - #hasheq((|200| - . - #hasheq((description . "OK") - (schema - . - #hasheq((items - . - #hasheq(($ref - . - "#/definitions/vw_revision"))) - (type - . - "array"))))) - (|206| - . - #hasheq((description - . - "Partial Content"))))) - (summary - . - "Documents what was revised on the associated form from the previous version") - (tags . ("vw_revision")))))))) - (produces - . - ("application/json" "application/vnd.pgrst.object+json" "text/csv")) - (schemes . ("http")) - (swagger . "2.0")) diff --git a/tools/openapi2uswds/base.rkt b/tools/openapi2uswds/base.rkt deleted file mode 100644 index 80e053b6..00000000 --- a/tools/openapi2uswds/base.rkt +++ /dev/null @@ -1,39 +0,0 @@ -#lang racket -(require racket/generator - net/http-easy - json) - -(provide (all-defined-out)) - - -(struct Endpoint (name description fields) - #:transparent) -(struct Field (name description type format max_length) - #:transparent) -(struct empty-string ()) - - -(define (endpoints-in-order loe) - (sort loe (lambda (a b) (string hash? (and/c hash? immutable?)) -(define (hash->immutable-hash table) - (if (immutable? table) - table ;; If hash is already immutable, just return it - (for/hash ([(k v) (in-mutable-hash table)]) (values k v)))) - -(define (get-metadata url api-version key #:default [default "unknown"]) - (define headers (make-hash)) - (when api-version - (hash-set! headers 'Accept-Profile api-version)) - (define res (get (format "~a/metadata?key=eq.~a" url key) #:headers (hash->immutable-hash headers))) - (define arr (bytes->jsexpr (response-body res))) - (define h (cond [(empty? arr) (make-hash)] [(list? arr) (first arr)] [else (make-hash)])) - (hash-ref h 'value default)) diff --git a/tools/openapi2uswds/main.rkt b/tools/openapi2uswds/main.rkt deleted file mode 100644 index 2db47fb6..00000000 --- a/tools/openapi2uswds/main.rkt +++ /dev/null @@ -1,254 +0,0 @@ -#lang racket -(require "base.rkt" - "template.rkt") -(require - data/order - json - net/http-easy - racket/pretty - xml) - -;; -;; json->tree :: JSON object (as native Racket data typeS) -;; -;; Returns a list of Endpoint structures. -(define (json->tree json) - (for/list ([(endpoint properties) (hash-ref json 'definitions)]) - (Endpoint (symbol->string endpoint) - (hash-ref properties 'description (empty-string)) - (filter Field? - (for/list ([(field-name field-properties) (hash-ref properties 'properties)]) - (when (hash? field-properties) - (Field (symbol->string field-name) - (hash-ref field-properties 'description (empty-string)) - (hash-ref field-properties 'type (empty-string)) - (hash-ref field-properties 'format (empty-string)) - (hash-ref field-properties 'max-length (empty-string))))))))) - -;; -;; process-file-or-url :: url filename -;; -;; Consumes a JSON OpenAPI spec (either as a URL or a file in the filesystem) -;; and returns a representation of that JSON object as native Racket data structures -;; -(define (process-file-or-url url - json-file - #:input-directory input-directory - #:api-version api-version - #:jwt-token jwt-token - #:api-key api-key - ) - (cond - [json-file - (define fp (open-input-file (build-path - input-directory - json-file))) - (read-json fp)] - [url - (define headers (make-hash)) - (when api-version - (hash-set! headers 'Accept-Profile api-version)) - (when jwt-token - (hash-set! headers 'Authorization (format "Bearer ~a" jwt-token))) - (when api-key - (hash-set! headers 'X-API-Key api-key)) - - (define res (get url #:headers (hash->immutable-hash headers))) - - (cond - [(= 200 (response-status-code res)) - 'continue] - [(= 400 (response-status-code res)) - (printf "Bad response: 400~n") - (exit 1)]) - - (define body (response-body res)) - (response-close! res) - (with-input-from-string (bytes->string/utf-8 body) - (λ () (read-json)))])) - -(define (write-documentation-to-html #:title title - #:version version - #:document assembled-document - #:input-directory input-directory - #:output-directory output-directory - #:destination-filename destination-filename - #:template-filename [template-filename false]) - - - (define outfp (open-output-file (build-path - output-directory - destination-filename) #:mode 'text #:exists 'replace)) - - - - (cond - [template-filename - (define templatep (open-input-file (build-path - input-directory - template-filename))) - (display "" outfp) - (for ([line (port->lines templatep)]) - (cond - [(regexp-match "" line) - (displayln (format title version) outfp)] - [(regexp-match "" line) - (displayln (format title version) outfp)] - [(regexp-match "" line) - (display-xml/content (xexpr->xml assembled-document) - outfp - #:indentation 'classic)] - [else (displayln line outfp)]))] - [else - (display-xml/content (xexpr->xml assembled-document) - outfp - #:indentation 'classic)]) - - - (close-output-port outfp) - ) - -;; -;; process-openapi -;; -;; -(define (process-openapi #:url url - #:file json-file - #:title [title "FAC API version ~a documentation"] - #:version [version "1.0.0"] - #:destination-filename destination-filename - #:template-filename template-filename - #:input-directory input-directory - #:output-directory output-directory - #:api-version api-version - #:jwt-token [jwt-token false] - #:api-key [api-key false] - ) - - ;; Takes a file or URL for an OpenAPI JSON spec - ;; and turns it into a list of Endpoint objects. - (define json (process-file-or-url url - json-file - #:input-directory input-directory - #:api-version api-version - #:jwt-token jwt-token - #:api-key api-key - )) - (define tree (json->tree json)) - - ;; Assembles the tree of documentation that will - ;; then be embedded into the template. - (define full - (render #:endpoints tree - #:title title - #:version version)) - - (define body - (render-body #:endpoints tree - #:title title - #:version version - )) - - (define nav - (render-nav #:endpoints tree - #:title title - #:version version - )) - - - ;; Embeds content into the template and writes it out to a file. - (write-documentation-to-html #:document full - #:title title - #:version version - #:destination-filename (format "~a.html" destination-filename) - #:template-filename template-filename - #:input-directory input-directory - #:output-directory output-directory) - - (write-documentation-to-html #:document body - #:title title - #:version version - #:destination-filename (format "~a-body.html" destination-filename) - #:input-directory input-directory - #:output-directory output-directory) - (write-documentation-to-html #:document nav - #:title title - #:version version - #:destination-filename (format "~a-nav.html" destination-filename) - #:input-directory input-directory - #:output-directory output-directory) - - ) - -;; Need to provide this for the submod below. -(provide process-openapi) - -;; The CLI module makes composing the -;; command-line interface straight-forward. -(module* main cli - (require (submod "..")) - (require "base.rkt") - - ;; If they user doesn't provide these, we will. - (define default-destination "api-documentation") - (define default-template "template.html") - (define default-output-directory ".") - (define default-input-directory ".") - - - (flag (openapi-url url) - ("-u" "--url" "OpenAPI URL") - (openapi-url url)) - - (flag (openapi-file fname) - ("-f" "--file" "OpenAPI file (JSON)") - (openapi-file fname)) - - (flag (destination-file fname) - ("-o" "--outfile" "Output filename base") - (destination-file fname)) - - (flag (template-file tfname) - ("-t" "--template" "Template filename") - (template-file tfname)) - - (flag (output-directory od) - ("-d" "--output-directory" "Output directory") - (output-directory od)) - (flag (input-directory id) - ("-i" "--input-directory" "Input directory") - (input-directory id)) - - - (flag (api-version apiv) - ("-a" "--api-version" "API version") - (api-version apiv)) - - (flag (jwt-token jwt) - ("-j" "--jwt-token" "JWT Token") - (jwt-token jwt)) - - (flag (api-key apikey) - ("-k" "--api-key" "api.data.gov key") - (api-key apikey)) - - (program (openapi-to-uswds) - (cond - [(or (openapi-file) (openapi-url)) - (process-openapi - #:url (openapi-url) - #:file (openapi-file) - #:version (or (api-version) (get-metadata (openapi-url) (api-version) "version" #:default "1.0.0")) - #:destination-filename (or (destination-file) default-destination) - #:template-filename (or (template-file) default-template) - #:output-directory (or (output-directory) default-output-directory) - #:input-directory (or (input-directory) default-input-directory) - #:api-version (api-version) - #:jwt-token (jwt-token) - #:api-key (api-key) - )] - [else - (printf "You must provide an OpenAPI spec, either as a filename or URL. Exiting.~n")]) - ) - - (run openapi-to-uswds)) diff --git a/tools/openapi2uswds/template.html b/tools/openapi2uswds/template.html deleted file mode 100644 index 7ef2bfcd..00000000 --- a/tools/openapi2uswds/template.html +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - <!-- TITLE --> - - - - - - - \ No newline at end of file diff --git a/tools/openapi2uswds/template.rkt b/tools/openapi2uswds/template.rkt deleted file mode 100644 index 1bdb1e29..00000000 --- a/tools/openapi2uswds/template.rkt +++ /dev/null @@ -1,125 +0,0 @@ -#lang racket -(require "base.rkt" - gregor) -(provide render) - -(provide (all-defined-out)) - -(define (render #:endpoints [endpoints '()] - ;;#:definitions [definitions (hash)] - #:title title - #:version version - ) - ` (div ([class "usa-section "]) - (div ([class "grid-row grid-gap"]) - (div ([class "grid-col-2 margin-bottom-4 tablet:margin-bottom-0 padding-2"]) - (h2 ([class "padding-1"]) - "Endpoints") - ,(endpoints->sidenav (endpoints-in-order endpoints)) - (p ([class "padding-1"]) - (em - ,(format "Last renedered ~a" (~t (today #:tz "America/New_York") - "E, MMMM d, y")) - ))) - (main ([class "desktop:grid-col-10 usa-prose usa-layout-docs__main"] ;; usa-layout-docs - [id "main-content"]) - (h1 ,(format title version)) - (h2 ([id "api-endpoints"]) - "API endpoints") - ,(render-endpoints (endpoints-in-order endpoints)) - )) - )) - -(define (render-body #:endpoints [endpoints '()] - ;;#:definitions [definitions (hash)] - #:title title - #:version version - ) - `(main ([class "usa-prose usa-layout-docs__main"] ;; usa-layout-docs - [id "main-content"]) - ,(render-endpoints (endpoints-in-order endpoints)) - )) - -(define (render-nav #:endpoints [endpoints '()] - ;;#:definitions [definitions (hash)] - #:title title - #:version version - ) - (endpoints->sidenav (endpoints-in-order endpoints))) - -;;;;; - -(define (->s o) - (cond - [(empty-string? o) ""] - [else - (~a o)])) - -;; -;; Navigation -;; -(define (endpoints->index endpoints) - `(ul - ,@(for/list ([endpoint endpoints]) - `(li (a ([href ,(format "#endpoint-~a" (Endpoint-name endpoint))]) - ,(~a (Endpoint-name endpoint))))))) - -(define (endpoints->sidenav endpoints) - `(nav ([aria-label "Side navigation"]) - (ul ([class "usa-sidenav"]) - ,@(for/list ([endpoint endpoints]) - `(li ([class "usa-sidenav__item"]) - (a ([href ,(format "#endpoint-~a" (Endpoint-name endpoint))]) - ,(->s (Endpoint-name endpoint)))))))) - - -(define (render-endpoints endpoints) - (define column-widths '(3 2 2 5)) - (define (grid-col ndx) - (~a (format "grid-col-~a" (list-ref column-widths ndx)))) - - (define pieces - (for/list ([endpoint endpoints] - [ndx (length endpoints)]) - (define toggle-target (format "accordion-endpoint-~a" ndx)) - `(div - (a ([name ,(format "endpoint-~a" (Endpoint-name endpoint))])) - ;; Endpoint name - (h3 ,(->s (Endpoint-name endpoint))) - ;; Collapse the parameters - (h4 ([class "usa-accordion__heading"] - ) - (button ([type "button"] - [class "usa-accordion__button"] - [aria-expanded "false"] - [aria-controls ,toggle-target] - ) - ,(->s (format "Query params on the ~a endpoint" - (Endpoint-name endpoint) - )))) - (div ([id ,toggle-target] - [class "usa-accordion__content usa-prose"]) - (p ,(->s (Endpoint-description endpoint))) - (h3 "Fields") - (div ([class "grid-row"]) - (div ([class ,(grid-col 0)]) "Field name") - (div ([class ,(grid-col 1)]) "Type") - (div ([class ,(grid-col 2)]) "Format") - (div ([class ,(grid-col 3)]) "Description")) - ,@(for/list ([field (fieldnames-in-order (Endpoint-fields endpoint))]) - `(div ([class "grid-row"]) - (div ([class ,(grid-col 0)]) - (h4 ,(->s (Field-name field)))) - (div ([class ,(grid-col 1)]) - (br) - (span ([class "usa-tag"]) - ,(->s (Field-type field)))) - (div ([class ,(grid-col 2)]) - ,(->s (Field-format field))) - (div ([class ,(grid-col 3)]) - (p ,(->s (Field-description field))))) - ))))) - - `(div ([class "usa-accordion padding-4"]) - ,@pieces - ))