Jesus Crespo and Paul Beusterien
52b3560eab
Add functions spm unit and build tests ( #8499 )
...
* Update FunctionsAPITests.swift with watchos and Task
* Add watchos deployment target to Functions podspec
* Add spm Functions unit and build tests
* Update travis.yml for functions and watchos
* Disable failing travis test, passes locally, wait for Xcode 12.5 on GHA
* Changelog
* Delete unused files
Co-authored-by: Paul Beusterien <paulbeusterien@google.com >
2021-08-16 19:08:55 -05:00
Morgan Chen
27faa28d4f
Cache Functions instances by app ( #8258 )
...
* Cache FIRStorage instances by app
* changelog
* nuts
* format
* appease the code coverage bot
* storage -> functions
* style
* appease codecov again
* Go the component way
* doc comments and style
* fix copyrights
* Fix bad import
* nit
* make it threadsafe
* attempt to fix swift test
* fix tests again
* debug
* Disable Combine tests
2021-06-15 21:45:16 -07:00
47e0a982fb
App check and storage, functions and RTDB support ( #7928 )
...
* AppAttestation initial public API
* Run ./scripts/style.sh
* Copyright
* Cleanup
* Cleanup
* Get token forcing refresh method
* Formatting
* Forcing refresh samples
* Interop introduced
* Code samples for Interop
* Run ./scripts/style.sh
* Cleanup
* TODOs and Copirights
* Fix build
* Supported iOS versions
* Remove unnecessary bridging header
* Run ./scripts/style.sh
* [WIP] DeviceCheckAttestationProvider as a subspec
* cleanup
* Add memory attributes to readonly properties
* Move FIRDeviceCheckAttestationProvider.h to private headers
* TODO for `FirebaseAppAttestation/Core` name
* Remove memory attributes from FIRAppAttestationToken properties
* FIRAppAttestationTests.testSetAttestationProviderFactory introduced
* FIRAppAttestationToken initializer
* Basic FIRLibrary implementation and FIRAppAttestationProviderFactory ingestion.
* Fix
* FIRAppAttestationToken+Interop.h
* TODOs
* Tests: reset FIRApps
* GHA for App Attestation
* Run ./scripts/style.sh
* Style fixes.
* Run ./scripts/style.sh
* TODO
* Nullable initializer and type annpotations
* TODOs
* TODOs
* TODO
* Fix spec and allow warnings
* AppAttestation initial public API
* Run ./scripts/style.sh
* Copyright
* Cleanup
* Cleanup
* Get token forcing refresh method
* Formatting
* Forcing refresh samples
* Interop introduced
* Code samples for Interop
* Run ./scripts/style.sh
* Cleanup
* TODOs and Copirights
* Fix build
* Supported iOS versions
* Remove unnecessary bridging header
* Run ./scripts/style.sh
* [WIP] DeviceCheckAttestationProvider as a subspec
* cleanup
* Add memory attributes to readonly properties
* Move FIRDeviceCheckAttestationProvider.h to private headers
* TODO for `FirebaseAppAttestation/Core` name
* Remove memory attributes from FIRAppAttestationToken properties
* FIRAppAttestationTests.testSetAttestationProviderFactory introduced
* FIRAppAttestationToken initializer
* Basic FIRLibrary implementation and FIRAppAttestationProviderFactory ingestion.
* Fix
* FIRAppAttestationToken+Interop.h
* TODOs
* Tests: reset FIRApps
* Run ./scripts/style.sh
* Style fixes.
* Run ./scripts/style.sh
* TODO
* Nullable initializer and type annpotations
* TODOs
* TODOs
* TODO
* Revert FirestoreDecoder.swift formatting.
* Basic implementation of FIRDeviceCheckAttestationProvider and tests (#626 )
* DeviceCheck attestation provider sceleton
* DeviceCheck attestation provider sceleton
* Basic FIRDeviceCheckAttestationProviderTests
* Run ./scripts/style.sh
* FIRAppAttestStorage implementation and tests (#627 )
* FIRDeviceCheckAttestationProvider designated init
* FIRAppAttestStorage API and basic tests.
* FIRAppAttestStoredToken: NSSecureCoding implementation
* WIP Storage
* Add `accessGroup` param to `FIRAppAttestStorage`
* FIRAppAttestStorage implementation
* Use constants
* FIRAppAttestStorage API doc
* Coding style and typos.
* Code formatting
* Attestation Token caching (#630 )
* Storage instance and looging
* AppAttestation caching
* Tests and cleanup
* Cleanup
* Rename App Attestation -> App Check (#631 )
* Rename App Attestation -> App Check
* Run ./scripts/style.sh
* Update GHA
* Default Custom Provider (#633 )
* AppCheck: remove not unnecessary public API (#634 )
* AppCheck: remove not unnecessary public API
* Run ./scripts/style.sh
* AppCheck: DeviceCheck token server API (#635 )
* Generic HTTP request handling
* [draft] AppCheck: device check HTTP API and simple tests
* Parse response
* Cleanup
* AppCheck: API errors and tests (#636 )
* AppCheck errors
* API service tests and fixes
* Cleanup
* Run ./scripts/style.sh
* Naming
* AppCheck: Register device check provider factory as a default (#637 )
* AppCheck errors
* API service tests and fixes
* Cleanup
* Run ./scripts/style.sh
* AppCheck: register FIRDeviceCheckProvider as a component
* Naming
* Registre device check provider factory as a default
* FIRDeviceCheckProvider tests
* AppCheck: API communication common for all providers moved to FIRAppCheckAPIService (#640 )
* FIRAppCheckAPIService introduced
* Move URL seession stub to FIRURLSessionOCMockStub
* Run ./scripts/style.sh
* Move approximate date comparing to FIRDateTestUtils
* compose request in FIRAppCheckAPIService
* FIRAppCheckAPIServiceTests
* Use FIRAppCheckAPIService in FIRDeviceCheckProvider
* Cleanup
* DeviceCheck mock server integration and tests (#686 )
* DeviceCheck mock server integration and tests
* TODO
* Update FIROptions.h import
* Temporary add FirebaseAppCheck to skip import validation
* TestUtilities moved to SharedTestUtilities
* FirebaseAppCheck.podspec: TestUtilities->SharedTestUtilities
* SwiftPM: add OCMock dependency to SharedTestUtilities
* FIRURLSessionOCMockStub: #import "OCMock.h"
* App Check: Firebase 7 fixes (#715 )
* AppCheck Firebase 7
* FirebaseCore repo-relative imports
* Fix FIRAppCheckStorage.m compilation
* Repo relative imports
* linebreak
* AppCheck: debug FAC token provider (#716 )
* AppCheck Firebase 7
* FirebaseCore repo-relative imports
* Fix FIRAppCheckStorage.m compilation
* Repo relative imports
* linebreak
* Remove FIRAppCheckDefaultCustomProvider
* FIRAppCheckDebugProvider introduced
* FIRAppCheckDebugProviderTests
* style
* Print locally generated debug token to console
* Fix imports
* mullability and line breaks
* typo
* Comments
* TODO
* AppCheck: merge into single spec (package) (#717 )
* Standard package folder structure
* Move interop header into AppCheck sources folder
* Combine public headers in the standard dir
* Private headers to internal
* Podspec
* Headers import udpdate
* style
* Fix header imports
* Enable check_imports.swift and fix imports
* AppCheck: server request adjustments (#718 )
* Wrap DeviceCheck token into JSON
* AppChek - remove static_framework requirement
* WIP
* Update default base URL
* Set content-type header
* Check for empty response data
* Fix tests
* Style and formatting
* Podspec - revert wrong change and remove static_framework
* Assign error to error pointer safely.
* AppCheck: primitive test app (#719 )
* Remove static_framework requirement
* WIP: FIRAppCheckTestApp introduced
* Delete .plist
* Copyright
* Remove empty test targets
* pod deintegrate
* Remove test targets from Podfile
* formatting
* Storage: integration with AppCheck (#720 )
* Storage: add AppCheck interop dependency
* Inject AppCheck into FIRStorageTokenAuthorizer
* initial AppCheck integration
* Introduce AppCheck fake
* AppCheck fake implementation
* FIRStorageTokenAuthorizer tests and fixes
* @"Authorization" header constant
* Log AppCheck error.
* Cleanup
* FIRStorageTokenAuthorizerTests: helpers
* TODO
* Cleanup
* AppCheck: separate 2P and 3P API (#724 )
* FIRAppCheckInterop: remove a convenience method.
* Rename: FIRAppCheckTokenInterop->FIRAppCheckTokenResultInterop
* FIRAppCheckTokenResult introduced
* Update FIRAppCheckTokenHandlerInterop, FIRAppCheckTokenResultInterop and tests
* style
* Update token result
* Update storage integration
* Adjust check_imports.swift for test files
* Don't use internal AppCheck classes in Storage tests
* style
* Rename token to tokenResult in 2P API
* Add private Core headers to app check sources
* Fix storage log message code format
* token clarification comments in API docs
* Rename token->tokenResult
* AppCheck cleanup (#737 )
* Fix public headers import
* Cleanup imported test utils
* FirebaseAppCheck podspec: revert git URL
* AppCheck: Debug token to AppCheck token exchange API (#739 )
* GUL: make NSURLSession promise extension public
* Use NSURLSession+GULPromises to send requests
* style
* Move FIRAppCheckToken+APIResponse to Core dir
* rename
* FIRAppCheckDebugProviderAPIService introduced
* Move async token parsing API to FIRAppCheckToken extension
* Move token exchange response handling to FIRAppCheckAPIService. Tests WIP.
* Move API response parsing tests to FIRAppCheckAPIServiceTests
* FIRAppCheckDebugProviderAPIServiceTests
* Cleanup
* style
* App Check debug provider: integrate with exchange API (#743 )
* Move FIROption validation to FIRAppCheckValidator
* FIRAppCheckDebugProvider token exchange and tests
* Fix FIRAppCheckDebugProviderFactoryTests
* style
* App Check test app debug provider fix (#747 )
* App Check: minor touchups (#750 )
* Update dummy token value
* Print local debug token to logs
* Require GoogleUtilities v7.2 and above
* Print debug token on init
* Don't print debug token again
* App Check: use prod environment (#751 )
* App Check: use prod backend by default.
* Update token expiration threshold
* App Check SwiftPM support (#753 )
* AppCheck SwiftPM package definition
* Promise header import fix
* OCMock header fix
* Fix fixture dependent tests
* Exclude Keychain dependent tests
* License
* ./scripts/style.sh
* Cleanup
* Format with proper SwiftFormat version
* `.process` resources.
* Swift tests target
* Cleanup and code formatting
* App Check: token auto-refresh (#754 )
* FIRAppCheckTokenRefresher API defined
* FIRAppCheckTokenRefresher implementation draft
* [WIP] Token refresher integration
* Token refresher integration
* FIRAppCheckTests: token refresher tests
* FIRAppCheckTests: additional tests cases
* FIRAppCheckTimer introduced
* FIRAppCheckTokenRefresher: use FIRAppCheckTimer instead of the dispatch timer.
* FIRFakeTimer
* FIRAppCheckTokenRefresherTests testInitialRefresh
* FIRAppCheckTokenRefresherTests: testNextRefreshOnRefreshSuccess
* ./scripts/style.sh
* Exponential backoff
* Style and comments
* Move token refresh files to a separate folder
* FIRAppCheckTimerTests
* FIRAppCheck: use expicit class in init
* FIRAppCheckDebugProviderFactory Swift name
* FIRAppCheckTokenRefresher: Increment/decrement directly
* App Check fixes (#755 )
* Fix backoff: no backoff for the initial request
* Use eager initialization
* FIRAppCheckTokenRefresher: don't refresh until handler set
* FIRAppCheckIntegrationTests: disable token refresher
* Fix testInitialRefresh test
* style
* FIRAppCheckIntegrationTests fix
* Temporary exclude App Check from platfrom logging (#756 )
* App Check: send app check SDK version only in the header (#757 )
* App Check: store FAC token per app ID (#758 )
* App Check: store FAC token per app ID
* update podspec
* API docs
* FIRAppCheck initWithApp tests
* AppCheckCustomProvideApp (#760 )
* Functions: App Check integration (#762 )
* Functions: app check API added to FUNContextProvider
* FUNContextProviderTests
* FUNContextProvider app check support
* ./scripts/style.sh
* FIRFunctions: pass FAC token as HTTP header
* Fix SPM
* Fix Firebase-Package scheme bad merge
* Cleanup
* RTDB: pass FAC token to web socket (#763 )
* RTDB: pass FAC token to web socket
* FIRAppCheckFake default init
* Rename FAuthTokenProvider to FIRDatabaseConnectionContext; integrate with App Check
* Pass App Check token in the HTTP header
* Rename
* Fix existing tests
* TODO
* ./scripts/style.sh
* Context provider: assume separate FAC token change listener
* FIRDatabaseConnectionContextProviderTests
* Remove unused files
* Copy NSMutableURLRequest
* Cleanup
* ./scripts/style.sh
* FIRDatabaseConnectionContextProvider: sync callback when no auth or app check
* Cleanup
* Rename "authToken" leftovers to "context"
* Fix renaming
* Pass missing headers to NSURLSessionWebSocketTask
* Cleanup
* add a name to TODO
* App Check: token update notifications (#764 )
* AppCheck: token did change API and tests
* notification implementation and fixes
* Run ./scripts/style.sh
* Update comments
* RTDB: send app check token updates to keep connection open (#765 )
* Pass AppCheck instance as an object into the the FAC token update notification
* FIRDatabaseConnectionContext: add FAC token change listener API
* formatting
* Send FAC token updates to open connection
* More informative empty response message
* refreshAppCheckToken fixes
* Remove assertion
* Don't modify state
* forceTokensRefresh -> forceTokenRefreshes
* Call listeners on [FIRDatabaseQuery sharedQueue]
* App Check API cleanup and docs (#766 )
* AppCheck public API and docs cleanup
* More API docs
* Fix compilation errors
* typos and wording
* Make summary different from description (pod lib lint warning)
* port app check workflow changes from another branch
* pod lib lint: remove --allow-warnings
* App Check cleanup (#767 )
* Cleanup debug code and outdated TODOs
* Fix FIRDeviceCheckProvider availablility for SPM
* Fix availability in tests
* Fix availability in tests
* Make sure os requirements are consistent for tests specs
* Migrate v1alpha URLs to v1beta
* Migrate v1alpha URLs to v1beta
* Run ./scripts/style.sh
* Functions tests: fix Xcode 11 warnings (#7931 )
* Functions tests: fix Xcode 11 warnings
* style
* App Check: token auto-refresh opt-out API (#769 )
* FIRAppCheckSettings introduced (WIP)
* FIRAppCheckSettingsTests
* Style
* Make FIRAppCheckSettings instance per-app.
* FIRAppCheckTokenRefresher: use FIRAppCheckSettings.isTokenAutoRefreshEnabled (WIP)
* Tests
* Add public instance getters
* Fix analyzer warnings
* Fix testspec OS versions
* FIRAppCheckTokenRefresher expiration date update; tests
* FIRAppCheck.isTokenAutoRefreshEnabled implementation and tests
* style
* FIRAppCheck: Use specific types for variables in the default init
* More precise comments
* missing symbol
* FIRAppCheckSettings: remove defensive conditions from init.
Co-authored-by: Nick Cooke <nickcooke@google.com >
Co-authored-by: Nick Cooke <36927374+ncooke3@users.noreply.github.com >
2021-04-21 21:01:11 -04:00
Sam Stern
43a9e437a7
Fix FIRFunctions.useEmulatorWithHost scheme ( #7545 )
2021-02-17 12:27:40 -05:00
Morgan Chen and Paul Beusterien
90d3600c56
Implement unified emulator settings API proposal ( #5916 )
...
* Add header for API proposal
* Fix some bugs and add implmentation
* Fix header import
* Fix umbrella header
* Add ways to modify settings object
* Remove unnecessary nodoc
* Update with new API
* Add implementations for Firestore and RTDB
* Revert emulator settings class
* fix style
* Remove bad import and assertion on override
* Prevent database emu from being set after repo init
* Add unified emu to functions
* Add tests
* update header comment
* fix test failures
* remove unused variable
* fix database test
* cast NSInteger to long
* fix style
* Fix functions test in travis
* Remove valueForKeyPath in tests
* fix style
* update comments and remove explicit scheme
* save progress
* Implement reference validation for RTDB
* Add tests
* Add changelog entries
* Remove test logs
* Fix line lengths
* remove underlyingHost
* fix functions tests
* fix integration warnings in functions test
* fix functions test
* Fix infinite loop exposed in integration tests (#6912 )
Co-authored-by: Paul Beusterien <paulbeusterien@google.com >
2020-11-06 10:37:06 -08:00
Sam Stern
45021c160b
Add custom domain support to callable functions ( #6787 )
2020-10-21 09:50:30 -04:00
Maksym Malyhin
02fd66d4e1
Functions: replace InstanceID by Messaging (master) ( #6395 )
...
* FIRMessagingInterop introduced
* Typo fix
* Use FIRMessagingInterop in functions
* Functions tests fix
* Delete FUNInstanceIDProxy
* InstanceID cleanup
* ./scripts/style.sh
* Reduce FIRMessagingInterop to required minimum
* Cleanup
* Functions changelog
* Fix FIRMessagingInteropFake.h import
* Update integration tests
* Fix start.sh script
* GHA: add FCM interop to funstions paths
2020-09-03 14:45:56 -04:00
Paul Beusterien
67c333e4cc
Functions - new public header structure ( #6193 )
2020-08-03 16:28:14 -07:00
Paul Beusterien
9cf6a243e6
Functions: Repo-relative headers and SPM ( #5858 )
2020-06-19 12:14:22 -07:00
Paul Beusterien
3ccbdcdc65
Fix Functions unit tests for 32bit targets ( #2468 )
...
* Compatible value for ll testing on 32 and 64 bit targets
2019-03-04 14:30:31 -08:00
Ryan Wilson
fa2aa4f301
Allow Functions to be called without Auth. ( #2298 )
...
* Allow Functions to be called without Auth.
This was a regression from previous functionality, but is reverted
mostly to the old functionality. Previously `context` would be `nil` in
the completion handler if no Auth was available, but now `context` still
contains `instanceIDToken` but no `authToken`.
Also cover unit tests for the three states: no auth, auth error, and
valid auth.
* Style fixes.
* Cast Auth fake to prevent warning.
2019-01-22 14:09:48 -05:00
Paul Beusterien
7c53489e03
Travis to Xcode 10.1 and clang-format to 8.0.0 (tags/google/stable/2018-08-24) ( #2222 )
...
* Travis to Xcode 10.1
* Update to clang-format 8
* Update clang-format homebrew link
* Work around space in filename style.sh issue
2019-01-02 09:27:31 -08:00
Benoit St-Pierre
87a206e0c1
Functions Interop ( #2113 )
...
* Functions Interop
Convert Firebase Functions to use the Auth Interop pod
* Style FIxes
* Style fixes (from clang-format 7)
* Attempt to fix Travis Build
* Add Firebase/Core/Private to header search path
* Switch to using non-internal header
* Add Firebase Core private headers to search path
* Change Podfile to use Interop pods
I also removed a doubly-defined `FRAMEWORK_SEARCH_PATHS`
* Add Private Headers to search path
I also cleaned up some more project settings
* PR Feedback
* Looking for container headers
* PR Feedback
I also attempted moving the FakeApp class to the test targets and further simplified the project file.
* Re-add -all_load
* Set test target headers
I also moved the Podfile pods to the app target rather than the top-level
* Whitespace
* Re-add FirebaseFunctions to search path
* Revert project file back to origin/master
* Found the headers!
- Remove `FUNFakeApp` from app target
+ Add `FUNFakeApp` to test targets
+ Add `$(inherited)` to `HEADER_SEARCH_PATH` as per CocoaPods warning
+ Add `$(SRCROOT)/../../Firebase/Core/Private` to find `FIRComponentContainerInternal` header
~ Change import from frameworks import to regular import
* Revert xcsheme to previous version
* Update FIRFunctions.m
* CL Feedback
- Delete `FUNFakeApp`
+ Add `FIRAuthInteropFake` to test targets
~ Update initializer to use projectID instead of app
* Style fixes
* CL Feedback
* Fix Integration tests
* Set the region to the expected value
* Update node package.json to latest versions
2018-12-06 13:30:08 -05:00
Michael Lehenbauer
b88f95c44f
Reformat using 'clang-format version 7.0.0 (tags/google/stable/2018-04-24)' ( #1681 )
...
This is the version of clang-format that travis is currently using.
2018-08-13 14:18:02 -07:00
Bryan Klimt
f08edbb85c
Add a couple of new small Functions APIs. ( #1434 )
...
* Add a Functions constructor that allows setting a region.
* Add a method to set an emulator origin to use.
* Update the changelog
2018-06-21 15:25:13 -04:00
Ben Hamilton (Ben Gertzfield)
cb1f65dfcf
Migrate Firebase off ObjC module @import statements ( #992 )
...
* Migrate Firebase off @import statements
* - Migrate tests and test utils from @import to #import.
- Update Xcode projects for tests to explicitly link in framework deps.
- Update check_no_module_imports.sh to look for @imports in tests/test utils/
integration tests.
* Ensure check_no_module_imports.sh explicitly exits with code 0 on success.
2018-03-29 08:44:48 -07:00
Paul Beusterien
b7f35a0b76
Initial Firebase Functions ( #948 )
2018-03-20 11:59:03 -07:00