Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
305 changes: 305 additions & 0 deletions docs/FEATURE-ENHANCEMENT-SUMMARY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,305 @@
# Feature Enhancement Summary: Connection References and Environment Variables

## Executive Summary

This document summarizes the proposed enhancements for Connection References and Environment Variables in the CoE Starter Kit, providing a high-level overview for stakeholders and contributors.

**Issue**: [CoE Starter Kit - Feature]: Connection References and Environment variables should be fully featured

**Requestor**: @rooobeert

**Status**: Analysis Complete, Ready for Implementation

## Problem Statement

As Microsoft moves away from classic admin centers to the new "environment settings app", administrators need better visibility and management capabilities for Connection References and Environment Variables within the CoE Starter Kit. Currently:

### Current Gaps - Connection References
- ❌ No dedicated menu item (only accessible via Flows)
- ❌ Display names show connector service name instead of actual connection reference name
- ❌ Owner always appears as the service account, not the actual owner
- ❌ No visible relationship to Solutions

### Current Gaps - Environment Variables
- ❌ Not tracked at all in the CoE Starter Kit
- ❌ No menu item
- ❌ No visibility into definitions, owners, or values
- ❌ No owner reassignment capability

## Proposed Solution

### Connection References Enhancements

#### 1. Dedicated Menu Item (High Priority)
Add "Connection References" as a top-level menu item in the Power Platform Admin View under the "Monitor" group.

**Benefit**: Administrators can quickly access and review all connection references across their environments without navigating through Flow relationships.

#### 2. Accurate Display Names (High Priority - Critical)
Update the display logic to show the actual connection reference name (e.g., "SharePoint Production Connection") instead of the connector service name (e.g., "shared_sharepointonline").

**Benefit**: Dramatically improves usability and reduces confusion when identifying specific connection references.

#### 3. Correct Owner Information (High Priority)
Capture and display the actual owner from Dataverse instead of always showing the CoE service account.

**Benefit**: Critical for offboarding scenarios - administrators can identify which connection references need reassignment when a user leaves the organization.

#### 4. Solution Relationships (Medium Priority)
Show which solution contains each connection reference.

**Benefit**: Helps administrators understand dependencies and manage solutions more effectively.

### Environment Variables Implementation

#### 1. New Tracking Entity (High Priority)
Create `admin_EnvironmentVariableDefinition` entity to track environment variables across all environments.

**Fields**:
- Display Name
- Schema Name
- Type (String, Number, JSON, Data Source)
- Current Value
- Default Value
- Description
- Owner (actual owner from Dataverse)
- Solution (which solution it belongs to)
- Environment
- Is Managed

**Benefit**: Provides centralized governance and visibility for environment variables.

#### 2. Dedicated Menu Item (High Priority)
Add "Environment Variables" as a menu item in the Power Platform Admin View under the "Monitor" group.

**Benefit**: Administrators can review and manage environment variables alongside other Power Platform assets.

#### 3. Inventory Flow (High Priority)
Create new inventory flow to collect environment variable data from all environments.

**Benefit**: Automated data collection ensures up-to-date information without manual effort.

#### 4. Owner Reassignment (Medium Priority)
Enable owner reassignment for environment variables through the standard Dataverse interface.

**Benefit**: Supports user offboarding and role changes.

## Implementation Approach

### Phase 1: Connection References (2-3 days)
1. Add solution and actual owner fields to existing entity
2. Create enhanced views with correct display names
3. Update sitemap with dedicated menu item
4. Update inventory flows to capture new data
5. Update forms

### Phase 2: Environment Variables (3-5 days)
1. Create new entity with all required fields
2. Create views (Active, By Solution, By Owner)
3. Create forms (Main, Quick Create, Card)
4. Add sitemap menu item
5. Create inventory flow
6. Configure owner reassignment

### Phase 3: Testing & Documentation (1-2 days)
1. Comprehensive testing of all features
2. Update setup and user guides
3. Create release notes

**Total Estimated Effort**: 6-10 days of development work

## Technical Architecture

### Data Model
```
┌─────────────────────┐
│ admin_Solution │
└──────────┬──────────┘
│ (1:N)
┌──────┴──────────────────────┬─────────────────────────┐
│ │ │
┌───▼────────────────────┐ ┌─────▼──────────────────┐ │
│ admin_ConnectionRef │ │ admin_EnvironmentVar │ │
│ - Display Name │ │ Definition │ │
│ - Actual Owner* │ │ - Display Name │ │
│ - Solution* │ │ - Schema Name │ │
│ - Connector │ │ - Type │ │
│ - Environment │ │ - Current Value │ │
└────────────────────────┘ │ - Default Value │ │
│ - Actual Owner │ │
* = New fields │ - Solution │ │
│ - Environment │ │
└────────────────────────┘ │
┌──────────────────────────────┘
┌──────▼──────────┐
│ admin_Environment│
└─────────────────┘
```

### API Integration Points

**Connection References**:
- Power Platform API: `/environments/{id}/connectionReferences`
- Dataverse Web API: `/connectionreferences`

**Environment Variables**:
- Dataverse Web API: `/environmentvariabledefinitions`
- Dataverse Web API: `/environmentvariablevalues`

## Benefits

### For Administrators
- ✅ Centralized view of all connection references and environment variables
- ✅ Easy identification of orphaned connections and variables
- ✅ Streamlined user offboarding process
- ✅ Better understanding of solution dependencies
- ✅ Improved governance and compliance

### For the Organization
- ✅ Reduced security risks from orphaned connections
- ✅ Better asset management
- ✅ Improved audit trail
- ✅ Faster troubleshooting of configuration issues
- ✅ Enhanced compliance with data governance policies

### For the CoE Starter Kit
- ✅ Feature parity with classic admin center capabilities
- ✅ Improved user experience
- ✅ More comprehensive inventory
- ✅ Alignment with Microsoft's direction (modern admin experiences)

## Success Metrics

- ✅ Connection References accessible in ≤2 clicks from main menu
- ✅ 100% accuracy in displaying connection reference names
- ✅ 100% accuracy in displaying actual owners
- ✅ Environment Variables inventory completes in <10 minutes for 100 environments
- ✅ Zero breaking changes to existing CoE Starter Kit functionality
- ✅ Backward compatible with existing deployments

## Risks and Mitigation

### Risk 1: Performance with Large Datasets
**Impact**: Medium
**Mitigation**:
- Implement pagination in views
- Use incremental sync in inventory flows
- Add indexes on key fields

### Risk 2: API Rate Limiting
**Impact**: Medium
**Mitigation**:
- Implement retry logic with exponential backoff
- Batch operations where possible
- Stagger inventory flows

### Risk 3: Breaking Changes to Existing Customizations
**Impact**: Low
**Mitigation**:
- All changes are additive (new fields, views, menu items)
- Existing functionality remains unchanged
- Thorough testing before release

### Risk 4: Sensitive Data in Environment Variables
**Impact**: Medium
**Mitigation**:
- Implement field-level security
- Consider masking values in views
- Document security best practices

## Community Contribution

This feature is ready for community contribution! The detailed implementation guide provides step-by-step instructions for developers who want to contribute.

### How You Can Help

**For Developers**:
- Implement Phase 1 (Connection References)
- Implement Phase 2 (Environment Variables)
- Write unit tests
- Create sample data for testing

**For Power Platform Experts**:
- Review the proposed data model
- Suggest additional fields or relationships
- Test beta versions
- Provide feedback on UX

**For Documentation Writers**:
- Enhance the implementation guide
- Create user-facing documentation
- Write blog posts or videos

### Getting Started
1. Read the [Implementation Guide](./IMPLEMENTATION-GUIDE-CONNECTION-REFERENCES-ENV-VARS.md)
2. Fork the repository
3. Create a feature branch
4. Start with Phase 1 or Phase 2
5. Submit a PR with your changes

## Questions and Answers

### Q: Will this work with existing CoE Starter Kit deployments?
**A**: Yes, all changes are backward compatible. New fields are optional, and existing functionality is unchanged.

### Q: Do I need to reinstall the entire CoE Starter Kit?
**A**: No, these will be delivered as incremental updates that can be applied to existing installations.

### Q: What about custom fields I've added to admin_ConnectionReference?
**A**: Your customizations will be preserved. The new fields are additive.

### Q: How long will the initial Environment Variables inventory take?
**A**: Depends on the number of environments and variables. Estimated 5-10 minutes for 100 environments with typical variable counts.

### Q: Can I exclude certain environment variables from being tracked?
**A**: Yes, the inventory flow can be configured with filters to exclude specific variables or patterns.

### Q: Will this increase my API usage significantly?
**A**: Minimally. The inventory flows run once daily by default. Impact is similar to existing inventory flows for Apps and Flows.

## Next Steps

1. ✅ **Community Review** (Current Phase)
- Gather feedback on the implementation guide
- Refine requirements based on input
- Prioritize features if needed

2. ⏳ **Implementation** (Looking for volunteers!)
- Phase 1: Connection References enhancements
- Phase 2: Environment Variables implementation
- Phase 3: Testing and documentation

3. ⏳ **Beta Testing**
- Deploy to test environments
- Gather user feedback
- Iterate on UX and functionality

4. ⏳ **Release**
- Merge to main branch
- Include in next CoE Starter Kit release
- Announce to community

## Related Resources

- [Full Implementation Guide](./IMPLEMENTATION-GUIDE-CONNECTION-REFERENCES-ENV-VARS.md)
- [CoE Starter Kit Documentation](https://learn.microsoft.com/en-us/power-platform/guidance/coe/starter-kit)
- [Connection References Documentation](https://learn.microsoft.com/en-us/power-apps/maker/data-platform/create-connection-reference)
- [Environment Variables Documentation](https://learn.microsoft.com/en-us/power-apps/maker/data-platform/environmentvariables)
- [GitHub Issue - Original Feature Request](#)

## Contact

For questions or to volunteer for implementation:
- Comment on the GitHub issue
- Join the discussion in Power Platform Community forums
- Reach out to the CoE Starter Kit maintainers

---

**Last Updated**: December 2024
**Version**: 1.0
**Status**: Ready for Implementation
Loading