Skip to content
Open
Show file tree
Hide file tree
Changes from 14 commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
49688f3
fix(mobile-apps): harden Dataverse schema creation
Jul 27, 2026
3860205
Potential fix for pull request finding
kanu-shubham Jul 27, 2026
38938f5
refactor(mobile-apps): drop create-payload script; unblock draft plan…
Jul 28, 2026
e7437d7
docs(mobile-apps): keep pre-flight note inside the blockquote
Jul 28, 2026
e1a3251
perf(mobile-apps): short-circuit Dataverse tenant resolution
Jul 28, 2026
881eaca
perf(mobile-apps): batch Dataverse metadata reads into single queries
Jul 28, 2026
c1311c9
perf(mobile-apps): fold key/M:N pre-flights into the snapshot
Jul 28, 2026
2797ba8
fix(mobile-apps): pre-flight lookups and calc columns for idempotent …
Jul 28, 2026
3922e37
fix(mobile-apps): never block the user on a data-modelling conflict
Jul 29, 2026
fbd90e2
docs(mobile-apps): complete decision set and fix dead reference link
Jul 29, 2026
ac30603
Optimize Dataverse metadata execution
Aug 13, 2026
94e3a20
Address Dataverse V2 review feedback
Aug 14, 2026
9e2e389
Fix Windows test PATH resolution
Aug 14, 2026
596602c
Make Azure CLI test doubles portable
Aug 14, 2026
58b6086
harden Dataverse derived metadata reconciliation
Aug 14, 2026
f17a7f2
Harden mobile Dataverse runtime contracts
Aug 18, 2026
5181c52
Enforce route checks in mobile create flow
Aug 18, 2026
7ffd79d
Make mobile identity and GUID contracts deterministic
Aug 18, 2026
f2c8068
Remove obsolete mobile GUID helper guidance
Aug 18, 2026
741c3f8
Align Dataverse planning conflict decisions
Aug 18, 2026
7ffe629
Potential fix for pull request finding
kanu-shubham Aug 18, 2026
9428959
Normalize route paths on Windows
Aug 18, 2026
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
40 changes: 40 additions & 0 deletions .github/workflows/mobile-apps-script-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Functional unit tests for the mobile-apps plugin across supported operating
# systems and Node versions. These scripts spawn Azure CLI shims and manipulate
# filesystem paths, so cross-platform coverage protects real behavior.
name: mobile-apps-script-tests

on:
pull_request:
branches:
- main
paths:
- "plugins/mobile-apps/**"
- ".github/workflows/mobile-apps-script-tests.yml"

jobs:
test-mobile-apps-scripts:
name: test-mobile-apps-scripts (${{ matrix.os }}, node ${{ matrix.node }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- windows-latest
- macos-latest
node:
- 20
- 22
steps:
- name: checkout
uses: actions/checkout@v4

- name: setup-node
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}

- name: run-mobile-apps-script-tests
shell: bash
working-directory: plugins/mobile-apps
run: node --test scripts/tests/*.test.js
99 changes: 69 additions & 30 deletions plugins/mobile-apps/agents/data-model-architect.md

Large diffs are not rendered by default.

7 changes: 5 additions & 2 deletions plugins/mobile-apps/scripts/create-calculated-column.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
// --formula "<navigation>.<...>.<resolved_field>" \
// [--display "Display Name"] \
// [--solution <solution-unique-name>] \
// [--tenant-id <tenant-id>] \
// [--formula-xml '<full workflow xml>']
//
// Exit codes:
Expand Down Expand Up @@ -44,6 +45,7 @@ function parseArgs() {
formulaXml: null,
display: null,
solution: null,
tenantId: null,
};

for (let i = 1; i < argv.length; i++) {
Expand All @@ -57,6 +59,7 @@ function parseArgs() {
case '--formula-xml': out.formulaXml = next; i++; break;
case '--display': out.display = next; i++; break;
case '--solution': out.solution = next; i++; break;
case '--tenant-id': out.tenantId = next; i++; break;
default:
usage(`Unknown flag: ${flag}`);
}
Expand Down Expand Up @@ -248,7 +251,7 @@ async function postAttribute({ envUrl, table, payload, token, solution }) {

async function main() {
const args = parseArgs();
let token = await getAuthToken(args.envUrl);
let token = await getAuthToken(args.envUrl, args.tenantId);
if (!token) {
process.stderr.write('Failed to get Azure CLI token. Run `az login` first.\n');
process.exit(1);
Expand Down Expand Up @@ -314,7 +317,7 @@ async function main() {

// Token refresh on 401
if (res.statusCode === 401 && attempt < 2) {
const fresh = await getAuthToken(args.envUrl);
const fresh = await getAuthToken(args.envUrl, args.tenantId);
if (!fresh) break;
// mutate token via closure for next iteration
// (simpler than rewriting the loop body)
Expand Down
Loading
Loading