-
Notifications
You must be signed in to change notification settings - Fork 624
Implement limited-use App Check tokens. #4876
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Javadoc Changes:--- /Users/runner/diff/original/firebase-kotlindoc/android/com/google/firebase/appcheck/FirebaseAppCheck.html 2023-04-12 20:42:29.000000000 +0000
+++ /Users/runner/diff/modified/firebase-kotlindoc/android/com/google/firebase/appcheck/FirebaseAppCheck.html 2023-04-12 20:35:16.000000000 +0000
@@ -93,6 +93,13 @@
</td>
</tr>
<tr>
+ <td><code>abstract @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developers.google.com/android/reference/com/google/android/gms/tasks/Task.html">Task</a><<a href="/docs/reference/android/com/google/firebase/appcheck/AppCheckToken.html">AppCheckToken</a>></code></td>
+ <td>
+ <div><code><a href="/docs/reference/android/com/google/firebase/appcheck/FirebaseAppCheck.html#getLimitedUseAppCheckToken()">getLimitedUseAppCheckToken</a>()</code></div>
+ <p>Requests a Firebase App Check token.</p>
+ </td>
+ </tr>
+ <tr>
<td><code>abstract void</code></td>
<td>
<div><code><a href="/docs/reference/android/com/google/firebase/appcheck/FirebaseAppCheck.html#installAppCheckProviderFactory(com.google.firebase.appcheck.AppCheckProviderFactory)">installAppCheckProviderFactory</a>(@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/appcheck/AppCheckProviderFactory.html">AppCheckProviderFactory</a> factory)</code></div>
@@ -184,6 +191,7 @@
<h3 class="api-name" id="getAppCheckToken(boolean)">getAppCheckToken</h3>
<pre class="api-signature no-pretty-print">public abstract @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developers.google.com/android/reference/com/google/android/gms/tasks/Task.html">Task</a><<a href="/docs/reference/android/com/google/firebase/appcheck/AppCheckToken.html">AppCheckToken</a>> <a href="/docs/reference/android/com/google/firebase/appcheck/FirebaseAppCheck.html#getAppCheckToken(boolean)">getAppCheckToken</a>(boolean forceRefresh)</pre>
<p>Requests a Firebase App Check token. This method should be used ONLY if you need to authorize requests to a non-Firebase backend. Requests to Firebase backends are authorized automatically if configured.</p>
+ <p>If your non-Firebase backend exposes sensitive or expensive endpoints that has low traffic volume, consider protecting it with <a href="https://firebase.google.com/docs/app-check/custom-resource-backend#replay-protection">Replay Protection</a>. In this case, use the #getLimitedUseAppCheckToken() instead to obtain a limited-use token.</p>
</div>
<div class="api-item"><a name="getInstance--"></a><a name="getinstance"></a>
<h3 class="api-name" id="getInstance()">getInstance</h3>
@@ -195,6 +203,12 @@
<pre class="api-signature no-pretty-print">public static @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/appcheck/FirebaseAppCheck.html">FirebaseAppCheck</a> <a href="/docs/reference/android/com/google/firebase/appcheck/FirebaseAppCheck.html#getInstance(com.google.firebase.FirebaseApp)">getInstance</a>(@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/FirebaseApp.html">FirebaseApp</a> firebaseApp)</pre>
<p>Gets the instance of <code>FirebaseAppCheck</code> associated with the given <code><a href="/docs/reference/android/com/google/firebase/FirebaseApp.html">FirebaseApp</a></code> instance.</p>
</div>
+ <div class="api-item"><a name="getLimitedUseAppCheckToken--"></a><a name="getlimiteduseappchecktoken"></a>
+ <h3 class="api-name" id="getLimitedUseAppCheckToken()">getLimitedUseAppCheckToken</h3>
+ <pre class="api-signature no-pretty-print">public abstract @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developers.google.com/android/reference/com/google/android/gms/tasks/Task.html">Task</a><<a href="/docs/reference/android/com/google/firebase/appcheck/AppCheckToken.html">AppCheckToken</a>> <a href="/docs/reference/android/com/google/firebase/appcheck/FirebaseAppCheck.html#getLimitedUseAppCheckToken()">getLimitedUseAppCheckToken</a>()</pre>
+ <p>Requests a Firebase App Check token. This method should be used ONLY if you need to authorize requests to a non-Firebase backend. </p>
+ <p>Returns limited-use tokens that are intended for use with your non-Firebase backend endpoints that are protected with <a href="https://firebase.google.com/docs/app-check/custom-resource-backend#replay-protection">Replay Protection</a>. This method does not affect the token generation behavior of the #getAppCheckToken() method.</p>
+ </div>
<div class="api-item"><a name="installAppCheckProviderFactory-com.google.firebase.appcheck.AppCheckProviderFactory-"></a><a name="installappcheckproviderfactory"></a>
<h3 class="api-name" id="installAppCheckProviderFactory(com.google.firebase.appcheck.AppCheckProviderFactory)">installAppCheckProviderFactory</h3>
<pre class="api-signature no-pretty-print">public abstract void <a href="/docs/reference/android/com/google/firebase/appcheck/FirebaseAppCheck.html#installAppCheckProviderFactory(com.google.firebase.appcheck.AppCheckProviderFactory)">installAppCheckProviderFactory</a>(@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/appcheck/AppCheckProviderFactory.html">AppCheckProviderFactory</a> factory)</pre> --- /Users/runner/diff/original/firebase-kotlindoc/kotlin/com/google/firebase/appcheck/FirebaseAppCheck.html 2023-04-12 20:42:29.000000000 +0000
+++ /Users/runner/diff/modified/firebase-kotlindoc/kotlin/com/google/firebase/appcheck/FirebaseAppCheck.html 2023-04-12 20:35:16.000000000 +0000
@@ -93,6 +93,13 @@
</td>
</tr>
<tr>
+ <td><code>abstract <a href="https://developers.google.com/android/reference/com/google/android/gms/tasks/Task.html">Task</a><<a href="/docs/reference/kotlin/com/google/firebase/appcheck/AppCheckToken.html">AppCheckToken</a>!></code></td>
+ <td>
+ <div><code><a href="/docs/reference/kotlin/com/google/firebase/appcheck/FirebaseAppCheck.html#getLimitedUseAppCheckToken()">getLimitedUseAppCheckToken</a>()</code></div>
+ <p>Requests a Firebase App Check token.</p>
+ </td>
+ </tr>
+ <tr>
<td><code>abstract <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a></code></td>
<td>
<div><code><a href="/docs/reference/kotlin/com/google/firebase/appcheck/FirebaseAppCheck.html#installAppCheckProviderFactory(com.google.firebase.appcheck.AppCheckProviderFactory)">installAppCheckProviderFactory</a>(factory: <a href="/docs/reference/kotlin/com/google/firebase/appcheck/AppCheckProviderFactory.html">AppCheckProviderFactory</a>)</code></div>
@@ -184,6 +191,7 @@
<h3 class="api-name" id="getAppCheckToken(boolean)">getAppCheckToken</h3>
<pre class="api-signature no-pretty-print">abstract fun <a href="/docs/reference/kotlin/com/google/firebase/appcheck/FirebaseAppCheck.html#getAppCheckToken(boolean)">getAppCheckToken</a>(forceRefresh: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a>): <a href="https://developers.google.com/android/reference/com/google/android/gms/tasks/Task.html">Task</a><<a href="/docs/reference/kotlin/com/google/firebase/appcheck/AppCheckToken.html">AppCheckToken</a>!></pre>
<p>Requests a Firebase App Check token. This method should be used ONLY if you need to authorize requests to a non-Firebase backend. Requests to Firebase backends are authorized automatically if configured.</p>
+ <p>If your non-Firebase backend exposes sensitive or expensive endpoints that has low traffic volume, consider protecting it with <a href="https://firebase.google.com/docs/app-check/custom-resource-backend#replay-protection">Replay Protection</a>. In this case, use the #getLimitedUseAppCheckToken() instead to obtain a limited-use token.</p>
</div>
<div class="api-item"><a name="getInstance--"></a><a name="getinstance"></a>
<h3 class="api-name" id="getInstance()">getInstance</h3>
@@ -195,6 +203,12 @@
<pre class="api-signature no-pretty-print">java-static fun <a href="/docs/reference/kotlin/com/google/firebase/appcheck/FirebaseAppCheck.html#getInstance(com.google.firebase.FirebaseApp)">getInstance</a>(firebaseApp: <a href="/docs/reference/kotlin/com/google/firebase/FirebaseApp.html">FirebaseApp</a>): <a href="/docs/reference/kotlin/com/google/firebase/appcheck/FirebaseAppCheck.html">FirebaseAppCheck</a></pre>
<p>Gets the instance of <code>FirebaseAppCheck</code> associated with the given <code><a href="/docs/reference/kotlin/com/google/firebase/FirebaseApp.html">FirebaseApp</a></code> instance.</p>
</div>
+ <div class="api-item"><a name="getLimitedUseAppCheckToken--"></a><a name="getlimiteduseappchecktoken"></a>
+ <h3 class="api-name" id="getLimitedUseAppCheckToken()">getLimitedUseAppCheckToken</h3>
+ <pre class="api-signature no-pretty-print">abstract fun <a href="/docs/reference/kotlin/com/google/firebase/appcheck/FirebaseAppCheck.html#getLimitedUseAppCheckToken()">getLimitedUseAppCheckToken</a>(): <a href="https://developers.google.com/android/reference/com/google/android/gms/tasks/Task.html">Task</a><<a href="/docs/reference/kotlin/com/google/firebase/appcheck/AppCheckToken.html">AppCheckToken</a>!></pre>
+ <p>Requests a Firebase App Check token. This method should be used ONLY if you need to authorize requests to a non-Firebase backend. </p>
+ <p>Returns limited-use tokens that are intended for use with your non-Firebase backend endpoints that are protected with <a href="https://firebase.google.com/docs/app-check/custom-resource-backend#replay-protection">Replay Protection</a>. This method does not affect the token generation behavior of the #getAppCheckToken() method.</p>
+ </div>
<div class="api-item"><a name="installAppCheckProviderFactory-com.google.firebase.appcheck.AppCheckProviderFactory-"></a><a name="installappcheckproviderfactory"></a>
<h3 class="api-name" id="installAppCheckProviderFactory(com.google.firebase.appcheck.AppCheckProviderFactory)">installAppCheckProviderFactory</h3>
<pre class="api-signature no-pretty-print">abstract fun <a href="/docs/reference/kotlin/com/google/firebase/appcheck/FirebaseAppCheck.html#installAppCheckProviderFactory(com.google.firebase.appcheck.AppCheckProviderFactory)">installAppCheckProviderFactory</a>(factory: <a href="/docs/reference/kotlin/com/google/firebase/appcheck/AppCheckProviderFactory.html">AppCheckProviderFactory</a>): <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a></pre> |
Coverage Report 1Affected Products
Test Logs |
The public api surface has changed for the subproject appcheck_firebase-appcheck: Please update the api.txt files for the subprojects being affected by this change by running ./gradlew ${subproject}:generateApiTxtFile. Also perform a major/minor bump accordingly. |
Unit Test Results 60 files + 6 60 suites +6 1m 52s ⏱️ +53s Results for commit f88c995. ± Comparison against base commit 7eea13a. This pull request removes 401 and adds 128 tests. Note that renamed tests count towards both.
♻️ This comment has been updated with latest results. |
Size Report 1Affected Products
Test Logs |
Startup Time Report 1Note: Layout is sometimes suboptimal due to limited formatting support on GitHub. Please check this report on GCS. Notes
Startup Times
|
getLimitedUseAppCheckToken
.
Add an API for obtaining limited-use App Check tokens as per go/fac-1-use-client-sdk.