Track manifest apps in the Applications catalog; make CMM gate contextual
seed-applications: a flask geenforce seed-applications command + service that reads the imaging-PC-type manifests and creates a core Application for every installer entry (MSI/EXE/CMD/BAT), so shopdb tracks what GE-Enforce actually deploys. Idempotent, deduped by appname; File/Registry/PS1/INF config entries are skipped. Run against the West Jefferson reference: 27 apps tracked (PC-DMIS 2016/2019/2026, eDNC, Oracle Client, Adobe Reader, HostExplorer, the VC++ redist matrix, Keyence VR-6000, PowerShell, Display Kiosk, ...). 2 tests. Editor: the CMM version gate (_CmmVersion) now only shows for CMM scopes - it is metrology-specific, so a printer/common entry form no longer carries the irrelevant field. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -214,7 +214,7 @@
|
||||
<label>PC types (comma)<input v-model="entryForm.PCTypes" placeholder="* or gea-shopfloor-cmm,..." /></label>
|
||||
<label>Target hostnames (comma)<input v-model="entryForm.TargetHostnames" /></label>
|
||||
<label>Target machine numbers (comma)<input v-model="entryForm.TargetMachineNumbers" /></label>
|
||||
<label>CMM version gate<input v-model="entryForm._CmmVersion" placeholder="2016 / 2019 / 2026" /></label>
|
||||
<label v-if="isCmmScope">CMM version gate<input v-model="entryForm._CmmVersion" placeholder="2016 / 2019 / 2026" /></label>
|
||||
|
||||
<label>Wait timeout (sec)<input type="number" v-model.number="entryForm.WaitTimeoutSec" /></label>
|
||||
<label>Log file<input v-model="entryForm.LogFile" /></label>
|
||||
@@ -273,7 +273,7 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from 'vue'
|
||||
import { ref, computed } from 'vue'
|
||||
import api from '../../api'
|
||||
|
||||
const ENTRY_TYPES = ['MSI', 'EXE', 'CMD', 'BAT', 'PS1', 'INF', 'File', 'Registry']
|
||||
@@ -285,6 +285,9 @@ const INUSE_BEHAVIORS = ['Defer', 'CloseAndReopen', 'ForceClose', 'ScheduleForRe
|
||||
const scopes = ref([])
|
||||
const selectedId = ref(null)
|
||||
const detail = ref(null)
|
||||
// The CMM version gate (_CmmVersion) only applies to CMM scopes; hide it
|
||||
// elsewhere so a printer/common entry form is not cluttered with an irrelevant field.
|
||||
const isCmmScope = computed(() => /cmm/i.test(detail.value?.scopename || ''))
|
||||
const error = ref('')
|
||||
const notice = ref('')
|
||||
const shareRoot = ref('')
|
||||
|
||||
Reference in New Issue
Block a user