Skip to content

Commit

Permalink
fix: improve 5.39.0 meta fields data migration (#4115)
Browse files Browse the repository at this point in the history
  • Loading branch information
adrians5j authored May 8, 2024
1 parent e559325 commit cdea92b
Show file tree
Hide file tree
Showing 21 changed files with 17,232 additions and 10 deletions.
12 changes: 8 additions & 4 deletions packages/api-headless-cms/src/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -75,18 +75,22 @@ export const pickEntryMetaFields = (
return pickedEntryMetaFields;
};

export const isNullableEntryMetaField = (fieldName: EntryMetaFieldName) => {
// Only modifiedX and publishedX fields are nullable.
export const isNullableEntryMetaField = (fieldName: string) => {
// Only `modifiedX` and `publishedX` fields are nullable.
const lcFieldName = fieldName.toLowerCase();
return lcFieldName.includes("modified") || lcFieldName.includes("published");
};

export const isDateTimeEntryMetaField = (fieldName: EntryMetaFieldName) => {
export const isNonNullableEntryMetaField = (fieldName: string) => {
return !isNullableEntryMetaField(fieldName);
};

export const isDateTimeEntryMetaField = (fieldName: string) => {
// Only field ending with "On" are date/time fields.
return fieldName.endsWith("On");
};

export const isIdentityEntryMetaField = (fieldName: EntryMetaFieldName) => {
export const isIdentityEntryMetaField = (fieldName: string) => {
// Only field ending with "On" are date/time fields.
return fieldName.endsWith("By");
};
Expand Down

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
export const headlessCmsAcoSearchRecordPbPage = [
{
_index: "root-headless-cms-en-us-acosearchrecord-pbpage",
_type: "_doc",
_id: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5b:L",
_score: 1.0,
_source: {
modelId: "acoSearchRecord-pbpage",
version: 1,
location: {
folderId: "root"
},
savedOn: "2023-12-27T12:43:00.006Z",
locale: "en-US",
status: "draft",
meta: {},
values: {
"text@type": "PbPage",
"text@title": "Welcome to Webiny",
"text@content":
"Welcome to Webiny Welcome to Webiny Webiny makes it easy to build applications and websites on top of the serverless infrastructure by providing you with a ready-made CMS and a development framework. Scalable Webiny apps can scale to handle the most demanding workloads. No custom tooling required Webiny eliminates the need to build custom tooling to create serverless app Cost effective Webiny apps run on serverless infrastructure which costs 80% less than VMs Resolves serverless challenges Webiny removes all the challenges of building serverless applications Get to know Webiny products Architect. Code. Deploy. Webiny Serverless Application Framework Everything you need to create and deploy applications on top of the serverless infrastructure.  Use it to build: Full-stack applicationsMulti-tenant solutions APIsMicroservice Learn more An easier way to build serverless apps There are many solutions that help you run, deploy and monitor serverless functions, but when it comes to actually coding one, there are none. Webiny is a solution that helps you code your serverless app by providing you with all the components like ACL, routing, file storage and many more. Framework features Users, groups, roles & scopes Security is a crucial layer in any application. Webiny includes a full-featured security module that's connected to the built-in GraphQL API.Users, groups, roles & scopes Scaffolding Quickly generate boilerplate code using CLI plugins. From lambda functions to new GraphQL APIs. Customizable security Use the default AWS Cognito, or replace with 3rd party identity providers like Okta, Auth0, etc. Using plugins you can make Webiny work with any identity provider. Multiple environments No code change goes directly into a production environment. Webiny CLI makes it easy to manage and create multiple environments for your project. One size doesn't fit all It's a very different set of requirements a technical team has to a marketing team to a business development team. Webiny Serverless CMS comes with several different apps you can use independently, or together as part of a cohesive solution. Webiny Serverless CMS A suite of applications to help you manage your content. Use it to build: Marketing sites Multi-website solutions Content hubs Multi-language sites Intranet portals Headless content models Learn more CMS benefits Scalable No matter the demand, Webiny Serverless CMS can easily scale to meet even the most challenging workloads. Adaptable Being an open-source project, it's easy to modify and adapt things to your own needs. Low cost of ownership Self-hosted on top of serverless infrastructure. No infrastructure to mange, less people required to operate and maintain. Secure Secured by AWS Cognito. It's also easy to integrate services like OKTA, Auth0 and similar. Data ownership Webiny is self-hosted, it means your data stays within your data center. Permission control Powerful options to control the permissions your users will have. They perfectly align with your business requirements.  Serverless makes infrastructure easy, Webiny makes serverless easy 1. Developer-friendly Webiny has been made with the developer in mind. It helps them develop serverless applications with ease. 2. Open source Webiny is created and maintained by an amazing group of people. Being open source means Webiny grows and evolves much faster. Contributor are welcome. 3. Community We have an active community on slack. Talk to the core-team, and get help. Webiny team is always there for any questions. View Webiny on GitHub",
"object@location": {
"text@folderId": "root"
},
"object@data": {
"text@id": "658c1bd3c39bb10008431b5b#0001",
"text@pid": "658c1bd3c39bb10008431b5b",
"text@title": "Welcome to Webiny",
"object@createdBy": {
"text@id": "658c1b73c39bb10008431b44",
"text@displayName": "ad min",
"text@type": "admin"
},
"datetime@createdOn": "2023-12-27T12:42:59.947Z",
"datetime@savedOn": "2023-12-27T12:43:00.723Z",
"text@status": "published",
"number@version": 1,
"boolean@locked": true,
"text@path": "/welcome-to-webiny"
},
"text@tags": []
},
createdBy: {
id: "658c1b73c39bb10008431b44",
displayName: "ad min",
type: "admin"
},
entryId: "wby-aco-658c1bd3c39bb10008431b5b",
tenant: "root",
createdOn: "2023-12-27T12:43:00.006Z",
locked: false,
ownedBy: {
id: "658c1b73c39bb10008431b44",
displayName: "ad min",
type: "admin"
},
webinyVersion: "5.38.2",
id: "wby-aco-658c1bd3c39bb10008431b5b#0001",
modifiedBy: {
id: "658c1b73c39bb10008431b44",
displayName: "ad min",
type: "admin"
},
rawValues: {
"object@location": {},
"object@data": {
"object@createdBy": {}
}
},
latest: true,
TYPE: "cms.entry.l",
__type: "cms.entry.l"
}
},
{
_index: "root-headless-cms-en-us-acosearchrecord-pbpage",
_type: "_doc",
_id: "T#root#L#en-US#CMS#CME#wby-aco-658c1bd3c39bb10008431b5c:L",
_score: 1.0,
_source: {
modelId: "acoSearchRecord-pbpage",
version: 1,
location: {
folderId: "root"
},
savedOn: "2023-12-27T12:43:00.024Z",
locale: "en-US",
status: "draft",
meta: {},
values: {
"text@type": "PbPage",
"text@title": "Not Found",
"text@content":
"Not Found Page not found! Sorry, but the page you were looking for could not be found. TAKE ME HOme",
"object@location": {
"text@folderId": "root"
},
"object@data": {
"text@id": "658c1bd3c39bb10008431b5c#0001",
"text@pid": "658c1bd3c39bb10008431b5c",
"text@title": "Not Found",
"object@createdBy": {
"text@id": "658c1b73c39bb10008431b44",
"text@displayName": "ad min",
"text@type": "admin"
},
"datetime@createdOn": "2023-12-27T12:42:59.964Z",
"datetime@savedOn": "2023-12-27T12:43:00.663Z",
"text@status": "published",
"number@version": 1,
"boolean@locked": true,
"text@path": "/not-found"
},
"text@tags": []
},
createdBy: {
id: "658c1b73c39bb10008431b44",
displayName: "ad min",
type: "admin"
},
entryId: "wby-aco-658c1bd3c39bb10008431b5c",
tenant: "root",
createdOn: "2023-12-27T12:43:00.024Z",
locked: false,
ownedBy: {
id: "658c1b73c39bb10008431b44",
displayName: "ad min",
type: "admin"
},
webinyVersion: "5.38.2",
id: "wby-aco-658c1bd3c39bb10008431b5c#0001",
modifiedBy: {
id: "658c1b73c39bb10008431b44",
displayName: "ad min",
type: "admin"
},
rawValues: {
"object@location": {},
"object@data": {
"object@createdBy": {}
}
},
latest: true,
TYPE: "cms.entry.l",
__type: "cms.entry.l"
}
}
];
Loading

0 comments on commit cdea92b

Please sign in to comment.