Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Add a sample-app-generator skill: scaffold runnable starter apps against an Azure DocumentDB cluster

Abierto
#16 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
35/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
azure, csharp, dockerfile, java, mongodb, node.js, python

Línea de trabajo

Lee primero el patrón existente de skills//SKILL.md, docs/SKILLS.md y scripts/validate-skills.ps1; después, inspecciona las skills referenciadas de security, high-availability y full-text-search. Resuelve las preguntas abiertas sobre generation y Java-framework, añade las reglas y plantillas de Node.js/Python propuestas, y valida la skill. La tarea estará terminada cuando se cumplan los criterios de aceptación, incluida la verificación del maintainer contra un clúster activo.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Summary

Add a new skill — sample-app-generator — that scaffolds a runnable starter application against an Azure DocumentDB cluster. The skill should let an agent generate a minimal but production-shaped sample app for a target language/framework, wire it up to a user-provided cluster, and verify the connection works end-to-end.

Motivation

Every developer onboarding to Azure DocumentDB writes essentially the same first hundred lines: connection-string handling, TLS, retry, a minimal CRUD path, and a way to confirm "yes, I'm actually connected." Today there is no canonical scaffold and the existing skills (security, storage, HA, full-text-search) all assume the developer has already got a working client.

A sample-app-generator skill closes that gap and gives the rest of the agent-kit a concrete launch surface: "generate the starter, then ask me about indexing / FTS / RBAC."

Proposed scope

In scope (v1)
  1. Language / framework matrix — minimum viable set:
    • Node.js + native mongodb driver
    • Python + pymongo
    • C# + MongoDB.Driver
    • Java + mongodb-driver-sync
  2. Generated app shape (same across languages):
    • README.md with run instructions
    • Config via environment variables (DOCUMENTDB_CONNECTION_STRING, DOCUMENTDB_DATABASE)
    • TLS-enabled client construction (matches security-tls-required rule)
    • One database + one collection
    • CRUD endpoints / functions: insert, find-by-id, update, delete, list-paged
    • A /healthz-style probe that does a ping against the cluster
    • Basic retry with backoff on transient errors
    • Dockerfile (where it makes sense) + .env.example
  3. Auth modes — the generator should support choosing one at scaffold time:
    • Connection-string + native admin user (default, easiest)
    • Microsoft Entra ID via managed identity (matches security-entra-rbac rule) — generated samples show the MONGODB-OIDC mechanism wired in
  4. Optional add-on flags:
    • --with-fts → add a vector / full-text search example collection and a search endpoint (links into the existing full-text-search skill)
    • --with-private-endpoint → emit a Bicep snippet alongside the app for cluster + PE provisioning (links into security-private-endpoint)
  5. Validation step — the skill should be able to run the generated app's /healthz probe to confirm the connection string works before handing off to the user.
Out of scope (v1)
  • Migrating from MongoDB Atlas / CosmosDB-Mongo-vCore — that's a separate "migration" skill.
  • Multi-region or read-replica wiring — covered by HA skill; the generator may reference it but not duplicate it.
  • ORM-style abstractions (Mongoose, EF Core mappings) — keep v1 driver-native to stay close to the wire.
  • Web UI / front-end — the sample is API/CLI only.

Proposed skill layout

Following the existing agent-kit pattern (skills/<name>/SKILL.md + rule files):

skills/sample-app-generator/
├── SKILL.md
├── rules/
│   ├── generator-language-matrix.md       # which langs/frameworks are supported and why
│   ├── generator-connection-config.md     # env-var contract, TLS, retry defaults
│   ├── generator-auth-mode-selection.md   # native-user vs Entra OIDC; when to choose which
│   ├── generator-crud-shape.md            # canonical CRUD endpoint/function signatures
│   ├── generator-healthz-probe.md         # what a working probe looks like; failure modes
│   ├── generator-fts-addon.md             # how the --with-fts flag composes with full-text-search skill
│   └── generator-private-endpoint-addon.md# how --with-private-endpoint composes with security skill
└── templates/
    ├── node/
    ├── python/
    ├── csharp/
    └── java/

Templates live under templates/ and are rendered by the agent (or a small helper script in scripts/) given the user's choices.

Cross-references with existing skills

The generator deliberately doesn't re-state guidance that other skills own — it links to them:

Generator concern Owning skill
TLS on the client security/security-tls-required
Auth mode (Entra OIDC) security/security-entra-rbac, security/security-database-roles
Connection-string handling, admin password rotation security/security-admin-password-and-identity-separation
Retry / replica behavior high-availability/
Search / vector endpoints (--with-fts) full-text-search/
Private endpoint Bicep (--with-private-endpoint) security/security-private-endpoint

Open questions

  1. Generation mechanism — pure-text templating with the agent doing the substitution, or a cookiecutter-style helper script invoked by the skill? My instinct: start with text templates that the agent renders, ship a script later if it pays off.
  2. Which Java framework — bare main + driver, Spring Boot, or both? Start with bare main and add Spring Boot in v1.1 unless feedback says otherwise.
  3. Versioning of generated apps — do we pin driver versions or use latest? Pin, with a quarterly bump cadence.
  4. Telemetry — should the generated app emit OpenTelemetry traces by default? Probably yes for production-shaped, but it bulks up the sample. Maybe behind a --with-otel flag.
  5. Test scaffolding — include a smoke-test file (one assertion per CRUD path) or leave it to the developer? Recommend yes, one per language, using each ecosystem's default runner.

Acceptance criteria

  • skills/sample-app-generator/SKILL.md exists with frontmatter and is registered in docs/SKILLS.md.
  • All rule files listed in "Proposed skill layout" are present and pass scripts/validate-skills.ps1.
  • Templates for at least Node.js and Python compile / run end-to-end against a live cluster (manual verification by a maintainer).
  • A generated app's /healthz probe returns success against a real cluster using the default connection-string flow and the Entra-OIDC flow.
  • Cross-links to security/, high-availability/, full-text-search/ resolve.

Suggested follow-ups (not blockers)

  • C# and Java templates if v1 lands with Node + Python first.
  • IaC bundle: Bicep + azd up integration so --with-private-endpoint can provision a fully working cluster + PE in one shot.
  • Aspire-style local dev story (containerized DocumentDB emulator if/when available).
Lenguaje dominante
Python
Estrellas
6
Forks
11
Merge medio
3 d 2 h
PR fusionados (30 d)
1

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de Azure/documentdb-agent-kit

Todos los issues de Azure/documentdb-agent-kit

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.