Extensions Capstone: Build a Service-Catalog Extension
Build a real Extension that calls an internal service catalog.
What You Will Learn
- Build a complete Extension.
- Implement manifest, hosting, OAuth, API calls.
- Threat-model.
- Deploy and document.
- Measure adoption.
Why This Matters
This capstone applies PR-21 to PR-27 into one deliverable: a real, deployed Extension that your team uses.
Concept Explained
Build an Extension that calls an internal service catalog. Users type @catalog in Copilot Chat to query services, deployments, owners.
How It Works
Implement manifest (PR-22), host (PR-23), OAuth (PR-24), API calls (PR-25), threat model (PR-27). Deploy. Document. Measure adoption.
Step-by-Step Tutorial
1. Plan
What service will the Extension call? What queries?2. Build manifest
PR-22.3. Implement hosting
PR-23.4. Implement OAuth
PR-24.5. Implement API calls
PR-25.6. Threat-model
PR-27.7. Deploy
Production-ready.8. Document
README, architecture, threat model.9. Measure
Track adoption, queries, errors.Real-World Example
A team built a service-catalog Extension. After deployment: 50+ daily queries from 20 devs. Saved ~2 hours/week per dev of dashboard navigation. Threat model caught 2 security issues before deployment.
Example Prompts / Commands / Code
"""1. manifest.json # Extension manifest
2. src/server.ts # Express server
3. src/oauth.ts # OAuth flow
4. src/api-client.ts # Internal API client
5. src/handlers/ # Copilot request handlers
6. tests/ # Unit + integration tests
7. Dockerfile # Container
8. docker-compose.yml # Local dev
9. .github/workflows/deploy.yml # CI/CD
10. README.md # Setup, usage, architecture
11. docs/threat-model.md # Security documentation
12. docs/architecture.md # Architecture diagram
Queries supported:
- @catalog list services
- @catalog show service-name
- @catalog who owns service-name
- @catalog what's the status of service-name
"""
Common Mistakes
- Skipping threat model — security gaps.
- No documentation — team can't maintain.
- No monitoring — silent failures.
- Over-scoped OAuth — users reject install.
Best Practices
- Build all components (manifest, OAuth, API, hosting).
- Threat-model before deployment.
- Document thoroughly (README, architecture, threat model).
- Monitor: queries, errors, latency.
- Measure adoption; iterate based on usage.
Troubleshooting
| Problem | How to Fix |
|---|---|
| Low adoption | Demo at team meeting. Show value. |
| Frequent errors | Monitor logs. Fix root causes. |
Practical Exercise
Your Turn
This IS the exercise. Build a service-catalog Extension end-to-end. Deploy. Document. Measure.
Professional Challenge
Present the Extension to your org. Get other teams to adopt. Track cross-team usage.
Key Takeaways
- Service-catalog Extension capstone.
- Build all components: manifest, OAuth, API, hosting.
- Threat-model before deployment.
- Document thoroughly.
- Measure adoption; iterate.
Frequently Asked Questions
How long to build?
Should we open-source?
Further Reading
Official References
SEO Metadata
SEO title: Extensions Capstone: Build a Service-Catalog Extension
Meta description: Build a real Extension that calls an internal service catalog.
Primary keyword: extensions capstone
Secondary keywords: extensions capstone: build a service-catalog extension
Search intent: Informational
URL slug: /extensions-capstone-build-service-catalog-extension
Categories: AI Tools, GitHub Copilot
Tags: GitHub Copilot, Professional, Capstone, Extensions, Service Catalog, IMCSEIAN, Tutorial, IMCSEIAN
Featured image concept: IMCSEIAN lesson card for Extensions Capstone: Build a Service-Catalog Extension
Comments
Comments
Post a Comment