Commit Graph
56 Commits
Author SHA1 Message Date
ea6d67df19 Test AppCheckCore 12.0.0 (Swift implementation) (#16544)
Co-authored-by: Nick Cooke <nickcooke@google.com>
Co-authored-by: Nick Cooke <36927374+ncooke3@users.noreply.github.com>
2026-09-23 19:22:44 -04:00
Nick CookeandPaul Beusterien 0fbaa00708 refactor: remove site key from options; require explicit pass to recaptcha provider (#16409)
Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
2026-07-17 21:24:23 +00:00
Nick Cooke 80f07891e1 refactor(appcheck): remove recaptcha fallback from default provider factory (#16388) 2026-07-13 14:33:05 -04:00
Nick Cooke 669d38c472 refactor(appcheck): remove obsolete OS availability checks (#16310) 2026-06-23 14:32:06 -04:00
Nick CookeandPaul Beusterien 06d53a2ae0 feat(appcheck): implement RecaptchaEnterpriseProvider and tests (#16155)
Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
2026-06-10 12:08:31 -04:00
Nick Cooke ff92250a74 feat(appcheck): add helpful log for registering debug tokens (#16232) 2026-06-04 20:05:33 -04:00
Nick CookeandAndrew Heard 7250a60427 feat(appcheck): Add new internal, default provider (#16190)
Co-authored-by: Andrew Heard <andrewheard@google.com>
2026-06-04 10:54:04 -04:00
Andrew HeardandNick Cooke 89ac23ee51 [App Check] Add AppAttestProviderFactory (#16182)
Co-authored-by: Nick Cooke <36927374+ncooke3@users.noreply.github.com>
2026-05-19 12:02:26 -04:00
Paul Beusterien 8f44bbcbcf Fix FIROptions module organization (#13765) 2024-10-02 07:49:28 -07:00
Yakov Manshin c590762053 [#13326] App Check Tests (#13327) 2024-07-22 08:32:30 -07:00
Nick Cooke bee45d0e4a [AppCheck] Remove unused Promises dependency (#13315) 2024-07-19 13:24:34 -04:00
Sheikh Bayazid e8a12e04c2 Improve/use shorthand syntax for unwrapping optionals and fix typos (#12369) 2024-05-03 08:50:20 -07:00
Nick Cooke b6e5270f75 [AppCheck] Migrate to GoogleUtilities's storage container (#12773) 2024-04-12 13:46:29 -04:00
Andrew Heard 7db032cbfb Update async/await availability comments to "iOS 13+" (#12261) 2024-01-10 14:38:36 -05:00
Paul Beusterien 0fe8385fe6 Remove unnecessary compiler checks for Concurrency support (#12232) 2024-01-03 07:04:02 -08:00
Paul Beusterien 4d2b60dc75 Updated to SwiftFormat 0.52.10 (#12125) 2023-11-21 12:12:05 -08:00
Andrew Heard a83297908d [App Check] Implement FirebaseAppCheck as a shim of AppCheckCore (#12067) 2023-11-07 18:54:45 -05:00
Andrew Heard 88d1530d30 Replace FIRDeviceCheckAPIServiceE2ETests with AppCheckE2ETests (#12031) 2023-11-01 10:38:57 -04:00
Andrew Heard 1317f08326 [App Check] Reset App Attest key state if attestKey fails (#11986) 2023-10-24 13:30:40 -04:00
Andrew Heard f73ca9532c [App Check] Add failure reasons for App Attest error cases (#11956) 2023-10-19 17:28:38 -04:00
Andrew HeardandNick Cooke f3a14c249e Add FirebaseAppCheckInterop umbrella header (#11860)
Co-authored-by: Nick Cooke <36927374+ncooke3@users.noreply.github.com>
2023-10-11 18:39:18 -04:00
Andrew Heard a885d5e023 [App Check] Remove usages of FIR_*_SUPPORTED_TARGETS macros (#11831) 2023-09-20 12:07:42 -04:00
Andrew Heard 00fd7c0829 Enable FIRAppCheckTests on CI (#11827) 2023-09-20 10:59:14 -04:00
Andrew Heard a471cc8120 Add FIRAppCheckProtocol to FirebaseAppCheckInterop SDK (#11660) 2023-09-14 17:11:28 -04:00
Andrew Heard 77fa63da55 [App Check] Add DeviceCheck isSupported check (#11663)
Added a DeviceCheck isSupported check and return a FIRAppCheckErrorCodeUnsupported error when not supported (e.g., when running on the simulator or older Macs). This was done to match the behaviour of the FIRAppAttestProvider.
2023-08-09 13:45:38 -04:00
Andrew Heard 4b9cbf6155 [App Check] Fix App Attest and DeviceCheck API availability (#11662)
- Updated the FIR_DEVICE_CHECK_PROVIDER_AVAILABILITY and FIR_APP_ATTEST_PROVIDER_AVAILABILITY API availability macros to reflect the set of supported platforms for DeviceCheck (iOS 11+, macOS 10.15+, macCatalyst 13+, tvOS 11+, watchOS 9+) and App Attest (iOS 14+, macOS 11.3+, macCatalyst 14.5+, tvOS 15+, watchOS 9+).

- Removed the extraneous check for the watchOS 9 SDK now that Xcode 14 is the minimum supported by Firebase.
Removed the #if TARGET_OS_IOS compiler directive in AppCheckAPITests.swift since TARGET_OS_IOS is only available in Objective-C and was always false.
2023-08-08 17:26:09 -04:00
Nick Cooke 1e040186a6 [Infra] Remove HeartbeatLoggingTestUtils.podspec (#11370)
* [Infra] Remove HeartbeatLoggingTestUtils.podspec

* Review
2023-06-01 13:31:39 -04:00
Yvonne ChengandAndrew Heard 87b07e2d36 Add limited use token to FirAppeCheck Interface (#11086)
* Add limited use token to FirAppeCheck Interface

* revise some naming

* remove extra promise and clean the logic for limitedUseToken

* ADD UNIT tests

* suppress style error

* style the file

* Fixed comments and still need to add one more test

* change testLimitedUseToken to uncached test and add error test too

* test in FIRAppCheckTestFile to make sure limited-use token is working

* style the file to pass checks

* style swift file to pass checks

* style swift file to pass checks

* style swift file to pass checks

* style swift file to pass checks

* Run scripts/style.sh to format AppDelegate.swift

Script updated in https://github.com/firebase/firebase-ios-sdk/pull/11097

* comments typo fixed

* Fixed typos and add desciption to changelog.md

* solve comments

* remove extra space

* add a spce in the title

---------

Co-authored-by: Andrew Heard <andrewheard@google.com>
2023-04-17 13:55:59 -07:00
Nick Cooke f233d5b6a5 [Cleanup] Follow-up to #10259 (#10262)
* [Cleanup] Follow-up to 10259

* [skip ci] Resolve TODO

In an effort to resolve this TODO, I marked the protocol as @optional to clean
up some of the duplicate test code. While it cleaned up the test code, it did
clutter up the actual usage of the API so I decided against doing so.
2022-09-26 19:04:16 -04:00
Nick Cooke 16304ea7eb [AppCheck] Disable tests that use keychain (#10146) 2022-08-26 23:39:56 -04:00
Nick Cooke 62c77523de [AppCheck] DeviceCheck provider is supported by watchOS 9.0+ (#10094)
* [AppCheck] DeviceCheck provider is supported by watchOS 9.0+

* Update CHANGELOG

* trailing whitespace

* Review
2022-08-12 00:49:32 -04:00
Nick Cooke 2f3bc9b8ae Update response parsing logic and endpoint baseURL (#9580) 2022-04-05 16:50:32 -04:00
Ryan Wilson 2258c07ecb Swift Error Improvements (#9512)
* Firebase Messaging enum

* Add tests for App Check errors

* App Distribution Error

* Installations error improvements

* Remote Config errors

* Firestore error handling

* Formatting

* Silly import error

* Consistency for App Check tests.

* Typo fix
2022-04-04 10:36:38 -04:00
Ryan Wilson 73279db127 Enable async/await APIs for iOS 13, etc. (#9540)
* Enable async/await APIs for iOS 13, etc.

This bumps the required compiler version to 5.5.2 which was included in
Xcode 13.2, where backporting was first introduced.

This breaks less developers and enables developers who aren't using
these APIs to still compile using Xcode 13.0 and 13.1.

As far as I can tell, the only breakage this includes now is developers
who are using Xcode 13.0 or 13.1, targeting iOS 15 and using one of
these 7 APIs. It will result in a compiler error and they'll have to
either use the completion handler version or upgrade to Xcode 13.2+ to
fix the compilation error.

* Missed checks, CHANGELOG

* Fixed avialability, added watchOS for RTDB

* Moved to watchOS 7 for all async/await APIs to match platform support
2022-04-01 09:56:33 -04:00
Nick Cooke 3d4b0f429e [Heartbeat Logging] Migrate AppCheck from using FIRHeartbeatInfo to FIRHeartbeatLogger (#9530)
* Integrate AppCheck with FIRHeartbeatLogger

* Fix comment typo

* Fix CI

* [will revert] debug why HeartbeatLoggingTestUtils.podspec is linted?

* Revert "[will revert] debug why HeartbeatLoggingTestUtils.podspec is linted?"

This reverts commit 25a79874d8.

* Change visibility of shim class

* Fix CI

* [skip ci] Review
2022-03-30 16:18:41 -04:00
Nick Cooke a09083f9d0 [v9] Reorganize FirebaseCore* modules (#9482)
* [skip ci] [will revert] Add debug printing to `pod_lib_lint.rb`

* Reorganize FirebaseCore libraries for SPM and CP

* [skip ci] Revert "[skip ci] [will revert] Add debug printing to `pod_lib_lint.rb`"

This reverts commit 2a837e39708c21b0a324743ab226bd6c01047de7.

* Review and fix CI

* Remove `heartbeat_logging.yml` and add `core_internal.yml`

* Remove trailing whitespace

* Fix more whitespace 😞

* Fix `core_internal.yml` scheme name

* Update `check_imports.swift` and TODO

* Review

* Add FirebaseCoreInternal pod to Firestore example's Podfile

* [skip ci] Review - remove TODOs

* [skip ci] Remove duplicate `XCTest` import
2022-03-23 06:08:14 -07:00
Paul Beusterien e748d16594 AppCheckInterop for Swift dependents (#9299) 2022-03-23 06:07:17 -07:00
Paul Beusterien 4f793064da Set up Core Internal for SPM (#9298) 2022-03-23 06:07:17 -07:00
Paul Beusterien eaaa0a69d1 Fix SPM AppCheck build for watchOS (#9226) 2022-01-19 09:25:10 -08:00
Nick Cooke d6e7bb7d38 Update async-related directives in Swift build tests (#9063)
* Update directives in Swift build tests

* Fix CoreAPITests

* Fix CoreAPITests 2

* Fix installations and style
2021-12-09 14:30:43 -05:00
Paul Beusterien 7aebb8f597 Fix AppCheckAPITests for Xcode 13.0 macos/Catalyst (#8848) 2021-10-21 14:08:16 -07:00
Maksym Malyhin b88646e713 Move FIRAppCheckBackoffWrapperFake to a separate folder (#8805)
* Move FIRAppCheckBackoffWrapperFake to a separate folder

* Add AppCheckBackoffWrapperFake to App Check podspec
2021-10-14 12:22:27 -04:00
Maksym Malyhin 58e73bac24 App Check: error handling with backoff (#8798)
* AppCheck: backoff wrapper implementation draft  (#8748)

* FIRAppCheckBackoffWrapper draft

* style

* FIRAppCheckBackoffWrapper implementation draft

* FIRAppCheckBackoffWrapperTests

* 1d backoff implementation

* Fix tests

* WIP FIRAppCheckBackoffWrapperFake

* FIRAppCheckBackoffWrapperFake implementation

* FIRDeviceCheckProviderTests + backoff

* TODOs

* rename

* Docs, typos, names and minor refactoring

* App Check: error handling with backoff (#8794)

* Exponential backoff with jitter

* modify random to arc4random_uniform

* Error handling WIP

* Default backoff strategy for backend errors

* Default error handler implementation and tests

* Exponential backoff tests and fixes

* Exponential becoff recovery tests

* style

* App Attest backoff integration and tests

* More tests and style

* FIRDeviceCheckProviderTests: default error handler tests

* test fixes

* FIRAppAttestProviderTests: backoff error handler tests

* Providers tests: test backoff case

* Better API docs

* Remove `resetBackoff`

* More docs and comment fixes

* FIRAppAttestProviderTests fixes and cleanup

* Higlight 503 error

* comment fix

* Changelog

* More details in changelog
2021-10-13 16:48:17 -04:00
Nick Cooke a5fbb0a352 [AppCheck] Add support for bundle ID-based API Key Restrictions (#8678)
* Add X-Ios-Bundle-Identifier to AC SDK

* Update CHANGELOG

* Update CHANGELOG 2
2021-09-21 13:46:30 -04:00
Paul Beusterien c0df01d5f0 Fix Xcode 13 beta 3 build issues (#8405) 2021-07-19 07:18:36 -07:00
Maksym Malyhin 85c42dc2c5 Make App Check core availability for all supported platforms (#8388)
* Update App Check availability to match Core

* AppAttest availability update

* Fix watchOS

* watchOS

* style

* fix import

* Fix Xcode support before 12.5

* changelog

* Comments

* Use week linking for DeviceCheck framework

* Fix mac catalyts version
2021-07-15 16:41:46 -04:00
Nick Cooke a2972042db Update swift API tests (#8383) 2021-07-13 15:32:15 -04:00
Nick Cooke 2ab4bd743f AppCheck Swift API build tests (#8331)
* Initial AppAttest API build tests

* AppCheck Swift API build tests

* Fix CI

* Test @available(swift 5.5)

* Review

* Explicit availability checks
2021-07-01 19:57:10 -04:00
Nick Cooke 1803b00e84 App Check: Token API for 3P use (#8266)
* Initial API implementation

* Update CHANGELOG

* Update test imports

* Make API async/await friendly by default

* Make API async friendly by default 2

* Fix CI

* Remove async/await example to fix CI

* Edit comment spacing

* Keychain error handling

* API rename and tests

* Add comments to tests

* Add public errors to umbrella header

* Refactor remaining test logic

* Remove newline

* Review

* Fix import style

* Fix import style 2
2021-06-23 13:01:42 -04:00
Maksym MalyhinandNick Cooke 2ec4dbdae4 App Check: optimize auto-refresh (#8232)
* App Attest provider: attestation sequence (#7971)

* App Attest provider: attestation sequence (#761)

* App Attest draft WIP

* FIRAppAttestProvider initializers

* ./scripts/style.sh

* FIRAppAttestProvider implementation draft

* Basic FIRAppAttestProviderTests and fixes

* style

* testGetTokenWhenAppAttestIsNotSupported

* More FIRAppAttestProviderTests

* Cleanup

* Remove unused file

* Availability annotations on DCAppAttestService category.

* Guard FIRAppAttestProvider with #if TARGET_OS_IOS

* Formatting

* Fix SPM

* app_check.yaml: Add diagnostics SPM builds

* fix yaml

* Fix Firebase-Package scheme bad merge

* Fix typo

* FIRAppAttestProvider: hide default init

* FIRAppAttestKeyIDStorage: methods placeholders

* Comments

* Fix updated block definition

* Implement app attest key ID storage (#8014)

* Implement FIRAppAttestKeyIDStorage

* Add FIRAppAttestKeyIDStorageTests

* Review [Draft]

* Style

* Docs updates

* Docs updates 2

* Review [Draft] 2

* Improve tests

* Improve test readability

* Improve test readability 2

* App Check App Attest workflow updates: initial handshake (#8032)

* Handshake adjustments (WIP)

* Introduce FIRAppAttestProviderState

* WIP: calculate attestation state

* WIP: calculate attestation state 2

* formatting

* Comments and moving code around

* Fix init in tests

* Fix state calculation flow

* Cleanup state calculation and fix tests.

* Cleanup and fixes.

* Comments

* formatting

* Fix import

* Typo fixes and additional comments

* FIRAppAttestInitialHandshakeResponse API

* Cleanup state calculation using FBLPromiseAwait

* Cleanup

* style

* FIRAppAttestArtifactStorage implementation and tests (#8041)

* Update comments

* FIRAppAttestArtifactStorage implementation and tests

* Fix init

* API docs

* Clean up storage in tests

* Comments

* Disable Keychain dependent tests for SPM

* Implement App Attest `getRandomChallenge` (#8033)

* Initial implementation

* Parse response body for challenge and stub test cases

* Review [Draft]

* Avoid encoding challenge again

* Add tests

* Revert "Avoid encoding challenge again" and add TODO

This reverts commit 69eb00dfe2.

* Document tests; Add test

* Tests: Add URL validation check

* Review

* Define Exchange AppAttest Assertion for FAC token API (#8058)

* App Check App Attest: attestation request (#8059)

* App Attest provider API integration WIP

* update tests

* Draft attestation response parsing

* Attestation request draft

* style

* AppAttest Attestation API tests draft

* Error cases tests

* style

* Cleanup and API docs

* Merge fix

* Fix OCMock imports

* Fix nullability modifier

* Formatting

* comments

* App Check App Attest initial handshake adjustments (#8067)

* calculatre sha256 of random challenge for attestation

* Test app adjustments

* cleanup

* use trailing closures in the test app

* Implement API for ExchangeAppAttestAssertionRequest endpoint (#8065)

* Implement assertion exchange

* Tweak existing tests

* Add tests

* Rename JSON to better match gRPC  message

* Add HTTPBody helper

* Review

* Review 2

* Review 3

* App Check App Attest assertion flow (#8083)

* App Attest assertion workflow draft

* send request

* assertion flow tests

* style

* App Check: store App Attest artifact per key ID (#8097)

* Update artifact storage API and tests

* Artifact storage implementation update

* Save artifact for a key ID

* Style

* typos

* App Check: prevent concurrent token requests (#8117)

* App Attest multiple get token method invocation tests

* Ensure a single App Attest handshake sequence at the time

* FIRAppCheckTests: get token request merging tests

* FIRAppCheck: Ensure a single get token operation at the time

* formatting

* Test new request after merged requests

* Release finished operation promise

* Style

* Typos

* typo

* Request merging tests for error cases

* formatting

* Changelog

* App Check App Attest: handle attestation rejection (#8170)

* Remove/update outdated TODOs

* [WIP] Attestation rejection handling draft

* style

* retry tests draft

* reset key ID before retry

* Reset attestation

* test error and fixes

* style

* More details in the name

* Some debug logging

* style

* Use specific codes for log messages

* style

* Add FIRAppAttestProvider.h the umbrella header

* Add receivedAtDate property to the FAC token

* Update tests to check receivedAtDate field where important

* [WIP] Use FIRAppCheckTokenRefreshResult instead in the refresher API

* [WIP] Fix refgresher usage

* Update tests with new API, keep old logic

* Update tests with new logic

* WIP

* WIP

* Initial refresh tests and fixes.

* Add #import <TargetConditionals.h> where needed.

* Formatting

* Cleanup and test updates

* style

* Comments

* Cleanup and comments

* Fix catalyst

* Changelog

* Changelog version fix

* Typo

* Cleanup

* Typo

* Imports order

Co-authored-by: Nick Cooke <36927374+ncooke3@users.noreply.github.com>
2021-06-11 17:35:37 -04:00