-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adding contact_title & is_aicpa_audit_guide_included(DUP_REPORTS) to …
…API Response (#2497) * Add API 1_0_2 * comma fix +add api v1_0_2 to api_versions.py * Updating instructions * reformat deprecated in api_versions.py * remove Apple_M1 --------- Co-authored-by: Phil Dominguez <“philip.dominguez@gsa.gov”>
- Loading branch information
Edward Zapata
and
Phil Dominguez
authored
Oct 17, 2023
1 parent
cbc4ebd
commit 9f2a27c
Showing
12 changed files
with
499 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
DO | ||
$do$ | ||
BEGIN | ||
IF EXISTS ( | ||
SELECT FROM pg_catalog.pg_roles | ||
WHERE rolname = 'authenticator') THEN | ||
RAISE NOTICE 'Role "authenticator" already exists. Skipping.'; | ||
ELSE | ||
CREATE ROLE authenticator LOGIN NOINHERIT NOCREATEDB NOCREATEROLE NOSUPERUSER; | ||
END IF; | ||
END | ||
$do$; | ||
|
||
DO | ||
$do$ | ||
BEGIN | ||
IF EXISTS ( | ||
SELECT FROM pg_catalog.pg_roles | ||
WHERE rolname = 'api_fac_gov') THEN | ||
RAISE NOTICE 'Role "api_fac_gov" already exists. Skipping.'; | ||
ELSE | ||
CREATE ROLE api_fac_gov NOLOGIN; | ||
END IF; | ||
END | ||
$do$; | ||
|
||
GRANT api_fac_gov TO authenticator; | ||
|
||
NOTIFY pgrst, 'reload schema'; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
-- WARNING | ||
-- Under PostgreSQL 12, the functions below work. | ||
-- Under PostgreSQL 14, these will break. | ||
-- | ||
-- Note the differences: | ||
-- | ||
-- raise info 'Works under PostgreSQL 12'; | ||
-- raise info 'request.header.x-magic %', (SELECT current_setting('request.header.x-magic', true)); | ||
-- raise info 'request.jwt.claim.expires %', (SELECT current_setting('request.jwt.claim.expires', true)); | ||
-- raise info 'Works under PostgreSQL 14'; | ||
-- raise info 'request.headers::json->>x-magic %', (SELECT current_setting('request.headers', true)::json->>'x-magic'); | ||
-- raise info 'request.jwt.claims::json->expires %', (SELECT current_setting('request.jwt.claims', true)::json->>'expires'); | ||
-- | ||
-- To quote the work of Dav Pilkey, "remember this now." | ||
|
||
create or replace function getter(base text, item text) returns text | ||
as $getter$ | ||
begin | ||
return current_setting(concat(base, '.', item), true); | ||
end; | ||
$getter$ language plpgsql; | ||
|
||
create or replace function get_jwt_claim(item text) returns text | ||
as $get_jwt_claim$ | ||
begin | ||
return getter('request.jwt.claim', item); | ||
end; | ||
$get_jwt_claim$ language plpgsql; | ||
|
||
create or replace function get_header(item text) returns text | ||
as $get_header$ | ||
begin | ||
raise info 'request.header % %', item, getter('request.header', item); | ||
return getter('request.header', item); | ||
end; | ||
$get_header$ LANGUAGE plpgsql; | ||
|
||
-- https://api-umbrella.readthedocs.io/en/latest/admin/api-backends/http-headers.html | ||
-- I'd like to go to a model where we provide the API keys. | ||
-- However, for now, we're going to look for a role attached to an api.data.gov account. | ||
-- These come in on `X-Api-Roles` as a comma-separated string. | ||
create or replace function has_tribal_data_access() returns boolean | ||
as $has_tribal_data_access$ | ||
declare | ||
roles text; | ||
begin | ||
select get_header('x-api-roles') into roles; | ||
return (roles like '%fac_gov_tribal_access%'); | ||
end; | ||
$has_tribal_data_access$ LANGUAGE plpgsql; | ||
|
||
create or replace function has_public_data_access_only() returns boolean | ||
as $has_public_data_access_only$ | ||
begin | ||
return not has_tribal_data_access(); | ||
end; | ||
$has_public_data_access_only$ LANGUAGE plpgsql; | ||
|
||
|
||
NOTIFY pgrst, 'reload schema'; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
begin; | ||
|
||
do | ||
$$ | ||
begin | ||
DROP SCHEMA IF EXISTS api_v1_0_2 CASCADE; | ||
|
||
if not exists (select schema_name from information_schema.schemata where schema_name = 'api_v1_0_2') then | ||
create schema api_v1_0_2; | ||
|
||
-- Grant access to tables and views | ||
alter default privileges | ||
in schema api_v1_0_2 | ||
grant select | ||
-- this includes views | ||
on tables | ||
to api_fac_gov; | ||
|
||
-- Grant access to sequences, if we have them | ||
grant usage on schema api_v1_0_2 to api_fac_gov; | ||
grant select, usage on all sequences in schema api_v1_0_2 to api_fac_gov; | ||
alter default privileges | ||
in schema api_v1_0_2 | ||
grant select, usage | ||
on sequences | ||
to api_fac_gov; | ||
end if; | ||
end | ||
$$ | ||
; | ||
|
||
-- This is the description | ||
COMMENT ON SCHEMA api_v1_0_2 IS | ||
'The FAC dissemation API version 1.0.2.' | ||
; | ||
|
||
-- https://postgrest.org/en/stable/references/api/openapi.html | ||
-- This is the title | ||
COMMENT ON SCHEMA api_v1_0_2 IS | ||
$$v1.0.2 | ||
|
||
A RESTful API that serves data from the SF-SAC.$$; | ||
|
||
commit; | ||
|
||
notify pgrst, | ||
'reload schema'; | ||
|
Oops, something went wrong.