Local deployment template requires ADC and Cloud Logging at import time
- Dominant language
- Python
- Stars
- 5.9k
- Forks
- 660
- PR merge metrics
- No merged PRs in 30d
Description
### Baseline
Reproduced from v1.3.1 at `5a306f8956cb1eeae69f9709de0e4d61b44e11e7`.
### Reproduction
1. Generate an ADK project with `deployment_target: none`.
2. Use an isolated local environment without Application Default Credentials.
3. Import or start the generated `app/fast_api_app.py`.
The generated module unconditionally calls `google.auth.default()`, constructs `google.cloud.logging.Client()`, and always sets `otel_to_cloud=True`.
### Actual behavior
A local-only template needs cloud credentials and a Cloud Logging dependency merely to import/start. This makes the `none` target fail in a normal offline/no-ADC development environment.
### Expected behavior
The local target should use Python stdlib logging and start without ADC. Existing cloud OTEL behavior should remain opt-in through the public `--otel-to-cloud` flag only.
### Minimal fix
- use `logging.getLogger(__name__)` in the local template and remove its Cloud Logging dependency;
- pass a private child-only `AGENTS_CLI_OTEL_TO_CLOUD=1` value only when `--otel-to-cloud` is explicitly set;
- remove any inherited copy of that private variable when the option is off;
- read the private flag before loading project `.env` files, accepting only the exact value `1`.
Reference implementation: https://github.com/benagentai93-dot/agents-cli/commit/d888f8db85d05e7bb4ed92c711045a246c00b537
### Test evidence
Runnable regressions cover dependency output, import without ADC, exact opt-in behavior, inherited-environment removal, explicit child propagation, and the existing ADK fallback flag.
Fork verification on Python 3.11/3.13:
- focused Batch 1 suite: 17 passed
- full root suite: 19 passed
- lint, type check, build, and installed-wheel smoke: passed
Contributor guide
Research direction
Generate an ADK project with deployment_target: none, then inspect app/fast_api_app.py and import it in an isolated environment without Application Default Credentials. Trace the --otel-to-cloud entry point and child environment handling, then run the reported regression suite; done means local startup needs no ADC or Cloud Logging, while exact opt-in propagation and existing fallback behavior remain covered.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- google-cloud, python
- Domain
- cli, cloud
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 72/100