diff --git a/api.yaml b/api.yaml index 0212478..bb0f5d4 100644 --- a/api.yaml +++ b/api.yaml @@ -528,6 +528,9 @@ components: description: Addresses associated with this entry items: $ref: '#/components/schemas/Address' + dummyPassword: + type: string + description: Example protected field EntryPatch: type: object properties: @@ -546,6 +549,9 @@ components: type: string nullable: true minLength: 6 + apiKey: + type: string + nullable: true symbols: type: array nullable: true diff --git a/api/directory.gen.go b/api/directory.gen.go index 8ef7b48..14559ba 100644 --- a/api/directory.gen.go +++ b/api/directory.gen.go @@ -174,6 +174,9 @@ type Entry struct { // Description Detailed description of the entity described by this entry Description *string `json:"description,omitempty"` + // DummyPassword Example protected field + DummyPassword *string `json:"dummyPassword,omitempty"` + // Email Main contact email Email *string `json:"email,omitempty"` @@ -193,6 +196,7 @@ type Entry struct { // EntryPatch defines model for EntryPatch. type EntryPatch struct { Addresses nullable.Nullable[[]AddressPatch] `json:"addresses,omitempty"` + ApiKey nullable.Nullable[string] `json:"apiKey,omitempty"` ContactName nullable.Nullable[string] `json:"contactName,omitempty"` Description nullable.Nullable[string] `json:"description,omitempty"` Email nullable.Nullable[string] `json:"email,omitempty"` @@ -1645,39 +1649,39 @@ func (sh *strictHandler) UpdateEntry(w http.ResponseWriter, r *http.Request, key // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ - "H4sIAAAAAAAC/+xaS2/jOBL+KwRngd4FtG1nJjsH35zHLoLJToJ57CXIgRZLMccSqZBUuoXA/33Bh2w9", - "KFlJ23k0ckpMUsWPVV8Vq0p6xLHIcsGBa4VnjzgnkmSgQdpflyxj2vxDQcWS5ZoJjmduGCVCopzcMU7s", - "cISZmbsvQJY4wpxkgGc4tRIirOIlZMSJSkiRajw7mkY4ETIjGs8w4/qnH3GEM/KVZUVmZqfTCGeMu5/T", - "COsyB7cS7kDi9TrCV0miIADQjbcQor8nTCqNmIYMMYWm/+jBLJzUOuguzmFgwLUsL4VYFfkvUHYB/gIl", - "0gKlQqxQkSO7PELA9BIk+sToJyQk+qTKbCHSTxXMnOjlFuUKDGQJ9wWTQPFMywLqkIEbeDd4Uf6TURyZ", - "v04evt1AVloyftdG/D+SFtDFbIeRSBCjBp0TZk5B4hiUcodAizIM98EKHQLcxrSuJi0V5wtRWEvnUuQg", - "NQM7HIuCBwjwh9AkRbzIFiAtZA2ZQowjvQQkQRkCNtn38zHuWjLCHL7qS8ZXISfgK3N6I9GsMkyz6nHi", - "Fe5oOcK5hIfd0swqJgq1W+K6rs8br4ytecXiL4i12XhOqQRlNUbS9CrBs5u2JhntovqTs/sCkOXPRllF", - "YX9LIPSKp2VlyGFojOLbdfSI/yYhwTP8w2QbdibeyhMP8noLa327xX5aPdAlgYL7Lvbf4b4AHkPFAhMM", - "hKRg4KFa0AsEoS4N3MjWqf5YCimKu2VCpCH1pYhJyrSh/pya0KC0JJo9wFwCwRG+FkqT9FRQs/jUWEmW", - "/teVcfmAS0beYwKO0dSsObx/unpmgAHXRMfLfdKg67XfYuTrBpYmMtLigYNrHNv8M2LPLYM2FsVESlKG", - "LHzmr6kI/75keW4OF+ETlqbuvz6ztYxjZ0PmOBVcCamZ2ax9UBtIG7dOWNfRsLGAa5YwkAGjZYxfAr/T", - "Szw72unJVQhvb3TGVJ6SEtnZtsyd0cBLHdbNhq0jFcSLNCWLFA57kg7gc64lA/UbqFxwBQHqVpfXIEvt", - "ImPVitOjyH1uldFhdEvjDkEl+7bnEGWv17kfTbXNqylElBIxIxoo+sL0Eukl8/kAjp7koiHPjAXXJNa/", - "Bk1nRs0V6RehHKSyyeigEaOmlA4fQBOWAkW1YbOJuZyNV+nSzyyAokXZPO6OjSEjLO1u+V/C+OYQbk1D", - "1M8hUZzmgvlA2L785AOLDVq/ZA8m8jLPvciQqfacQ/T5a2V0Yw/GlWa6cCaSaCEJj/3pKJMQayFLn5pW", - "NlO7reSS25Bi3cQ+1OmS8V2OOxwqrdP2RMmG5z7FCZ28dW847fPMpk53xuKWCz7x6Y0fNZ1k93N1p3kO", - "70drhwfVMkS1J/BmJIrQbXVBu1z51qyvm+wHNm4HkDddjLSt3spXg6R4xbT6iXB3p9mBwmNL6c5ElT0P", - "693nV75WqTYKUsUFx7fNEOeIbU3X3PM1+TAEbsj6hV4KaUrZLrw8BxkTBcij6A1mz3m2XdU6QVEN0K1t", - "CTGeCMs0pk3Qw2fVJc/UEs2vL0wRDFK5bY8+Tz9PDS6RAyc5wzP8kx2KbHfKnngS+3LDNqHuQu3E30AX", - "kitE0hRtVtvso1Ag0ZKoqgemxWdsd5O25WhCLf4P6NPNFlGjw3rT3mkF5RchqRGEEpZqkLWGWqtNeY8H", - "umcRVrq0CjJMwoYuzZ18o7XWI/NdJrO1tAce3dLd2UBZ3xrruurIKv3H6dR177j2HR2S5ymLrdYmfymX", - "Emx3GHUz1mrqblbVTjhqVSZKmdKowmeePe7A0/BVT/KUsBawQNOyuc0JocgQG5R2ko/2JfnfQi4YpcCN", - "3H/tD/EF1yA5SZEC+QASgZTCdbVVkWXEFIlhj7AdTqECDnQqgWhTJyIOXzYPFFnHV+aUntZnveZOBC2f", - "xJexNBmkhRaIUNrpWa87XD7aG7YLugPThqURThlfWQC1AFNkJ+XFmRls6vWuvqQVhNxlZGA50Z8XgpY/", - "TJiF8l6cYe7iLwXOgL6CQ/Qy3CzbXjGTR0bXzj9S0NA11Jkd77VV58K4OPPdjxppvezgaxhGB9/B7Eo7", - "unH8uOvtNTQOCsUfNBpHI2f+uj0XJbo4M0h8ZtKbWzyPKwmYRPVlqDJ9+RD+vi/1Y+dd+5D7q9AoEQWn", - "r5ksBHmdV6VSu2KgREPjmU624NZ8mwMUVsbhPOCQ+YtvAnWt4hRDUcIgpWpEBhOI4jUvcjp6x1H8O3Gk", - "kE/Y/ALcC6hRBaxfixIpMlvDqlJpMP8S/ZSa1r/0es2KNuQlWzAT9/XSiIX+M6KDXlntd4QBCthm/jst", - "Rl87cQowfGw5Wr216VSi537iEEHcv7XtI8GbKT0dnJ6q0072Fpzb2fH1ZuRj3OZldFNqUZv8KGIPXMSC", - "p+j2fpk8rqBcTx7tV0YjytiQoW52RuPWt5Mj4nfn28VxdWr1VvijRH1Gidp+ub6zTn1LZJi+VBx///f4", - "d1eDBom7/aB5REnKe1KGP3tvpxfk+YFSlYOWms4QH1Xm26oy+SYDMNN2vaNyIVM8wxOpKJN4fbv+fwAA", - "AP//Mvbv60QyAAA=", + "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", } // GetSwagger returns the content of the embedded swagger specification file diff --git a/api/entries.go b/api/entries.go index aba2e97..dac0cb5 100644 --- a/api/entries.go +++ b/api/entries.go @@ -36,13 +36,14 @@ func scanEntryRow(rows pgx.Rows) (Entry, int, error) { description *string contactName *string email *string + dummyPassword *string symbolsJSON [][]byte endpointsJSON [][]byte addressesJSON [][]byte totalCount int ) - if err := rows.Scan(&id, &name, &description, &contactName, &email, &symbolsJSON, &endpointsJSON, &addressesJSON, &totalCount); err != nil { + if err := rows.Scan(&id, &name, &description, &contactName, &email, &dummyPassword, &symbolsJSON, &endpointsJSON, &addressesJSON, &totalCount); err != nil { return Entry{}, 0, err } @@ -78,14 +79,15 @@ func scanEntryRow(rows pgx.Rows) (Entry, int, error) { } return Entry{ - Id: &id, - Name: name, - Description: description, - ContactName: contactName, - Email: email, - Symbols: symbolsPtr, - Endpoints: endpointsPtr, - Addresses: addressesPtr, + Id: &id, + Name: name, + Description: description, + ContactName: contactName, + Email: email, + DummyPassword: dummyPassword, + Symbols: symbolsPtr, + Endpoints: endpointsPtr, + Addresses: addressesPtr, }, totalCount, nil } @@ -121,6 +123,7 @@ func buildEntrySQL(whereClause string) string { e.description, e.contact_name, e.email, + e.dummy_password, ARRAY(SELECT row_to_json(s) FROM symbols s WHERE s.owner = e.id ORDER BY s.id) as symbols, ARRAY(SELECT row_to_json(ep) FROM service_endpoints ep WHERE ep.entry = e.id ORDER BY ep.id) as endpoints, ARRAY( @@ -310,7 +313,9 @@ func (a ApiImpl) GetEntry(ctx context.Context, request GetEntryRequestObject) (G } func sanitizeEntry(entry *Entry) { - //do nada til we have some specifically sensitive fields + if entry.DummyPassword != nil { + *entry.DummyPassword = "" + } } func (a ApiImpl) AddEntry(ctx context.Context, request AddEntryRequestObject) (AddEntryResponseObject, error) { @@ -331,9 +336,10 @@ func (a ApiImpl) AddEntry(ctx context.Context, request AddEntryRequestObject) (A qtx := a.queries.WithTx(tx) toInsert := db.CreateEntryParams{ - Name: request.Body.Name, - ContactName: request.Body.ContactName, - Email: request.Body.Email, + Name: request.Body.Name, + ContactName: request.Body.ContactName, + Email: request.Body.Email, + DummyPassword: request.Body.DummyPassword, } insertedEntry, err := qtx.CreateEntry(ctx, toInsert) if err != nil { diff --git a/db/models.go b/db/models.go index 70d764b..bee29ce 100644 --- a/db/models.go +++ b/db/models.go @@ -37,6 +37,7 @@ type Entry struct { ContactName *string Email *string Phone *string + DummyPassword *string } type Membership struct { diff --git a/db/query.sql.go b/db/query.sql.go index fad2b84..3c906dd 100644 --- a/db/query.sql.go +++ b/db/query.sql.go @@ -83,21 +83,27 @@ func (q *Queries) CreateConsortium(ctx context.Context, arg CreateConsortiumPara const createEntry = `-- name: CreateEntry :one INSERT INTO entries ( - name, contact_name, email + name, contact_name, email, dummy_password ) VALUES ( - $1, $2, $3 + $1, $2, $3, $4 ) -RETURNING id, parent, name, description, lms_location_code, contact_name, email, phone +RETURNING id, parent, name, description, lms_location_code, contact_name, email, phone, dummy_password ` type CreateEntryParams struct { - Name string - ContactName *string - Email *string + Name string + ContactName *string + Email *string + DummyPassword *string } func (q *Queries) CreateEntry(ctx context.Context, arg CreateEntryParams) (Entry, error) { - row := q.db.QueryRow(ctx, createEntry, arg.Name, arg.ContactName, arg.Email) + row := q.db.QueryRow(ctx, createEntry, + arg.Name, + arg.ContactName, + arg.Email, + arg.DummyPassword, + ) var i Entry err := row.Scan( &i.ID, @@ -108,6 +114,7 @@ func (q *Queries) CreateEntry(ctx context.Context, arg CreateEntryParams) (Entry &i.ContactName, &i.Email, &i.Phone, + &i.DummyPassword, ) return i, err } @@ -226,7 +233,7 @@ func (q *Queries) DeleteOtherOwnedSymbols(ctx context.Context, arg DeleteOtherOw } const entryByIdForUpdate = `-- name: EntryByIdForUpdate :one -SELECT id, parent, name, description, lms_location_code, contact_name, email, phone FROM entries WHERE id = $1 LIMIT 1 FOR UPDATE +SELECT id, parent, name, description, lms_location_code, contact_name, email, phone, dummy_password FROM entries WHERE id = $1 LIMIT 1 FOR UPDATE ` func (q *Queries) EntryByIdForUpdate(ctx context.Context, id uuid.UUID) (Entry, error) { @@ -241,12 +248,13 @@ func (q *Queries) EntryByIdForUpdate(ctx context.Context, id uuid.UUID) (Entry, &i.ContactName, &i.Email, &i.Phone, + &i.DummyPassword, ) return i, err } const entryBySymbol = `-- name: EntryBySymbol :one -SELECT e.id, e.parent, e.name, e.description, e.lms_location_code, e.contact_name, e.email, e.phone FROM entries e, symbols s WHERE e.id = s.owner AND s.authority = $1 AND s.symbol = $2 LIMIT 1 +SELECT e.id, e.parent, e.name, e.description, e.lms_location_code, e.contact_name, e.email, e.phone, e.dummy_password FROM entries e, symbols s WHERE e.id = s.owner AND s.authority = $1 AND s.symbol = $2 LIMIT 1 ` type EntryBySymbolParams struct { @@ -266,12 +274,13 @@ func (q *Queries) EntryBySymbol(ctx context.Context, arg EntryBySymbolParams) (E &i.ContactName, &i.Email, &i.Phone, + &i.DummyPassword, ) return i, err } const entryBySymbolForUpdate = `-- name: EntryBySymbolForUpdate :one -SELECT e.id, e.parent, e.name, e.description, e.lms_location_code, e.contact_name, e.email, e.phone FROM entries e, symbols s WHERE e.id = s.owner AND s.authority = $1 AND s.symbol = $2 LIMIT 1 FOR UPDATE OF e +SELECT e.id, e.parent, e.name, e.description, e.lms_location_code, e.contact_name, e.email, e.phone, e.dummy_password FROM entries e, symbols s WHERE e.id = s.owner AND s.authority = $1 AND s.symbol = $2 LIMIT 1 FOR UPDATE OF e ` type EntryBySymbolForUpdateParams struct { @@ -291,6 +300,7 @@ func (q *Queries) EntryBySymbolForUpdate(ctx context.Context, arg EntryBySymbolF &i.ContactName, &i.Email, &i.Phone, + &i.DummyPassword, ) return i, err } @@ -346,16 +356,18 @@ SET name = $1, description = $2, contact_name = $3, - email = $4 -WHERE id = $5 + email = $4, + dummy_password = $5 +WHERE id = $6 ` type UpdateEntryParams struct { - Name string - Description *string - ContactName *string - Email *string - ID uuid.UUID + Name string + Description *string + ContactName *string + Email *string + DummyPassword *string + ID uuid.UUID } func (q *Queries) UpdateEntry(ctx context.Context, arg UpdateEntryParams) error { @@ -364,6 +376,7 @@ func (q *Queries) UpdateEntry(ctx context.Context, arg UpdateEntryParams) error arg.Description, arg.ContactName, arg.Email, + arg.DummyPassword, arg.ID, ) return err diff --git a/migrations/001_initial_schema.up.sql b/migrations/001_initial_schema.up.sql index abe6034..0080b6f 100644 --- a/migrations/001_initial_schema.up.sql +++ b/migrations/001_initial_schema.up.sql @@ -6,7 +6,8 @@ CREATE TABLE IF NOT EXISTS entries ( lms_location_code varchar(255), contact_name varchar(255), email varchar(255), - phone varchar(255) + phone varchar(255), + dummy_password varchar(255) ); CREATE TABLE IF NOT EXISTS symbols ( diff --git a/query.sql b/query.sql index 9ec68d8..8530b71 100644 --- a/query.sql +++ b/query.sql @@ -9,9 +9,9 @@ SELECT e.* FROM entries e, symbols s WHERE e.id = s.owner AND s.authority = @aut -- name: CreateEntry :one INSERT INTO entries ( - name, contact_name, email + name, contact_name, email, dummy_password ) VALUES ( - $1, $2, $3 + $1, $2, $3, $4 ) RETURNING *; @@ -21,7 +21,8 @@ SET name = @name, description = @description, contact_name = @contact_name, - email = @email + email = @email, + dummy_password = @dummy_password WHERE id = @id; -- name: DeleteEntryById :exec diff --git a/test/apifixtures/entries-limit-1-offset-1.get.res.json b/test/apifixtures/entries-limit-1-offset-1.get.res.json index 0254839..5fe8f15 100644 --- a/test/apifixtures/entries-limit-1-offset-1.get.res.json +++ b/test/apifixtures/entries-limit-1-offset-1.get.res.json @@ -4,6 +4,7 @@ "id": "00000000-0000-0000-0000-000000000003", "name": "Eine Weitere Einrichtung", "contactName": "Klaus", + "dummyPassword":"", "addresses": [ "<>", { diff --git a/test/apifixtures/entries-limit-2.get.res.json b/test/apifixtures/entries-limit-2.get.res.json index c7076d8..1315ade 100644 --- a/test/apifixtures/entries-limit-2.get.res.json +++ b/test/apifixtures/entries-limit-2.get.res.json @@ -31,6 +31,7 @@ "id": "00000000-0000-0000-0000-000000000003", "name": "Eine Weitere Einrichtung", "contactName": "Klaus", + "dummyPassword":"", "addresses": [ "<>", { diff --git a/test/apifixtures/entries.get.res.json b/test/apifixtures/entries.get.res.json index 6d3e0f2..6914c1c 100644 --- a/test/apifixtures/entries.get.res.json +++ b/test/apifixtures/entries.get.res.json @@ -31,6 +31,7 @@ "id": "00000000-0000-0000-0000-000000000003", "name": "Eine Weitere Einrichtung", "contactName": "Klaus", + "dummyPassword": "chicken_satellite_banana_penguin", "addresses": [ "<>", { diff --git a/test/apifixtures/entry.get.res-2.json b/test/apifixtures/entry.get.res-2.json new file mode 100644 index 0000000..a59117a --- /dev/null +++ b/test/apifixtures/entry.get.res-2.json @@ -0,0 +1,27 @@ +{ + "id":"00000000-0000-0000-0000-000000000003", + "name":"Eine Weitere Einrichtung", + "contactName":"Klaus", + "dummyPassword":"", + "addresses": [ + { + "id": "00000003-0000-0000-0000-000000000001", + "type": "Default", + "addressComponents": [ + {"seq": 0, "type": "Thoroughfare", "value": "Unter den Linden 1"}, + {"seq": 1, "type": "Locality", "value": "Berlin"}, + {"seq": 2, "type": "PostalCode", "value": "10117"}, + {"seq": 3, "type": "CountryCode", "value": "DE"} + ] + }, + { + "id" : "00000003-0000-0000-0000-000000000002", + "type": "Billing", + "addressComponents": [ + {"seq": 0, "type": "Thoroughfare", "value": "Musterstraße 99"}, + {"seq": 1, "type": "Locality", "value": "München"}, + {"seq": 2, "type": "PostalCode", "value": "80331"} + ] + } + ] +} \ No newline at end of file diff --git a/test/dbfixtures/entries.yml b/test/dbfixtures/entries.yml index 8e22cd4..3bccad4 100644 --- a/test/dbfixtures/entries.yml +++ b/test/dbfixtures/entries.yml @@ -6,4 +6,5 @@ contact_name: Bob - id: 00000000-0000-0000-0000-000000000003 name: Eine Weitere Einrichtung - contact_name: Klaus \ No newline at end of file + contact_name: Klaus + dummy_password: chicken_satellite_banana_penguin diff --git a/test/entries_test.go b/test/entries_test.go index 51321bc..9ff64c5 100644 --- a/test/entries_test.go +++ b/test/entries_test.go @@ -35,6 +35,14 @@ func TestEntryCases(t *testing.T) { resFile: "entry.get.res.json", addlHeaders: institutionPermissionHeaders, }, + { + name: "GET with redacted field", + method: http.MethodGet, + endpoint: "/entries/by-id/00000000-0000-0000-0000-000000000003", + status: http.StatusOK, + resFile: "entry.get.res-2.json", + addlHeaders: institutionPermissionHeaders, + }, { name: "GET no permissions", method: http.MethodGet,