Skip to content

Commit fa5811d

Browse files
docs: documentation update (#33)
* docs: documentation and readme and license files review * docs: update copyrights --------- Co-authored-by: Rauno De Pasquale <[email protected]>
1 parent 72193b4 commit fa5811d

File tree

73 files changed

+146
-171
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

73 files changed

+146
-171
lines changed

.github/actions/triage/LICENSE

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
MIT License
22

3+
Copyright (c) 2025 Newesis Srl <[email protected]>
34
Copyright (c) 2024 Payload <[email protected]>. All modification and additions are copyright of Payload.
45

56
---

.github/reproduction-guide.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,4 +61,4 @@ Once they are installed you can open the `testing` tab in vscode sidebar and dri
6161

6262
#### Notes
6363

64-
The default credentials are `[email protected]` as email and `test` as password. They can be found in `test/credentials.ts`. By default, these will be autofilled, so no log-in is required.
64+
The default credentials are `[email protected]` as email and `test` as password. They can be found in `test/credentials.ts`. By default, these will be autofilled, so no log-in is required.

CONTRIBUTING.md

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ Before you submit an issue, please check all existing [open and closed issues](h
88

99
## Security issues & vulnerabilities
1010

11-
If you come across an issue related to security, or a potential attack vector within MZinga or one of its dependencies, please DO NOT create a publicly viewable issue. Instead, please contact us directly at [`[email protected]`](mailto:[email protected]). We will do everything we can to respond to the issue as soon as possible.
11+
If you come across an issue related to security, or a potential attack vector within MZinga or one of its dependencies, please DO NOT create a publicly viewable issue. Instead, please contact us directly at [`[email protected]`](mailto:[email protected]). We will do everything we can to respond to the issue as soon as possible.
1212

13-
If you find a vulnerability within the core MZinga repository, and we determine that it is remediable and of significant nature, we will be happy to pay you a reward for your findings and diligence. [`Contact us`](mailto:[email protected]) to find out more.
13+
If you find a vulnerability within the core MZinga repository, and we determine that it is remediable and of significant nature, we will be happy to pay you a reward for your findings and diligence. [`Contact us`](mailto:[email protected]) to find out more.
1414

1515
## Documentation edits
1616

17-
MZinga documentation can be found directly within its codebase, and you can feel free to make changes / improvements to any of it through opening a PR. We utilize these files directly in our website and will periodically deploy documentation updates as necessary.
17+
MZinga documentation can be found directly within its codebase, and you can feel free to make changes / improvements to any of it through opening a PR.
1818

1919
## Building additional features
2020

@@ -32,12 +32,14 @@ To help us work on new features, you can create a new feature request post in [G
3232

3333
### Installation & Requirements
3434

35-
MZinga is structured as a Monorepo, encompassing not only the core MZinga platform but also various plugins and packages. To install all required dependencies, you have to run `pnpm install` once in the root directory. **PNPM IS REQUIRED!** Yarn or npm will not work - you will have to use pnpm to develop in the core repository. In most systems, the easiest way to install pnpm is to run `corepack enable` in your terminal.
35+
MZinga Core is structured as a Monorepo, encompassing not only the core MZinga platform but also various plugins and packages. To install all required dependencies, you have to run `pnpm install` once in the root directory. **PNPM IS REQUIRED!** Yarn or npm will not work - you will have to use pnpm to develop in the core repository. In most systems, the easiest way to install pnpm is to run `corepack enable` in your terminal.
3636

3737
If you're coming from a very outdated version of mzinga, it is recommended to nuke the node_modules folder before running pnpm install. On UNIX systems, you can easily do that using the `pnpm clean:unix` command, which will delete all node_modules folders and build artefacts.
3838

3939
It is also recommended to use at least Node v18 or higher. You can check your current node version by typing `node --version` in your terminal. The easiest way to switch between different node versions is to use [nvm](https://github.com/nvm-sh/nvm#intro).
4040

41+
We encourage you to check Mzinga Apps repository to get the full Mzinga solution, and to use our official images and Helm Charts to run the applications.
42+
4143
### Code
4244

4345
Most new functionality should keep testing in mind. All top-level directories within the `test/` directory are for testing a specific category: `fields`, `collections`, etc.
@@ -65,7 +67,7 @@ The following command will start MZinga with your config: `pnpm dev my-test-dir`
6567

6668
By default, mzinga will [automatically log you in](https://payloadcms.com/docs/authentication/config#admin-autologin) with the default credentials. To disable that, you can either pass in the --no-auto-login flag (example: `pnpm dev my-test-dir --no-auto-login`) or set the `PAYLOAD_PUBLIC_DISABLE_AUTO_LOGIN` environment variable to `false`.
6769

68-
The default credentials are `[email protected]` as E-Mail and `test` as password. These are used in the auto-login.
70+
The default credentials are `[email protected]` as E-Mail and `test` as password. These are used in the auto-login.
6971

7072
### Testing with your own MongoDB database
7173

@@ -111,14 +113,3 @@ If you are committing to [templates](./templates) or [examples](./examples), use
111113
## Pull Requests
112114

113115
For all Pull Requests, you should be extremely descriptive about both your problem and proposed solution. If there are any affected open or closed issues, please leave the issue number in your PR message.
114-
115-
## Previewing docs
116-
117-
This is how you can preview changes you made locally to the docs:
118-
119-
1. Clone our [website repository](https://github.com/payloadcms/website)
120-
2. Run `yarn install`
121-
3. Duplicate the `.env.example` file and rename it to `.env`
122-
4. Add a `DOCS_DIR` environment variable to the `.env` file which points to the absolute path of your modified docs folder. For example `DOCS_DIR=/Users/yourname/Documents/GitHub/payload/docs`
123-
5. Run `yarn run fetchDocs:local`. If this was successful, you should see no error messages and the following output: _Docs successfully written to /.../website/src/app/docs.json_. There could be error messages if you have incorrect markdown in your local docs folder. In this case, it will tell you how you can fix it
124-
6. You're done! Now you can start the website locally using `yarn run dev` and preview the docs under [http://localhost:3000/docs/](http://localhost:3000/docs/)

ISSUE_GUIDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,4 +66,4 @@ Once they are installed you can open the `testing` tab in vscode sidebar and dri
6666

6767
#### Notes
6868

69-
- It is recommended to add the test credentials (located in `test/credentials.ts`) to your autofill for `localhost:3000/admin` as this will be required on every nodemon restart. The default credentials are `[email protected]` as email and `test` as password.
69+
- It is recommended to add the test credentials (located in `test/credentials.ts`) to your autofill for `localhost:3000/admin` as this will be required on every nodemon restart. The default credentials are `[email protected]` as email and `test` as password.

README.md

Lines changed: 28 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,51 @@
11
<p align="left">
22
<a href="https://github.com/mzinga-io/mzinga-core/actions"><img alt="GitHub Workflow Status" src="https://img.shields.io/github/actions/workflow/status/mzinga-io/mzinga-core/main.yml?style=flat-square"></a>
33
</p>
4-
<hr/>
5-
<h4>
6-
<a target="_blank" href="https://mzinga.io/docs/getting-started/what-is-payload" rel="dofollow"><strong>Explore the Docs</strong></a>
7-
</h4>
8-
<hr/>
94

10-
<h3>Benefits over a regular CMS</h3>
5+
6+
<h3>The Story: Why We Forked PayloadCMS v2</h3>
7+
<ul>
8+
<li>Our journey began with a deep appreciation for PayloadCMS. The team at Newesis embraced PayloadCMS from its early days, recognizing its powerful architecture and contributing as individual developers to the open-source project. Mzinga was initially born as a suite of extensions on top of PayloadCMS version 2, adding new capabilities to an already excellent core.</li>
9+
<li>When PayloadCMS evolved to version 3, it introduced significant architectural changes. After careful consideration, we decided that the v2 architecture remained the ideal foundation for our vision of a highly extensible, event-driven data platform.</li>
10+
<li>With PayloadCMS v2 no longer actively maintained, we were at a crossroads. To ensure the long-term stability and evolution of the platform our clients and projects relied on, we made a crucial decision: we forked the latest release of PayloadCMS v2.</li>
11+
<li>This fork is now Mzinga Core. By taking ownership of the core, we guarantee its maintenance and evolution, allowing us to innovate while preserving the architectural principles we value. The entire Mzinga.io ecosystem—Mzinga Core, Mzinga Apps, and Mzinga Tools, is now fully open source under the new mzinga-io organization on GitHub. This is our commitment to the community and to the future of this powerful platform.</li>
12+
</ul>
13+
14+
15+
## The Core Concept: Dynamic, API-First Data Modeling
16+
17+
The true power of Mzinga lies in its dynamic nature. You are not limited by a predefined schema. Instead, you can create entirely new classes of entities, or "Collections", at runtime.
18+
19+
The process is simple and powerful:
1120
<ul>
12-
<li>Don’t hit some third-party SaaS API, hit your own API</li>
13-
<li>Use your own database and own your data</li>
14-
<li>It's just Express - do what you want outside of Payload</li>
15-
<li>No need to learn how Payload works - if you know JS, you know Payload</li>
16-
<li>No vendor lock-in</li>
17-
<li>Avoid microservices hell - get everything (even auth) in one place</li>
18-
<li>Never touch ancient WP code again</li>
19-
<li>Build faster, never hit a roadblock</li>
20-
<li>Both admin and backend are 100% extensible</li>
21+
<li>Define: You design your entity structure as a JSON object, defining fields, types, and relationships.</li>
22+
<li>POST: You post this JSON definition to Mzinga's Custom Entities API.</li>
23+
<li>Publish: Once the entity is published, Mzinga’s engine automatically goes to work.<li>
24+
</ul>
25+
Instantly, the platform provisions a complete set of APIs for your new entity, with no code generation or server restarts required. You get:
26+
<ul>
27+
<li>REST APIs: A full suite of CRUD (Create, Read, Update, Delete) endpoints.</li>
28+
<li>GraphQL APIs: Powerful and flexible query capabilities, automatically reflecting your schema.</li>
29+
<li>WebSockets: Real-time data publication for any operation, enabling reactive frontend applications.</li>
2130
</ul>
2231

23-
## ✨ Features
24-
25-
- Completely free and open-source
26-
- [GraphQL](https://mzinga.io/docs/graphql/overview), [REST](https://mzinga.io/docs/rest-api/overview), and [Local](https://mzinga.io/docs/local-api/overview) APIs
27-
- [Easily customizable ReactJS Admin](https://mzinga.io/docs/admin/overview)
28-
- [Fully self-hosted](https://mzinga.io/docs/production/deployment)
29-
- [Extensible Authentication](https://mzinga.io/docs/authentication/overview)
30-
- [Local file storage & upload](https://mzinga.io/docs/upload/overview)
31-
- [Version History and Drafts](https://mzinga.io/docs/versions/overview)
32-
- [Field-based Localization](https://mzinga.io/docs/configuration/localization)
33-
- [Block-based Layout Builder](https://mzinga.io/docs/fields/blocks)
34-
- [Extensible SlateJS rich text editor](https://mzinga.io/docs/fields/rich-text)
35-
- [Array field type](https://mzinga.io/docs/fields/array)
36-
- [Field conditional logic](https://mzinga.io/docs/fields/overview#conditional-logic)
37-
- Extremely granular [Access Control](https://mzinga.io/docs/access-control/overview)
38-
- [Document and field-level hooks](https://mzinga.io/docs/hooks/overview) for every action Payload provides
39-
- Built with Typescript & very Typescript-friendly
40-
- Intensely fast API
41-
- Highly secure thanks to HTTP-only cookies, CSRF protection, and more
4232

4333
<a target="_blank" href="https://github.com/mzinga-io/mzinga-core/discussions"><strong>Request Feature</strong></a>
4434

45-
### TODO: rewrite the below section
4635

4736
## 🗒️ Documentation
4837

49-
Check out the [Payload website](https://mzinga.io/docs/getting-started/what-is-payload) to find in-depth documentation for everything that Payload offers.
38+
Check out the [Doc Directory](./docs) of the repo to find in-depth documentation for everything that the core solution offers.
5039

51-
Migrating from v1 to v2? Check out the [2.0 Release Notes](https://github.com/mzinga-io/mzinga-core/releases/tag/v2.0.0) on how to do it.
5240

5341
## 🙋 Contributing
5442

5543
If you want to add contributions to this repository, please follow the instructions in [contributing.md](./CONTRIBUTING.md).
5644

5745
## 📚 Examples
5846

59-
The [Examples Directory](./examples) is a great resource for learning how to setup Payload in a variety of different ways, but you can also find great examples in our blog and throughout our social media.
47+
The [Examples Directory](./examples) is a great resource for learning how to setup Mzinga-Core in a variety of different ways, but we encourage you to test the Mzinga-Apps repo, containing the extension to the Core platform.
48+
You can find the source code but also the Helm Chart to deploy the application in Kubernetes using the official images built by Newesis Srl.
6049

6150
If you'd like to run the examples, you can either copy them to a folder outside this repo or run them directly by (1) navigating to the example's subfolder (`cd examples/your-example-folder`) and (2) using the `--ignore-workspace` flag to bypass workspace restrictions (e.g., `pnpm --ignore-workspace install` or `pnpm --ignore-workspace dev`).
6251

@@ -66,17 +55,14 @@ You can see more examples at:
6655

6756
## 🚨 Need help?
6857

69-
There are lots of good conversations and resources in our Github Discussions board and our Discord Server. If you're struggling with something, chances are, someone's already solved what you're up against. :point_down:
58+
You can open a new conversations in our Github Discussions board or create a new Issue if you identify a problem.
7059

7160
- [GitHub Discussions](https://github.com/mzinga-io/mzinga-core/discussions)
7261
- [GitHub Issues](https://github.com/mzinga-io/mzinga-core/issues)
7362

74-
### TODO: one day
7563

7664
## ⭐ Like what we're doing? Give us a star
7765

78-
![payload-github-star](https://cms.payloadcms.com/media/payload-github-star.gif)
79-
8066
## 👏 Thanks to all our contributors
8167

8268
<img align="left" src="https://contributors-img.web.app/image?repo=mzinga-io/mzinga-core"/>

SECURITY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
## Reporting a Vulnerability
44

5-
Please report any security issues or concerns to [[email protected]](mailto:[email protected]).
5+
Please report any security issues or concerns to [[email protected]](mailto:[email protected]).

docs/authentication/operations.mdx

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ Example response:
8282
```ts
8383
{
8484
user: { // The JWT "payload" ;) from the logged in user
85-
85+
8686
createdAt: "2020-12-27T21:16:45.645Z",
8787
updatedAt: "2021-01-02T18:37:41.588Z",
8888
id: "5ae8f9bde69e394e717c8832"
@@ -118,7 +118,7 @@ const res = await fetch('http://localhost:3000/api/[collection-slug]/login', {
118118
'Content-Type': 'application/json',
119119
},
120120
body: JSON.stringify({
121-
121+
122122
password: 'this-is-not-our-password...or-is-it?',
123123
}),
124124
})
@@ -129,7 +129,7 @@ const json = await res.json()
129129
/*
130130
{
131131
user: {
132-
132+
133133
createdAt: "2020-12-27T21:16:45.645Z",
134134
updatedAt: "2021-01-02T18:37:41.588Z",
135135
id: "5ae8f9bde69e394e717c8832"
@@ -144,7 +144,7 @@ const json = await res.json()
144144

145145
```graphql
146146
mutation {
147-
login[collection-singular-label](email: "[email protected]", password: "yikes") {
147+
login[collection-singular-label](email: "[email protected]", password: "yikes") {
148148
user {
149149
email
150150
}
@@ -160,7 +160,7 @@ mutation {
160160
const result = await payload.login({
161161
collection: '[collection-slug]',
162162
data: {
163-
163+
164164
password: 'get-out',
165165
},
166166
})
@@ -213,7 +213,7 @@ const json = await res.json()
213213
/*
214214
{
215215
user: {
216-
216+
217217
createdAt: "2020-12-27T21:16:45.645Z",
218218
updatedAt: "2021-01-02T18:37:41.588Z",
219219
id: "5ae8f9bde69e394e717c8832"
@@ -284,7 +284,7 @@ const res = await fetch(`http://localhost:3000/api/[collection-slug]/unlock`, {
284284
'Content-Type': 'application/json',
285285
},
286286
body: JSON.stringify({
287-
287+
288288
}),
289289
})
290290
```
@@ -293,7 +293,7 @@ const res = await fetch(`http://localhost:3000/api/[collection-slug]/unlock`, {
293293

294294
```
295295
mutation {
296-
unlock[collection-singular-label](email: "[email protected]")
296+
unlock[collection-singular-label](email: "[email protected]")
297297
}
298298
```
299299

@@ -303,7 +303,7 @@ mutation {
303303
const result = await payload.unlock({
304304
collection: '[collection-slug]',
305305
data: {
306-
306+
307307
},
308308
})
309309
```
@@ -325,7 +325,7 @@ const res = await fetch(`http://localhost:3000/api/[collection-slug]/forgot-pass
325325
'Content-Type': 'application/json',
326326
},
327327
body: JSON.stringify({
328-
328+
329329
}),
330330
})
331331
```
@@ -334,7 +334,7 @@ const res = await fetch(`http://localhost:3000/api/[collection-slug]/forgot-pass
334334

335335
```
336336
mutation {
337-
forgotPassword[collection-singular-label](email: "[email protected]")
337+
forgotPassword[collection-singular-label](email: "[email protected]")
338338
}
339339
```
340340

@@ -344,7 +344,7 @@ mutation {
344344
const token = await payload.forgotPassword({
345345
collection: '[collection-slug]',
346346
data: {
347-
347+
348348
},
349349
disableEmail: false, // you can disable the auto-generation of email via local API
350350
})
@@ -384,7 +384,7 @@ const json = await res.json();
384384
/*
385385
{
386386
user: {
387-
387+
388388
createdAt: "2020-12-27T21:16:45.645Z",
389389
updatedAt: "2021-01-02T18:37:41.588Z",
390390
id: "5ae8f9bde69e394e717c8832"

docs/local-api/overview.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ const result = await payload.login({
309309
collection: 'users', // required
310310
data: {
311311
// required
312-
312+
313313
password: 'rip',
314314
},
315315
req: req, // pass an Express `req` which will be provided to all hooks
@@ -330,7 +330,7 @@ const token = await payload.forgotPassword({
330330
collection: 'users', // required
331331
data: {
332332
// required
333-
333+
334334
},
335335
req: req, // pass an Express `req` which will be provided to all hooks
336336
})
@@ -364,7 +364,7 @@ const result = await payload.unlock({
364364
collection: 'users', // required
365365
data: {
366366
// required
367-
367+
368368
},
369369
req: req, // pass an Express `req` which will be provided to all hooks
370370
overrideAccess: true,

0 commit comments

Comments
 (0)