vybekiit 0.7.29 → 0.7.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin.js +3407 -2769
- package/dist/global-guidance/language.md +7 -102
- package/dist/global-skills/add-ai/SKILL.md +7 -8
- package/dist/global-skills/add-analytics/SKILL.md +4 -7
- package/dist/global-skills/add-app-clip/SKILL.md +1 -0
- package/dist/global-skills/add-blog/SKILL.md +4 -7
- package/dist/global-skills/add-files/SKILL.md +4 -7
- package/dist/global-skills/add-images/SKILL.md +4 -7
- package/dist/global-skills/add-language/SKILL.md +5 -8
- package/dist/global-skills/add-notifications/SKILL.md +4 -7
- package/dist/global-skills/add-realtime/SKILL.md +4 -7
- package/dist/global-skills/add-search/SKILL.md +4 -7
- package/dist/global-skills/add-signin/SKILL.md +4 -8
- package/dist/global-skills/add-teams/SKILL.md +4 -7
- package/dist/global-skills/aws-cdk/SKILL.md +1 -0
- package/dist/global-skills/aws-cloudformation/SKILL.md +1 -0
- package/dist/global-skills/aws-serverless/SKILL.md +169 -32
- package/dist/global-skills/aws-serverless/references/api-gateway.md +17 -0
- package/dist/global-skills/aws-serverless/references/architecture.md +9 -13
- package/dist/global-skills/aws-serverless/references/compute-decision-edge-cases.md +77 -0
- package/dist/global-skills/aws-serverless/references/lambda.md +3 -3
- package/dist/global-skills/aws-serverless/references/orchestration.md +46 -20
- package/dist/global-skills/aws-serverless/references/production.md +1 -1
- package/dist/global-skills/better-auth-best-practices/SKILL.md +1 -0
- package/dist/global-skills/better-auth-security-best-practices/SKILL.md +1 -0
- package/dist/global-skills/building-native-ui/SKILL.md +1 -0
- package/dist/global-skills/buy-domain/SKILL.md +4 -7
- package/dist/global-skills/check-safety/SKILL.md +5 -8
- package/dist/global-skills/claimable-postgres/SKILL.md +1 -0
- package/dist/global-skills/configure-capabilities/SKILL.md +1 -1
- package/dist/global-skills/connect-account/SKILL.md +1 -1
- package/dist/global-skills/create-auth-skill/SKILL.md +1 -0
- package/dist/global-skills/doctor/SKILL.md +1 -1
- package/dist/global-skills/eas-app-stores/SKILL.md +2 -1
- package/dist/global-skills/eas-app-stores/agents/openai.yaml +1 -1
- package/dist/global-skills/eas-hosting/SKILL.md +2 -1
- package/dist/global-skills/eas-hosting/agents/openai.yaml +1 -1
- package/dist/global-skills/eas-observe/SKILL.md +2 -1
- package/dist/global-skills/eas-observe/agents/openai.yaml +1 -1
- package/dist/global-skills/eas-simulator/SKILL.md +24 -16
- package/dist/global-skills/eas-simulator/agents/openai.yaml +1 -1
- package/dist/global-skills/eas-simulator/references/controllers.md +11 -7
- package/dist/global-skills/eas-simulator/references/logs-and-crashes.md +101 -0
- package/dist/global-skills/eas-simulator/references/run-your-app.md +8 -8
- package/dist/global-skills/eas-simulator/references/troubleshooting.md +14 -6
- package/dist/global-skills/eas-update/SKILL.md +2 -1
- package/dist/global-skills/eas-update/agents/openai.yaml +1 -1
- package/dist/global-skills/eas-update-insights/SKILL.md +2 -1
- package/dist/global-skills/eas-update-insights/agents/openai.yaml +1 -1
- package/dist/global-skills/eas-workflows/SKILL.md +2 -1
- package/dist/global-skills/eas-workflows/agents/openai.yaml +1 -1
- package/dist/global-skills/email-best-practices/SKILL.md +1 -0
- package/dist/global-skills/email-best-practices/references/sending-reliability.md +17 -22
- package/dist/global-skills/expo-animation/SKILL.md +2 -1
- package/dist/global-skills/expo-api-routes/SKILL.md +1 -0
- package/dist/global-skills/expo-app-clip/SKILL.md +2 -1
- package/dist/global-skills/expo-brownfield/SKILL.md +2 -1
- package/dist/global-skills/expo-cicd-workflows/SKILL.md +1 -0
- package/dist/global-skills/expo-data-fetching/SKILL.md +2 -1
- package/dist/global-skills/expo-deployment/SKILL.md +1 -0
- package/dist/global-skills/expo-design-system/SKILL.md +2 -1
- package/dist/global-skills/expo-dev-client/SKILL.md +2 -1
- package/dist/global-skills/expo-dom/SKILL.md +2 -1
- package/dist/global-skills/expo-examples/SKILL.md +2 -1
- package/dist/global-skills/expo-migrate-module/SKILL.md +2 -1
- package/dist/global-skills/expo-module/SKILL.md +2 -1
- package/dist/global-skills/expo-native-ui/SKILL.md +2 -1
- package/dist/global-skills/expo-observe/SKILL.md +1 -0
- package/dist/global-skills/expo-overview/SKILL.md +2 -1
- package/dist/global-skills/expo-project-structure/SKILL.md +2 -1
- package/dist/global-skills/expo-router/SKILL.md +2 -1
- package/dist/global-skills/expo-skill-eval/SKILL.md +1 -0
- package/dist/global-skills/expo-skill-feedback/SKILL.md +1 -0
- package/dist/global-skills/expo-tailwind-setup/SKILL.md +1 -0
- package/dist/global-skills/expo-ui/SKILL.md +2 -1
- package/dist/global-skills/expo-upgrade/SKILL.md +2 -1
- package/dist/global-skills/expo-web-to-native/SKILL.md +2 -1
- package/dist/global-skills/extension-to-functions-codebase/SKILL.md +2 -0
- package/dist/global-skills/firebase-ai-logic-basics/SKILL.md +162 -76
- package/dist/global-skills/firebase-ai-logic-basics/references/flutter_setup.md +37 -0
- package/dist/global-skills/firebase-ai-logic-basics/references/ios_setup.md +97 -3
- package/dist/global-skills/firebase-ai-logic-basics/references/tts_generation.md +676 -0
- package/dist/global-skills/firebase-ai-logic-basics/references/usage_patterns_android.md +88 -3
- package/dist/global-skills/firebase-ai-logic-basics/references/usage_patterns_web.md +91 -3
- package/dist/global-skills/firebase-app-hosting-basics/SKILL.md +6 -1
- package/dist/global-skills/firebase-auth-basics/SKILL.md +12 -6
- package/dist/global-skills/firebase-auth-basics/references/client_sdk_android.md +61 -23
- package/dist/global-skills/firebase-auth-basics/references/client_sdk_web.md +3 -3
- package/dist/global-skills/firebase-auth-basics/references/flutter_setup.md +22 -19
- package/dist/global-skills/firebase-auth-basics/references/security_rules.md +2 -2
- package/dist/global-skills/firebase-basics/SKILL.md +8 -2
- package/dist/global-skills/firebase-basics/references/android_setup.md +229 -23
- package/dist/global-skills/firebase-basics/references/ios_setup.md +57 -0
- package/dist/global-skills/firebase-basics/references/web_setup.md +52 -0
- package/dist/global-skills/firebase-crashlytics/SKILL.md +2 -0
- package/dist/global-skills/firebase-crashlytics/references/android_setup.md +99 -71
- package/dist/global-skills/firebase-crashlytics/references/ios_setup.md +1 -0
- package/dist/global-skills/firebase-data-connect/SKILL.md +2 -0
- package/dist/global-skills/firebase-data-connect/reference/config.md +8 -8
- package/dist/global-skills/firebase-data-connect/reference/realtime.md +4 -1
- package/dist/global-skills/firebase-data-connect/reference/sdk_android.md +84 -29
- package/dist/global-skills/firebase-data-connect/reference/sdk_web.md +8 -3
- package/dist/global-skills/firebase-data-connect/reference/security.md +13 -13
- package/dist/global-skills/firebase-firestore/SKILL.md +18 -7
- package/dist/global-skills/firebase-firestore/references/enterprise/android_sdk_usage.md +47 -21
- package/dist/global-skills/firebase-firestore/references/enterprise/indexes.md +2 -1
- package/dist/global-skills/firebase-firestore/references/standard/android_sdk_usage.md +63 -27
- package/dist/global-skills/firebase-firestore/references/standard/indexes.md +2 -1
- package/dist/global-skills/firebase-hosting-basics/SKILL.md +2 -0
- package/dist/global-skills/firebase-remote-config-basics/SKILL.md +3 -1
- package/dist/global-skills/firebase-remote-config-basics/references/android_setup.md +83 -92
- package/dist/global-skills/firebase-security-rules-auditor/SKILL.md +8 -6
- package/dist/global-skills/firestore-rules-creation/SKILL.md +23 -10
- package/dist/global-skills/go-live/SKILL.md +7 -7
- package/dist/global-skills/harden/SKILL.md +7 -10
- package/dist/global-skills/instrument-feature-flags/SKILL.md +1 -0
- package/dist/global-skills/instrument-product-analytics/SKILL.md +1 -0
- package/dist/global-skills/manifest.json +2 -1
- package/dist/global-skills/mongodb-atlas-stream-processing/SKILL.md +1 -0
- package/dist/global-skills/mongodb-connection/SKILL.md +1 -0
- package/dist/global-skills/mongodb-mcp-setup/SKILL.md +1 -0
- package/dist/global-skills/mongodb-natural-language-querying/SKILL.md +1 -0
- package/dist/global-skills/mongodb-qe-size-estimation/SKILL.md +224 -0
- package/dist/global-skills/mongodb-query-optimizer/SKILL.md +1 -0
- package/dist/global-skills/mongodb-schema-design/SKILL.md +1 -0
- package/dist/global-skills/mongodb-search-and-ai/SKILL.md +1 -0
- package/dist/global-skills/native-data-fetching/SKILL.md +1 -0
- package/dist/global-skills/neon/SKILL.md +34 -5
- package/dist/global-skills/neon-ai-gateway/SKILL.md +44 -14
- package/dist/global-skills/neon-auth/SKILL.md +1 -0
- package/dist/global-skills/neon-functions/SKILL.md +12 -0
- package/dist/global-skills/neon-functions/references/native-binaries.md +188 -0
- package/dist/global-skills/neon-object-storage/SKILL.md +1 -0
- package/dist/global-skills/neon-postgres/SKILL.md +2 -1
- package/dist/global-skills/neon-postgres/references/full-text-search.md +27 -17
- package/dist/global-skills/neon-postgres/references/hybrid-search.md +19 -15
- package/dist/global-skills/neon-postgres/references/lakebase-search-drizzle.md +99 -14
- package/dist/global-skills/neon-postgres/references/vector-search.md +93 -10
- package/dist/global-skills/neon-postgres-branches/SKILL.md +1 -0
- package/dist/global-skills/neon-postgres-egress-optimizer/SKILL.md +1 -0
- package/dist/global-skills/onboarding/SKILL.md +14 -13
- package/dist/global-skills/plan-my-idea/SKILL.md +1 -1
- package/dist/global-skills/publish-app/SKILL.md +1 -1
- package/dist/global-skills/publish-extension/SKILL.md +1 -1
- package/dist/global-skills/resend/SKILL.md +5 -15
- package/dist/global-skills/resend/references/domains.md +1 -1
- package/dist/global-skills/resend/references/installation.md +3 -3
- package/dist/global-skills/resend/references/sending/best-practices.md +3 -3
- package/dist/global-skills/resend/references/sending/single-email-examples.md +3 -3
- package/dist/global-skills/resend/references/webhooks.md +2 -0
- package/dist/global-skills/reset-password/SKILL.md +4 -6
- package/dist/global-skills/save-data/SKILL.md +3 -0
- package/dist/global-skills/sentry-sdk-setup/SKILL.md +1 -0
- package/dist/global-skills/sentry-workflow/SKILL.md +1 -0
- package/dist/global-skills/setup-email/SKILL.md +7 -8
- package/dist/global-skills/setup-payments/SKILL.md +10 -12
- package/dist/global-skills/setup-sms/SKILL.md +1 -1
- package/dist/global-skills/sign-in-with-email-link/SKILL.md +4 -6
- package/dist/global-skills/sign-in-with-google/SKILL.md +14 -13
- package/dist/global-skills/sign-in-with-phone/SKILL.md +5 -7
- package/dist/global-skills/stripe-best-practices/SKILL.md +20 -19
- package/dist/global-skills/stripe-best-practices/references/billing.md +2 -0
- package/dist/global-skills/stripe-best-practices/references/payments.md +1 -1
- package/dist/global-skills/stripe-best-practices/references/tax.md +27 -15
- package/dist/global-skills/supabase/CHANGELOG.md +19 -0
- package/dist/global-skills/supabase/SKILL.md +1 -0
- package/dist/global-skills/supabase-postgres-best-practices/SKILL.md +1 -0
- package/dist/global-skills/track-errors/SKILL.md +12 -13
- package/dist/global-skills/update-kit/SKILL.md +1 -1
- package/dist/global-skills/upgrading-expo/SKILL.md +1 -0
- package/dist/global-skills/use-dom/SKILL.md +1 -0
- package/dist/global-skills/use-railway/SKILL.md +9 -8
- package/dist/global-skills/use-railway/references/configure.md +34 -1
- package/dist/global-skills/use-railway/references/iac.md +3 -0
- package/dist/global-skills/use-railway/references/tracing.md +97 -44
- package/dist/global-skills/vercel-composition-patterns/SKILL.md +1 -0
- package/dist/global-skills/vercel-react-best-practices/SKILL.md +1 -0
- package/dist/global-skills/vybekiitReferences/backend/AGENTS.md +11 -3
- package/dist/global-skills/vybekiitReferences/backend/agent/goal-index.md +1 -1
- package/dist/global-skills/vybekiitReferences/backend/agent/goal-routes.json +229 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/mcp-setup.md +11 -2
- package/dist/global-skills/vybekiitReferences/backend/agent/session-bootstrap.md +1 -1
- package/dist/global-skills/vybekiitReferences/backend/agent/tech-references.md +1 -1
- package/dist/global-skills/vybekiitReferences/backend/language.md +7 -102
- package/dist/global-skills/vybekiitReferences/backend/platform-skills/deploy-railway-vybekiit.md +2 -2
- package/dist/global-skills/vybekiitReferences/backend/platform-skills/extend-capabilities-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/backend/platform-skills/mongodb-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/extension/AGENTS.md +11 -3
- package/dist/global-skills/vybekiitReferences/extension/agent/goal-index.md +1 -1
- package/dist/global-skills/vybekiitReferences/extension/agent/goal-routes.json +239 -0
- package/dist/global-skills/vybekiitReferences/extension/agent/mcp-setup.md +10 -1
- package/dist/global-skills/vybekiitReferences/extension/agent/session-bootstrap.md +1 -1
- package/dist/global-skills/vybekiitReferences/extension/agent/tech-references.md +1 -1
- package/dist/global-skills/vybekiitReferences/extension/agent/ui-sources.md +11 -8
- package/dist/global-skills/vybekiitReferences/extension/language.md +7 -92
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/browser-automation-vybekiit.md +9 -1
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/env-secrets-vybekiit.md +1 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/extend-capabilities-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/observability-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/sentry-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/mobile/AGENTS.md +27 -12
- package/dist/global-skills/vybekiitReferences/mobile/agent/goal-index.md +1 -1
- package/dist/global-skills/vybekiitReferences/mobile/agent/goal-routes.json +279 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-setup.md +10 -1
- package/dist/global-skills/vybekiitReferences/mobile/agent/session-bootstrap.md +1 -1
- package/dist/global-skills/vybekiitReferences/mobile/agent/tech-references.md +1 -1
- package/dist/global-skills/vybekiitReferences/mobile/agent/ui-sources.mobile.md +1 -1
- package/dist/global-skills/vybekiitReferences/mobile/language.md +7 -93
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/env-secrets-vybekiit.md +1 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/extend-capabilities-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/i18n-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/observability-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/sentry-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/ui-port-from-web-vybekiit.md +2 -2
- package/dist/global-skills/vybekiitReferences/spa/AGENTS.md +11 -3
- package/dist/global-skills/vybekiitReferences/spa/agent/goal-index.md +1 -1
- package/dist/global-skills/vybekiitReferences/spa/agent/goal-routes.json +267 -0
- package/dist/global-skills/vybekiitReferences/spa/agent/mcp-setup.md +10 -1
- package/dist/global-skills/vybekiitReferences/spa/agent/session-bootstrap.md +1 -1
- package/dist/global-skills/vybekiitReferences/spa/agent/ui-sources.md +11 -8
- package/dist/global-skills/vybekiitReferences/spa/language.md +7 -11
- package/dist/global-skills/vybekiitReferences/web/AGENTS.md +15 -30
- package/dist/global-skills/vybekiitReferences/web/agent/goal-index.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/agent/goal-routes.json +366 -0
- package/dist/global-skills/vybekiitReferences/web/agent/mcp-setup.md +11 -2
- package/dist/global-skills/vybekiitReferences/web/agent/session-bootstrap.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/language.md +7 -102
- package/dist/global-skills/vybekiitReferences/web/platform-skills/ai-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/analytics-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/assets-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/better-auth-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/browser-automation-vybekiit.md +9 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/cms-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/compliance-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/deploy-github-pages-vybekiit.md +2 -2
- package/dist/global-skills/vybekiitReferences/web/platform-skills/deploy-railway-vybekiit.md +2 -2
- package/dist/global-skills/vybekiitReferences/web/platform-skills/deploy-vercel-vybekiit.md +2 -2
- package/dist/global-skills/vybekiitReferences/web/platform-skills/env-secrets-vybekiit.md +1 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/extend-capabilities-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/i18n-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/jobs-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/kv-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/lemon-squeezy-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/mongodb-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/notifications-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/observability-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/paypal-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/realtime-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/registrar-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/search-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/sentry-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/seo-vybekiit.md +1 -3
- package/dist/global-skills/vybekiitReferences/web/platform-skills/supabase-vybekiit.md +1 -1
- package/dist/global-skills/vybekiitReferences/web/platform-skills/tenancy-vybekiit.md +1 -1
- package/dist/global-skills/web-to-native/SKILL.md +1 -0
- package/dist/global-skills/workers-best-practices/SKILL.md +5 -4
- package/dist/global-skills/workers-best-practices/references/configuration.md +1 -1
- package/dist/global-skills/workers-best-practices/references/platform-apis.md +5 -5
- package/dist/global-skills/workers-best-practices/references/runtime-patterns.md +1 -1
- package/dist/global-skills/wrangler/SKILL.md +28 -25
- package/dist/global-skills/xcode-project-setup/SKILL.md +2 -0
- package/package.json +10 -8
|
@@ -1,108 +1,99 @@
|
|
|
1
|
-
# Firebase Remote Config Android Setup Guide
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
1
|
+
# Firebase Remote Config - Android Setup Guide (Kotlin)
|
|
2
|
+
|
|
3
|
+
This guide describes the SDK setup and basic usage patterns for Firebase Remote
|
|
4
|
+
Config in an Android app using Kotlin DSL (`build.gradle.kts`) and Kotlin code.
|
|
5
|
+
|
|
6
|
+
## Prerequisites
|
|
7
|
+
|
|
8
|
+
IMPORTANT: Before specifically working with Firebase Remote Config, make sure to
|
|
9
|
+
use the skill and reference `firebase_basics/references/android_setup` to ensure
|
|
10
|
+
the following is done.
|
|
11
|
+
|
|
12
|
+
- The Firebase CLI is available and authenticated.
|
|
13
|
+
- An Android project exists and is registered with a Firebase Project.
|
|
14
|
+
- The Android project has a Firebase config file (`google-services.json`) and
|
|
15
|
+
the Google services Gradle plugin (`google-services`).
|
|
16
|
+
|
|
17
|
+
## 1. Add dependencies to Gradle build files
|
|
18
|
+
|
|
19
|
+
> [!IMPORTANT] **[AGENT] RESOLVING THE SDK VERSION DETERMINISTICALLY** Never
|
|
20
|
+
> guess or hardcode a memorized out-of-date SDK or plugin version. Before adding
|
|
21
|
+
> dependencies, you MUST query the latest available versions directly from the
|
|
22
|
+
> Google Maven Repository:
|
|
23
|
+
>
|
|
24
|
+
> ```bash
|
|
25
|
+
> # Find the latest Firebase Android BoM version
|
|
26
|
+
> curl -s https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-bom/maven-metadata.xml | grep -oE '<latest>[^<]+' | cut -d'>' -f2
|
|
27
|
+
>
|
|
28
|
+
> # Find the latest firebase-config version
|
|
29
|
+
> curl -s https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-config/maven-metadata.xml | grep -oE '<latest>[^<]+' | cut -d'>' -f2
|
|
30
|
+
> ```
|
|
31
|
+
>
|
|
32
|
+
> If the dependency is already declared, fetch the exact resolved version
|
|
33
|
+
> currently active in the workspace's build graph:
|
|
34
|
+
>
|
|
35
|
+
> ```bash
|
|
36
|
+
> ./gradlew -q :app:dependencyInsight --dependency firebase-config --configuration releaseRuntimeClasspath
|
|
37
|
+
> ```
|
|
38
|
+
|
|
39
|
+
These changes are made to the Android project's Gradle files.
|
|
40
|
+
|
|
41
|
+
Google Analytics for Firebase is highly recommended as it enables conditional
|
|
42
|
+
targeting based on user properties and audiences. Additional manual setup for
|
|
43
|
+
Google Analytics is required (see "Before you begin" in
|
|
44
|
+
https://firebase.google.com/docs/analytics/android/get-started.md.txt)
|
|
45
|
+
|
|
46
|
+
In the **module (app-level)** `build.gradle.kts` (usually
|
|
47
|
+
`<project>/<app-module>/build.gradle.kts`), add the dependencies for Firebase
|
|
48
|
+
Remote Config and Google Analytics:
|
|
33
49
|
|
|
34
50
|
```kotlin
|
|
35
|
-
|
|
36
|
-
//
|
|
37
|
-
|
|
51
|
+
dependencies {
|
|
52
|
+
// [AGENT] Fetch the latest resolved version using the Gradle command above
|
|
53
|
+
implementation(platform("com.google.firebase:firebase-bom:<latest_bom_version>"))
|
|
54
|
+
|
|
55
|
+
// Add the dependencies for the Firebase Remote Config and Analytics libraries
|
|
56
|
+
// When using the BoM, don't specify versions in Firebase library dependencies
|
|
57
|
+
implementation("com.google.firebase:firebase-config")
|
|
58
|
+
implementation("com.google.firebase:firebase-analytics")
|
|
38
59
|
}
|
|
39
60
|
```
|
|
40
61
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
62
|
+
______________________________________________________________________
|
|
63
|
+
|
|
64
|
+
## 2. Set in-app defaults
|
|
65
|
+
|
|
66
|
+
1. Define default values so the app has functional logic before it ever fetches
|
|
67
|
+
a template from the server. Create an XML file (e.g.,
|
|
68
|
+
`res/xml/remote_config_defaults.xml`):
|
|
69
|
+
|
|
70
|
+
```xml
|
|
71
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
72
|
+
<!-- Example Remote Config Defaults File -->
|
|
73
|
+
<defaultsMap>
|
|
74
|
+
<entry>
|
|
75
|
+
<key>welcome_message</key>
|
|
76
|
+
<value>Welcome to the app!</value>
|
|
77
|
+
</entry>
|
|
78
|
+
<entry>
|
|
79
|
+
<key>is_feature_enabled</key>
|
|
80
|
+
<value>false</value>
|
|
81
|
+
</entry>
|
|
82
|
+
</defaultsMap>
|
|
50
83
|
```
|
|
51
84
|
|
|
52
|
-
1.
|
|
53
|
-
Bill of Materials (BoM) is the best practice for version management.
|
|
85
|
+
1. Initialize the SDK in the Activity or Application class:
|
|
54
86
|
|
|
55
87
|
```kotlin
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
// Import the Firebase BoM
|
|
60
|
-
implementation(platform("com.google.firebase:firebase-bom:<latest_bom_version>"))
|
|
61
|
-
|
|
62
|
-
// Add the dependencies for Remote Config and Analytics
|
|
63
|
-
implementation("com.google.firebase:firebase-config")
|
|
64
|
-
implementation("com.google.firebase:firebase-analytics")
|
|
65
|
-
}
|
|
88
|
+
val remoteConfig = Firebase.remoteConfig
|
|
89
|
+
remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)
|
|
66
90
|
```
|
|
67
91
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
The following steps cover the essential patterns for using Remote Config
|
|
71
|
-
effectively.
|
|
72
|
-
|
|
73
|
-
### Set In-App Defaults
|
|
74
|
-
|
|
75
|
-
Define default values so your app has functional logic before it ever fetches a
|
|
76
|
-
template from the server. Create an XML file (e.g.,
|
|
77
|
-
`res/xml/remote_config_defaults.xml`):
|
|
78
|
-
```xml
|
|
79
|
-
<?xml version="1.0" encoding="utf-8"?>
|
|
80
|
-
<!-- Example Remote Config Defaults File -->
|
|
81
|
-
<defaultsMap>
|
|
82
|
-
<entry>
|
|
83
|
-
<key>welcome_message</key>
|
|
84
|
-
<value>Welcome to the app!</value>
|
|
85
|
-
</entry>
|
|
86
|
-
<entry>
|
|
87
|
-
<key>is_feature_enabled</key>
|
|
88
|
-
<value>false</value>
|
|
89
|
-
</entry>
|
|
90
|
-
</defaultsMap>
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
Then, initialize the SDK in your Activity or Application class:
|
|
94
|
-
|
|
95
|
-
```kotlin
|
|
96
|
-
import com.google.firebase.Firebase
|
|
97
|
-
import com.google.firebase.remoteconfig.remoteConfig
|
|
98
|
-
|
|
99
|
-
val remoteConfig = Firebase.remoteConfig
|
|
100
|
-
remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)
|
|
101
|
-
```
|
|
92
|
+
______________________________________________________________________
|
|
102
93
|
|
|
103
|
-
|
|
94
|
+
## 3. Fetch and activate values
|
|
104
95
|
|
|
105
|
-
To apply values from the cloud,
|
|
96
|
+
To apply values from the cloud, fetch them and then activate them in the app:
|
|
106
97
|
|
|
107
98
|
```kotlin
|
|
108
99
|
remoteConfig.fetchAndActivate()
|
|
@@ -3,7 +3,9 @@ name: firebase-security-rules-auditor
|
|
|
3
3
|
description: >-
|
|
4
4
|
Audits Firebase (Firestore, Cloud Storage) security rules for vulnerabilities, privilege escalation, role bypasses, create vs update inconsistencies, resource exhaustion, type safety, size limits, and hasOnly ownership checks. Use when auditing/reviewing rules, running red-team rule assessments, or scoring against auditor checklists. Don't use for Firebase CLI (login, deploy), Auth, Crashlytics, Remote Config, or database queries.
|
|
5
5
|
metadata:
|
|
6
|
+
author: Google LLC
|
|
6
7
|
category: CloudSecurity
|
|
8
|
+
disable-model-invocation: true
|
|
7
9
|
---
|
|
8
10
|
|
|
9
11
|
# Overview
|
|
@@ -37,12 +39,11 @@ operations to bypass it.
|
|
|
37
39
|
1. **Type Safety:** Are fields checked with 'is string', 'is int', or 'is
|
|
38
40
|
timestamp'?
|
|
39
41
|
1. **Field-Level vs. Identity-Level Security:** Be careful with rules that use
|
|
40
|
-
`hasOnly()` or `diff()`. While these restrict *which* fields can be
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
vulnerability.
|
|
42
|
+
`hasOnly()` or `diff()`. While these restrict *which* fields can be updated,
|
|
43
|
+
they do NOT restrict *who* can update them unless an ownership check (e.g.,
|
|
44
|
+
`resource.data.uid == request.auth.uid`) is also present. If a rule allows
|
|
45
|
+
any authenticated user to update fields on another user's document without a
|
|
46
|
+
corresponding ownership check, it is a data integrity vulnerability.
|
|
46
47
|
|
|
47
48
|
### Admin Bootstrapping & Privileges:
|
|
48
49
|
|
|
@@ -68,6 +69,7 @@ single hardcoded admin email (e.g., checking request.auth.token.email ==
|
|
|
68
69
|
access via secure ACLs.
|
|
69
70
|
|
|
70
71
|
Return your assessment in JSON format using the following structure:
|
|
72
|
+
|
|
71
73
|
```json
|
|
72
74
|
{
|
|
73
75
|
"score": 1,
|
|
@@ -3,14 +3,24 @@ name: firestore-rules-creation
|
|
|
3
3
|
description: >-
|
|
4
4
|
Designs, authors, refactors, and hardens production-grade Cloud Firestore Security Rules (firestore.rules). IMPORTANT: If subagent delegation AND the firestore-rules-author subagent are available in your environment, delegate authoring firestore.rules to the firestore-rules-author subagent. If subagent delegation is unavailable (e.g. not enabled in the IDE), firestore-rules-author is not installed, or you are running inside firestore-rules-author, follow this skill directly.
|
|
5
5
|
metadata:
|
|
6
|
+
author: Google LLC
|
|
6
7
|
category: Databases
|
|
8
|
+
disable-model-invocation: true
|
|
7
9
|
---
|
|
8
10
|
|
|
9
11
|
# Firestore Security Rules Creation
|
|
10
12
|
|
|
11
13
|
> [!IMPORTANT] **Subagent Delegation vs. Direct Authoring**
|
|
12
|
-
>
|
|
13
|
-
> - **If subagent delegation
|
|
14
|
+
>
|
|
15
|
+
> - **If subagent delegation AND the `firestore-rules-author` subagent are
|
|
16
|
+
> available** in your active environment: **DO NOT** author `firestore.rules`
|
|
17
|
+
> directly in the main agent. Invoke the `firestore-rules-author` subagent and
|
|
18
|
+
> delegate the analysis and creation of `firestore.rules` to it.
|
|
19
|
+
> - **If subagent delegation is unavailable** (e.g., in IDE environments where
|
|
20
|
+
> subagent tools are not enabled) **OR the `firestore-rules-author` subagent
|
|
21
|
+
> is not installed**, **OR if you are already executing inside
|
|
22
|
+
> `firestore-rules-author`**: proceed with the workflow below to author
|
|
23
|
+
> `firestore.rules` directly.
|
|
14
24
|
|
|
15
25
|
You are an expert Firebase Security Rules engineer with deep knowledge of
|
|
16
26
|
Firestore security best practices. Your task is to generate comprehensive,
|
|
@@ -44,7 +54,9 @@ Follow this structured workflow strictly:
|
|
|
44
54
|
- CRUD operations (create, read, update, delete)
|
|
45
55
|
- Authentication patterns (Firebase Auth, custom tokens, anonymous)
|
|
46
56
|
- Access patterns and business logic rules
|
|
47
|
-
1. **Synthesize your findings** concisely (in memory; do not create extra
|
|
57
|
+
1. **Synthesize your findings** concisely (in memory; do not create extra
|
|
58
|
+
untracked scratch files in the workspace) and refer to them when generating
|
|
59
|
+
the security rules.
|
|
48
60
|
|
|
49
61
|
#### Phase-2: Security Rules Generation
|
|
50
62
|
|
|
@@ -356,12 +368,12 @@ match /users/{userId} {
|
|
|
356
368
|
pollution. For example, a `tags` array must verify that every item is a string
|
|
357
369
|
AND that each string is within a reasonable length (e.g., < 20 chars).
|
|
358
370
|
|
|
359
|
-
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
371
|
+
- **Permission-Field Lockdown:** Fields that control access (e.g., `editors`,
|
|
372
|
+
`viewers`, `roles`, `role`, `ownerId`) **MUST** be immutable for non-owner
|
|
373
|
+
editors. In `update` rules, use `areImmutableFieldsUnchanged()` for these
|
|
374
|
+
fields unless the `request.auth.uid` matches the document's original
|
|
375
|
+
owner/creator. This prevents "Permission Escalation" where a collaborator
|
|
376
|
+
could grant themselves higher privileges or remove the owner.
|
|
365
377
|
|
|
366
378
|
### Advanced Validation for Business Logic
|
|
367
379
|
|
|
@@ -549,7 +561,8 @@ following attack vectors. You MUST document the outcome of each attempt.
|
|
|
549
561
|
ones) call the `isValidX()` function? If an `allow update` rule only checks
|
|
550
562
|
`isOwner()`, it is a CRITICAL vulnerability.
|
|
551
563
|
|
|
552
|
-
Evaluate each attack attempt mentally (do not create separate untracked
|
|
564
|
+
Evaluate each attack attempt mentally (do not create separate untracked
|
|
565
|
+
attack-log files). If ANY attack succeeds:
|
|
553
566
|
|
|
554
567
|
- Fix the security hole
|
|
555
568
|
- Regenerate the rules
|
|
@@ -30,13 +30,10 @@ asked.
|
|
|
30
30
|
## Steps
|
|
31
31
|
|
|
32
32
|
<!-- vybekiit:page-recipe-install -->
|
|
33
|
-
0. **
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
Also reference `packages/agentKit` `getPageRecipeInstall('go-live')` / page-recipe-manifest.json.
|
|
38
|
-
**Verify:** route builds and shows practice UI before provider wiring.
|
|
39
|
-
|
|
33
|
+
0. **Add the ready-made page first.** Run `vybekiit add page-recipe launch-checklist`. It adds the page
|
|
34
|
+
at `/launch` and lists any data setup to run next. Keep every `TODO:` in the page and fill
|
|
35
|
+
each one in as you connect the real service.
|
|
36
|
+
**Verify:** `/launch` opens and shows practice content.
|
|
40
37
|
|
|
41
38
|
1. **Pre-flight check.** Run `vybekiit doctor` to make sure the deploy tool is installed, then run
|
|
42
39
|
the project's checks (tests + build) yourself. Asset optimization runs in `prebuild` / start hooks
|
|
@@ -56,6 +53,9 @@ asked.
|
|
|
56
53
|
have the builder run the one sign-in command it printed — a browser window opens, they click
|
|
57
54
|
"approve," and that's the only thing they do (this works the same whichever host their setup
|
|
58
55
|
uses). Then you create the project and connect the app.
|
|
56
|
+
Going online with Cloudflare and need its access key? Run `vybekiit-automate cf setup --json`.
|
|
57
|
+
The builder signs in to Cloudflare once in the browser it opens; it then creates the key and saves
|
|
58
|
+
`CLOUDFLARE_ACCOUNT_ID` and `CLOUDFLARE_API_TOKEN` to `.env`, printing only their names.
|
|
59
59
|
**Verify:** the deploy tool reports they're signed in, and the project shows up.
|
|
60
60
|
|
|
61
61
|
4. **Move the secret settings over.** Copy the needed secret settings into the app's home for them
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: harden
|
|
3
|
-
description: "the builder's app is protected against the common attacks every app faces — someone. Use when the vibe coder says something like: lock down; make it safe; protect from abuse."
|
|
3
|
+
description: "the builder's app is protected against the common attacks every app faces — someone hammering the login to guess passwords, bots flooding requests, and other sites secretly making requests on a visitor's behalf. Use when the vibe coder says something like: lock down; make it safe; protect from abuse."
|
|
4
4
|
metadata:
|
|
5
5
|
vybekiit-generated: buyer-skill-stub
|
|
6
6
|
---
|
|
@@ -29,7 +29,7 @@ translate every error · celebrate. You do all the work; the builder just approv
|
|
|
29
29
|
> app is safe," not "your app is exposed."
|
|
30
30
|
>
|
|
31
31
|
> (Under the hood — agent-only) Protection is `@vybekiit/security`, driven entirely by the `SECURITY_*`
|
|
32
|
-
> keys in
|
|
32
|
+
> keys in `settings.env` (the single source of truth — see core `securityConfigSchema`). The web app enforces
|
|
33
33
|
> it in `middleware.ts` (already wired, on by default: same-origin lock + per-IP rate limit on
|
|
34
34
|
> `/api/*`). The same toggles drive the Cloudflare edge config in `infra/cloudflare/` at go-live. Never
|
|
35
35
|
> name "rate limit", "CORS", or "origin" to the builder unless they ask — say "request limits" and
|
|
@@ -38,19 +38,16 @@ translate every error · celebrate. You do all the work; the builder just approv
|
|
|
38
38
|
## Steps
|
|
39
39
|
|
|
40
40
|
<!-- vybekiit:page-recipe-install -->
|
|
41
|
-
0. **
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
Also reference `packages/agentKit` `getPageRecipeInstall('harden')` / page-recipe-manifest.json.
|
|
46
|
-
**Verify:** route builds and shows practice UI before provider wiring.
|
|
47
|
-
|
|
41
|
+
0. **Add the ready-made page first.** Run `vybekiit add page-recipe audit-log`. It adds the page
|
|
42
|
+
at `/admin/audit-log` and lists any data setup to run next. Keep every `TODO:` in the page and fill
|
|
43
|
+
each one in as you connect the real service.
|
|
44
|
+
**Verify:** `/admin/audit-log` opens and shows practice content.
|
|
48
45
|
|
|
49
46
|
1. **Explain in one line.** *"I'm going to make sure your app is safe from abuse — limiting how fast
|
|
50
47
|
anyone can hammer it and blocking requests pretending to come from other sites. It's already on; I'll
|
|
51
48
|
tune it to your app."*
|
|
52
49
|
|
|
53
|
-
2. **Confirm it's on.** Check
|
|
50
|
+
2. **Confirm it's on.** Check `settings.env` has `SECURITY_RATE_LIMIT="on"` and `SECURITY_ORIGIN_LOCK="on"`
|
|
54
51
|
(these are the defaults; if a previous step turned one off, turn it back on unless the builder asked
|
|
55
52
|
otherwise). Confirm `middleware.ts` is present.
|
|
56
53
|
**Verify:** both switches are `on` and the app still builds.
|
|
@@ -98,6 +98,7 @@
|
|
|
98
98
|
"mongodb-connection",
|
|
99
99
|
"mongodb-mcp-setup",
|
|
100
100
|
"mongodb-natural-language-querying",
|
|
101
|
+
"mongodb-qe-size-estimation",
|
|
101
102
|
"mongodb-query-optimizer",
|
|
102
103
|
"mongodb-schema-design",
|
|
103
104
|
"mongodb-search-and-ai",
|
|
@@ -151,5 +152,5 @@
|
|
|
151
152
|
"resources": [
|
|
152
153
|
"vybekiitReferences"
|
|
153
154
|
],
|
|
154
|
-
"count":
|
|
155
|
+
"count": 148
|
|
155
156
|
}
|