Skip to content

Commit 31bcfc9

Browse files
avishalomhiranya911
authored andcommitted
Release Version 2.4.0 (#69)
* Documentation fix md file (#43) * Clarify certificate download comment * Fix Link * Adding User Management utils, including Custom Claims in the auth package. (#42) Adding the user management go SDK. This includes the customClaims and the iterator over all users. (as well as Create, Update, Delete User, and GetUser (by UID, Phone or Email)) Proposal : go/firebase-go-user-mgt Code snippets: https://firebase-dot-devsite.googleplex.com/docs/auth/admin/manage-users https://firebase-dot-devsite.googleplex.com/docs/auth/admin/custom-claims TODO: clean up the case of an http.DefaultClient when there are no options. * Minor improvements to user management code (#44) * some changes to auth * Implemented a reusable HTTP client API * Added test cases * Comment clean up * Simplified the usage by adding HTTPClient * Using the old ctx import * Support for arbitrary entity types in the request * Renamed fields; Added documentation * Removing a redundant else case * initial * more integration tests * set custom - still needs guessing the type for unmarshaling. * tests * server * server * . * json * json * move testdata * get * tests * updated to param struct of pointers to call create and update * Comments * cleanup * cleanup * cleanup * cleanup minor test changes * Changing the iteraator pattern * last page iterator test fix * clean up tests next. * make the fetch tidier * fetch cleanup * cc change * custom claims * newline * adding error propagation to makeExportedUser * remove trivial claims map type * list users test data * rename p ptr, and remove the with... options for the iterator * rename p ptr * some unit tests * adding integration tests for custom claims * NO ERROR * unit tests * comments hkj * addressing comments * delete unneeded json file * phone NUMBER * typo * remove cc from create * refactor param structs * remove package ptr * test refactor * cleanup comments * cleanup debug.test * Adding back the default http client * fix httpClient for tests * creds * creds * fix default http client * cleanupPrintfs * disable * Reanme payload vars * Revert newHTTPKeySource function * add back defaultClient in newClient * reenable testNewHTTPClientNoOpts) * reverting keysource tests) * Take the httpClient from the keysource * Removethe +1 second for the token timestamp. * Adding tests * White spaces * Redesign the error validators * prepare returns an error. * cleanup * dissolve * dissolve * clean tests * split integration tests * addressing comments * addressing comments opt branch/ BEFORE hc change * Removing the defaultClient from the NewClient, and extracting the NewClient creation outside of KeySource * closer from echoServer * cleanup + 500 error unit test * unify error messages * Refactor stop side effect for params preparation * +1 to timestamp for flakiness * removing +1 * disallow defaultClient * whitespaces * http default * add TODO * Code clean up and refactoring * Refactored integration tests (#46) * Refactored integration tests * Minor cleanup * Auth Unit Test Improvements (#45) * Cleaning up new auth tests * More updates to tests; Dissolved commonParams type * More test updates * More argument validation for auth * Fixed a bug in enable/disable user; Added more tests; Cleaned up unit tests * Removed debug file * Create the 5th user in the integration tests for user management. (#47) * Bump version to 2.2.0 (#49) * Adding version, stat counter header and test (#50) * Adding version to the header for the stat counter + tests * bump version to 2.2.1 * Adding comment for manual cleanup * Auth Package Internal Cleanup (#53) * Release v2.2.1 (#51) * Adding version, stat counter header and test (#50) * Adding version to the header for the stat counter + tests * bump version to 2.2.1 * Adding comment for manual cleanup * Experimental auth cleanup * Using a mock token source in tests * Further cleaning up the test cases * Implemented IID Delete API (#41) * Implemented IID Delete API * Cleaned up code * Updated test case * Updating comments * Improved error handling * Fixing malformed error messages due to extra format placeholders; Using the recommended Go error message format (no caps or punctuation) * Bumped version to 2.3.0 (#56) * use const for Common HTTP methods and HTTP status codes (#58) * use const for Common HTTP methods and HTTP status codes * fix format verbs %q to %d * golint - remove redundant if ...; err != nil check (#59) * golint - remove redundant if ...; err != nil check * add golint check on travis.yml * update readme with Authentication Guide & Release Notes (#61) * update readme with Authentication Guide & Release Notes * fix a misspelling : separately * fix missing newline before package * Format JSON test data (#63) * use identitytoolkit/v3 go client instead of makeHTTPCall (#60) * use identitytoolkit/v3 go client instead of makeHTTPCall * remove unnecessary if because empty values are not sent with identitytoolkit * refactoring to avoid multiple header set * change execute func to setHeader * remove url from Client type, rename relayingpartyCall interface + fix providerID mistake * change rawId value in test to 'testuid' * Firebase App auto init (#54) * FIREBASE_CONFIG env variable auto init, allows calling initialize_app with not arguments using the env variable * allow env var to contain json * add tests for json string in env file * constant provider id plus tests (#64) * Constant provider id plus tests * Cleaning up the json tags in the structs following the identitytoolkit PR * Expand comment about ProviderID * Contributing (#65) * [docs update] How to view test coverage. * Release Version 2.3.0 (#57) (#67) * Documentation fix md file (#43) * Clarify certificate download comment * Fix Link * Adding User Management utils, including Custom Claims in the auth package. (#42) Adding the user management go SDK. This includes the customClaims and the iterator over all users. (as well as Create, Update, Delete User, and GetUser (by UID, Phone or Email)) Proposal : go/firebase-go-user-mgt Code snippets: https://firebase-dot-devsite.googleplex.com/docs/auth/admin/manage-users https://firebase-dot-devsite.googleplex.com/docs/auth/admin/custom-claims TODO: clean up the case of an http.DefaultClient when there are no options. * Minor improvements to user management code (#44) * some changes to auth * Implemented a reusable HTTP client API * Added test cases * Comment clean up * Simplified the usage by adding HTTPClient * Using the old ctx import * Support for arbitrary entity types in the request * Renamed fields; Added documentation * Removing a redundant else case * initial * more integration tests * set custom - still needs guessing the type for unmarshaling. * tests * server * server * . * json * json * move testdata * get * tests * updated to param struct of pointers to call create and update * Comments * cleanup * cleanup * cleanup * cleanup minor test changes * Changing the iteraator pattern * last page iterator test fix * clean up tests next. * make the fetch tidier * fetch cleanup * cc change * custom claims * newline * adding error propagation to makeExportedUser * remove trivial claims map type * list users test data * rename p ptr, and remove the with... options for the iterator * rename p ptr * some unit tests * adding integration tests for custom claims * NO ERROR * unit tests * comments hkj * addressing comments * delete unneeded json file * phone NUMBER * typo * remove cc from create * refactor param structs * remove package ptr * test refactor * cleanup comments * cleanup debug.test * Adding back the default http client * fix httpClient for tests * creds * creds * fix default http client * cleanupPrintfs * disable * Reanme payload vars * Revert newHTTPKeySource function * add back defaultClient in newClient * reenable testNewHTTPClientNoOpts) * reverting keysource tests) * Take the httpClient from the keysource * Removethe +1 second for the token timestamp. * Adding tests * White spaces * Redesign the error validators * prepare returns an error. * cleanup * dissolve * dissolve * clean tests * split integration tests * addressing comments * addressing comments opt branch/ BEFORE hc change * Removing the defaultClient from the NewClient, and extracting the NewClient creation outside of KeySource * closer from echoServer * cleanup + 500 error unit test * unify error messages * Refactor stop side effect for params preparation * +1 to timestamp for flakiness * removing +1 * disallow defaultClient * whitespaces * http default * add TODO * Code clean up and refactoring * Refactored integration tests (#46) * Refactored integration tests * Minor cleanup * Auth Unit Test Improvements (#45) * Cleaning up new auth tests * More updates to tests; Dissolved commonParams type * More test updates * More argument validation for auth * Fixed a bug in enable/disable user; Added more tests; Cleaned up unit tests * Removed debug file * Create the 5th user in the integration tests for user management. (#47) * Bump version to 2.2.0 (#49) * Adding version, stat counter header and test (#50) * Adding version to the header for the stat counter + tests * bump version to 2.2.1 * Adding comment for manual cleanup * Auth Package Internal Cleanup (#53) * Release v2.2.1 (#51) * Adding version, stat counter header and test (#50) * Adding version to the header for the stat counter + tests * bump version to 2.2.1 * Adding comment for manual cleanup * Experimental auth cleanup * Using a mock token source in tests * Further cleaning up the test cases * Implemented IID Delete API (#41) * Implemented IID Delete API * Cleaned up code * Updated test case * Updating comments * Improved error handling * Fixing malformed error messages due to extra format placeholders; Using the recommended Go error message format (no caps or punctuation) * Bumped version to 2.3.0 (#56) * Bumped Version 2.4.0 (#66) * Release Version 2.3.0 (#57) (#68)
1 parent 9b51e14 commit 31bcfc9

22 files changed

+642
-287
lines changed

.travis.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
language: go
22
go_import_path: firebase.google.com/go
3-
script: go test -v -test.short ./...
3+
before_install:
4+
- go get github.com/golang/lint/golint
5+
script:
6+
- golint -set_exit_status $(go list ./...)
7+
- go test -v -test.short ./...
48

CONTRIBUTING.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,3 +137,18 @@ go test firebase.google.com/go/...
137137
```
138138

139139
This will execute both unit and integration test suites.
140+
141+
### Test Coverage
142+
143+
Coverage can be measured per package by passing the `-cover` flag to the test invocation:
144+
145+
```bash
146+
go test -cover firebase.google.com/go/auth
147+
```
148+
149+
To view the detailed coverage reports (per package):
150+
151+
```bash
152+
go test -cover -coverprofile=coverage.out firebase.google.com/go
153+
go tool cover -html=coverage.out
154+
```

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@ requests, code review feedback, and also pull requests.
4242
## Documentation
4343

4444
* [Setup Guide](https://firebase.google.com/docs/admin/setup/)
45+
* [Authentication Guide](https://firebase.google.com/docs/auth/admin/)
4546
* [API Reference](https://godoc.org/firebase.google.com/go)
47+
* [Release Notes](https://firebase.google.com/support/release-notes/admin/go)
4648

4749

4850
## License and Terms

auth/auth.go

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@ import (
2626

2727
"firebase.google.com/go/internal"
2828
"golang.org/x/net/context"
29+
"google.golang.org/api/identitytoolkit/v3"
2930
"google.golang.org/api/transport"
3031
)
3132

3233
const firebaseAudience = "https://identitytoolkit.googleapis.com/google.identity.identitytoolkit.v1.IdentityToolkit"
3334
const googleCertURL = "https://www.googleapis.com/robot/v1/metadata/x509/securetoken@system.gserviceaccount.com"
34-
const idToolKitURL = "https://www.googleapis.com/identitytoolkit/v3/relyingparty/"
3535
const issuerPrefix = "https://securetoken.google.com/"
3636
const tokenExpSeconds = 3600
3737

@@ -63,10 +63,10 @@ type Token struct {
6363
// by Firebase backend services.
6464
type Client struct {
6565
hc *internal.HTTPClient
66+
is *identitytoolkit.Service
6667
ks keySource
6768
projectID string
6869
snr signer
69-
url string
7070
version string
7171
}
7272

@@ -117,32 +117,21 @@ func NewClient(ctx context.Context, c *internal.AuthConfig) (*Client, error) {
117117
return nil, err
118118
}
119119

120+
is, err := identitytoolkit.New(hc)
121+
if err != nil {
122+
return nil, err
123+
}
124+
120125
return &Client{
121126
hc: &internal.HTTPClient{Client: hc},
127+
is: is,
122128
ks: newHTTPKeySource(googleCertURL, hc),
123129
projectID: c.ProjectID,
124130
snr: snr,
125-
url: idToolKitURL,
126131
version: "Go/Admin/" + c.Version,
127132
}, nil
128133
}
129134

130-
// Passes the request struct, returns a byte array of the json
131-
func (c *Client) makeHTTPCall(ctx context.Context, serviceName string, payload interface{}, result interface{}) error {
132-
versionHeader := internal.WithHeader("X-Client-Version", c.version)
133-
request := &internal.Request{
134-
Method: "POST",
135-
URL: c.url + serviceName,
136-
Body: internal.NewJSONEntity(payload),
137-
Opts: []internal.HTTPOption{versionHeader},
138-
}
139-
resp, err := c.hc.Do(ctx, request)
140-
if err != nil {
141-
return err
142-
}
143-
return resp.Unmarshal(200, result)
144-
}
145-
146135
// CustomToken creates a signed custom authentication token with the specified user ID. The resulting
147136
// JWT can be used in a Firebase client SDK to trigger an authentication flow. See
148137
// https://firebase.google.com/docs/auth/admin/create-custom-tokens#sign_in_using_custom_tokens_on_clients

auth/crypto_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ func newTestHTTPClient(data []byte) (*http.Client, *mockReadCloser) {
4848
Transport: &mockHTTPResponse{
4949
Response: http.Response{
5050
Status: "200 OK",
51-
StatusCode: 200,
51+
StatusCode: http.StatusOK,
5252
Header: http.Header{
5353
"Cache-Control": {"public, max-age=100"},
5454
},

0 commit comments

Comments
 (0)