This VS Code Extension provides some functionality to make working with App Management APIs for Microsofts Embed App program easier. It's still a work-in-progress, so expect some placeholder etc. in the code.
Just select the provided view "FAME Handler" and click "Sign in". It'll open up a new browser window and acquire a token for accessing the API.
- UI for API results, to inspect
- Apps
- Versions
- Principals
- Environments
- Validate manifest.json for new LCS releases
- Provide new versions, update principals and more with an easy to use interface
more tbd...
You need an Azure App registration with the following permissions:
- Dynamics 365 Business Central -> Delegated permissions -> user_impersonation
- Microsoft Graph -> Delegated permissions -> User.Read.All (used to provide a lookup from principals to display Usernames)
- Provide eay-to-use UI for repository elements
- Validate manifest.json for new releases
The following overview lists the state of features of the App Management API that are covered in this extension.
Entitities
- App
- List apps (GET)
- Country
- List countries (GET)
- Get Country (GET)
- Add or update country (PATCH) (not sure what this is for)
- Principal
- List principals (GET)
- Get principal by ID (GET)
- Remove principal (DELETE)
- Add or update principal (PATCH)
- Version
- List versions (GET)
- validate filtering
- Upload version (POST)
- Download version (POST)
- Update version (PATCH) (to be tested)
- Set availability
- Mark as incompatible
- List versions (GET)
- Environment
- List environments (GET)
- Environment Hotfix
- List environment hotfixes (GET)
- Get environment hotfix (GET) (untested)
- Schedule environment hotfix (POST) (untested)
- Update environment hotfix (PATCH) (untested)
Planned / To-Do list
- Cover all App Management API operations
- Bulk upload new app-versions
- Integrate with COSMO Alpaca to easily create new releases
This extension contributes the following settings:
famehandler.api.clientId
: The application (client) ID from the AAD App registrationfamehandler.api.tenantId
: Directory (tenant) IDfamehandler.defaults.principalSets
: A set of preconfigured princiapls for easier assignments
Sample configuration:
"famehandler.api.clientId": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"famehandler.api.tenantId": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
"famehandler.defaults.principalSets": {
"defaults": [
{
"countryCode": "DE",
"values": [
{
"principalType": "user",
"principalId": "00000000-0000-0000-0000-000000000000"
},
{
"principalType": "user",
"principalId": "11111111-1111-1111-1111-111111111111"
},
{
"principalType": "user",
"principalId": "22222222-2222-2222-2222-222222222222"
}
]
},
{
"countryCode": "NL",
"values": [
{
"principalType": "user",
"principalId": "33333333-3333-3333-3333-333333333333"
},
{
"principalType": "user",
"principalId": "44444444-4444-4444-4444-444444444444"
},
{
"principalType": "user",
"principalId": "55555555-5555-5555-5555-555555555555"
}
]
}
]
}
<...>
Users appreciate release notes as you update your extension.
Initial release of vscode-fame-handler extension
This is my first real VS Code Extension. I have no idea if everything is up to best-practices or what could be better. If you see anything that could be improved feel free to leave me a message or create an issue. Much appreciated.