Hi @Benjamin_Marquis,
Looks like you dev/beta/production environments return the exact same schema now, it looks perfectly fine here.
We discovered that your .forestadmin-schema.json
returns 2 “software features” collections; a first one named software_feature
and a second one named softwareFeature
.
The softwareFeature
collection looks to be well defined (with the “id” column):
{
"id": "softwareFeature",
"type": "collections",
"attributes": {
"icon": null,
"name": "softwareFeature",
"fields": [
{
"type": "Date",
"enums": null,
"field": "createdAt",
"inverseOf": null,
"isVirtual": false,
"reference": null,
"isReadOnly": false,
"isRequired": false,
"isSortable": true,
"integration": null,
"validations": [],
"defaultValue": null,
"isFilterable": true
},
{
"type": "Number",
"enums": null,
"field": "feature",
"inverseOf": null,
"isVirtual": false,
"reference": "feature.featureIdKey",
"isReadOnly": false,
"isRequired": false,
"isSortable": true,
"integration": null,
"validations": [],
"defaultValue": null,
"isFilterable": true,
"relationship": "BelongsTo"
},
{
"type": "Number",
"enums": null,
"field": "featureMappingStatus",
"inverseOf": null,
"isVirtual": false,
"reference": "featureMappingStatus.featureMappingStatusIdKey",
"isReadOnly": false,
"isRequired": false,
"isSortable": true,
"integration": null,
"validations": [],
"defaultValue": null,
"isFilterable": true,
"relationship": "BelongsTo"
},
{
"type": "Number",
"enums": null,
"field": "id",
"inverseOf": null,
"isVirtual": false,
"reference": null,
"isReadOnly": false,
"isRequired": false,
"isSortable": true,
"integration": null,
"validations": [],
"defaultValue": null,
"isFilterable": true
},
{
"type": "Number",
"enums": null,
"field": "software",
"inverseOf": null,
"isVirtual": false,
"reference": "software.softwareIdKey",
"isReadOnly": false,
"isRequired": false,
"isSortable": true,
"integration": null,
"validations": [],
"defaultValue": null,
"isFilterable": true,
"relationship": "BelongsTo"
},
{
"type": "Date",
"enums": null,
"field": "updatedAt",
"inverseOf": null,
"isVirtual": false,
"reference": null,
"isReadOnly": false,
"isRequired": false,
"isSortable": true,
"integration": null,
"validations": [],
"defaultValue": null,
"isFilterable": true
},
{
"type": "Date",
"enums": null,
"field": "updated_at",
"inverseOf": null,
"isVirtual": false,
"reference": null,
"isReadOnly": false,
"isRequired": false,
"isSortable": true,
"integration": null,
"validations": [],
"defaultValue": null,
"isFilterable": true
}
],
"nameOld": "softwareFeature",
"isVirtual": false,
"isReadOnly": false,
"integration": null,
"isSearchable": true,
"paginationType": "page",
"onlyForRelationships": false
},
and the software_feature
collection is incomplete and defined as a collection with a composite primary key based on feature_id
/ software_id
:
{
"id": "software_feature",
"type": "collections",
"attributes": {
"icon": null,
"name": "software_feature",
"fields": [
{
"type": "Date",
"enums": null,
"field": "createdAt",
"inverseOf": null,
"isVirtual": false,
"reference": null,
"isReadOnly": false,
"isRequired": false,
"isSortable": true,
"integration": null,
"validations": [],
"defaultValue": null,
"isFilterable": true
},
{
"type": "Number",
"enums": null,
"field": "feature_id",
"inverseOf": null,
"isVirtual": false,
"reference": null,
"isReadOnly": false,
"isRequired": false,
"isSortable": true,
"integration": null,
"validations": [],
"defaultValue": null,
"isFilterable": true
},
{
"type": "Number",
"enums": null,
"field": "software_id",
"inverseOf": null,
"isVirtual": false,
"reference": null,
"isReadOnly": false,
"isRequired": false,
"isSortable": true,
"integration": null,
"validations": [],
"defaultValue": null,
"isFilterable": true
},
{
"type": "Date",
"enums": null,
"field": "updatedAt",
"inverseOf": null,
"isVirtual": false,
"reference": null,
"isReadOnly": false,
"isRequired": false,
"isSortable": true,
"integration": null,
"validations": [],
"defaultValue": null,
"isFilterable": true
}
],
"nameOld": "software_feature",
"isVirtual": false,
"isReadOnly": false,
"integration": null,
"isSearchable": true,
"paginationType": "page",
"onlyForRelationships": false
},
My feeling is that this second collection is the origin of the issue.
I don’t know why Lumber generates it, but we should find a way to get rid of it for debug purpose.
.forestadmin-schema.json
manual edit is clearly an operation that should not be done, because this file is generated on server start in development environments.
But, in order to debug this situation, could you try to manually remove the software_feature
of the JSON, commit this change and deploy it in a remote environment where you can test it (beta?).
There is something wrong in the current setup so, as it could clean the setup, I hope it could also fix your issue.
Let us know.