Go to file
jack zhang bf1a19426a
refactor: new schema initializer and schema settings (#2802)
* fix: form

* refactor: schema-initializer

* fix: bug

* refactor: schema initializer

* refactor: rename

* fix: delete SchemaInitializerProvider

* refactor: props `insert` to hooks `useSchemaInitializerV2`

* fix: bug

* refactor: delete `SchemaInitializer.Button`

* refactor: delete old SchemaInitializer

* fix: bug

* fix: workflow

* fix: docs

* fix: bug

* fix: bug

* feat: style

* fix: remove v2

* fix: visible

* fix: bug

* fix: item hook

* feat: item hook

* fix: add search DataBlockInitializer

* fix: build bug

* fix: style bug

* fix: style bug

* fix: test bug

* fix: test bug

* fix: rerender bug

* fix: remove menu select

* fix: bug

* chore: add aria-label for SchemaInitializerButton

* refactor: rename name to camel case

* fix: menu height bug

* fix: build errors

* fix: build errors

* fix: bug

* fix: bug

* fix: performance

* test: add test for header

* fix: sidebar is not refresh (T-2422)

* feat(e2e): support to add group page and link page

* chore: make sure the page is configurable when using page.goto

* test: add tests for menu initializer

* fix: imporve  code

* chore: fix build error

* chore: optimize locator of menu item

* refactor: rename testid for select

* test: make tests passing

* fix: make tests passing

* chore: upgrade vitest to v0.34.6

* chore: increase timeout of e2e

* feat: core

* fix: revert schema initializer demos

* test: menu, page tabs, page grid, table column

* fix: schema button interface

* feat: refactor: page tab settings

* feat: page settings

* fix: dumirc

* fix: export CSSVariableProvider

* feat: lazy render

* fix: form-item

* fix: general schema desinger

* feat: filter form item settings

* refactor: form-v2 schema settings

* refactor: form-v1 schema settings

* refactor: action schema settings

* fix: action bug

* fix: form-item bug

* fix: types error

* docs: schema settings  doc

* docs: schema settings

* feat: schema setting  item add name

* fix: visible lazy render bug

* fix: revert form item filter

* fix: test bug

* fix: test JSON.parse bug

* fix: test bug

* fix: improve styling

* fix: styling

* fix: cleanup

* fix: token.borderRadiusSM

* fix: bug

* test: add tests

* fix: style bug

* fix: add chart performance

* feat: add SchemaDesignerContext

* fix: bug

* fix: test bug

* style: create record action style improve

* fix: make test passing

* chore: mack tests passing

* chore: make tests passing

* test: fix tests

* style: style revert

* fix: bug

* fix: data selector

* fix: fix tests

* fix: fix tests

* fix: delete PluginManagerContext

* refactor: improve router and add SchemaComponentProvider & CSSVariableProvider to MainComponent

* fix: add dn and field builtin to SchemaSettingWrapper

* feat: update docs

* refactor: application providers

* fix: test bug

* fix: fix tests

* chore: make test passing

* feat: update docs

* chore: rename collection name

* feat: update docs

* chore: skip weird test

* fix: blockInitializers media to otherBlocks

* fix: cancel to skip test

* fix: bug

* test: add test

* refactor: migrate to small files

* test: add tests for form block settings

* chore: format

* fix: add chart scroll bug

* refactor: action designer improve

* refactor: formitem designer schemaSetting

* feat: schemaSettingsManager and schemaInitializerManager addItem and removeItem

* test: add tests for color field in creating block

* test: add tests for email field in creating block

* test: make tests passing

* perf: reduce fields number

* fix: sub menu bug

* test: add tests basic in editing form

* test: add tests basic in details form

* fix: improve code

* test: make tests passing

* test(plugin-mock-collections): add color for enum options

* refactor: improve code

* fix: bug

* fix: bug

* refactor: convert parameters to destructured object

* test: add tests choices

* test: add tests media

* test: add tests for datetime in creating form

* feat(plugin-mock-collection): generate faker time

* test: add tests for datetime in editing form

* test: add tests for datetime in details form

* fix: bug

* feat: improve code

* test: add tests for relation fields

* fix: rename SchemaSettings

* fix: type bug

* refactor: useDesinger()

* fix: bug

* fix: bug

* fix: build tip

* fix: designableState

* fix: bug

* fix: designable

* fix: designable

* test: add tests for relation fields

* test: add tests for relation fields

* test: add tests for relation fields

* feat: client api doc

* test: add tests for relation fields

* test: avoid errors

* test: make tests passing

* fix: bug

* test: make tests passing

* test: add tests for advanced fields

* test: increase e2e timeout-minutes to 60

* fix: bug

* fix: improve code

* feat: add schema initailizer component  demos

* test: make tests passing

* fix: schema settings demos

* feat: shallowMerge & deepMerge

* test: reduce number of tests

* test: make tests passing

* feat: updates

* fix: add Initializer Internal

* demos:  useSchemaSettingsRender

* test: make tests passing

* test: make tests passing

* fix: improve docs

* fix: bug

* chore: upgrade dumi theme

* test: make tests passing

* test: add tests for linkage rules

* test: add test for form data templates

* test: add tests for default value

* test: reduce number of tests

* fix: dn.deepMerge

* fix: bug

* fix: bug

* fix: toolbar

* fix: docs ssr

* test: add tests for system fields

* test: add tests for actions

* fix:  bug

* test: add tests for lazy loading of variables

* test: make testing more stable

* fix: update docs

* fix: bug

---------

Co-authored-by: Rain <958414905@qq.com>
Co-authored-by: chenos <chenlinxh@gmail.com>
Co-authored-by: katherinehhh <katherine_15995@163.com>
2023-12-04 14:56:46 +08:00
.dumi/theme/slots fix: codesanbox bug (#2842) 2023-10-16 15:03:32 +08:00
.github refactor: new schema initializer and schema settings (#2802) 2023-12-04 14:56:46 +08:00
.vscode feat(variable): lazy load association fields (#2382) 2023-10-07 15:49:09 +08:00
benchmark feat: framework benchmark (#2915) 2023-10-27 10:00:49 +08:00
docker feat: new plugin manager, supports adding plugins through UI (#2430) 2023-09-12 22:39:23 +08:00
docs refactor: new schema initializer and schema settings (#2802) 2023-12-04 14:56:46 +08:00
examples feat: application supervisor (#2353) 2023-08-24 17:47:45 +08:00
packages refactor: new schema initializer and schema settings (#2802) 2023-12-04 14:56:46 +08:00
scripts refactor: new schema initializer and schema settings (#2802) 2023-12-04 14:56:46 +08:00
storage feat: new plugin manager, supports adding plugins through UI (#2430) 2023-09-12 22:39:23 +08:00
.dockerignore chore: dockerignore 2023-08-02 13:45:52 +08:00
.dumirc.ts refactor: new schema initializer and schema settings (#2802) 2023-12-04 14:56:46 +08:00
.editorconfig Feat: client base entry of plugin workflow (#225) 2022-03-27 15:51:48 +08:00
.env.e2e.example feat: e2e commands (#3042) 2023-11-16 12:33:56 +08:00
.env.example refactor(cache): improve cache (#3004) 2023-11-20 17:14:20 +08:00
.env.test.example feat(auth): support signing in with username (#2376) 2023-08-19 22:02:26 +08:00
.eslintignore feat: framework benchmark (#2915) 2023-10-27 10:00:49 +08:00
.eslintrc chore: optimize eslint 2023-09-28 17:52:16 +08:00
.gitignore feat: node >= 18 (#3066) 2023-11-20 19:35:30 +08:00
.gitpod.yml chore: gitpod yml 2023-02-15 14:47:02 +00:00
.prettierignore feat: new plugin manager, supports adding plugins through UI (#2430) 2023-09-12 22:39:23 +08:00
.prettierrc refactor: code splitting of the table component (#121) 2021-12-02 22:56:16 +08:00
CHANGELOG.md chore: update changelog 2023-12-04 11:01:28 +08:00
commitlint.config.js fix: eslint (#1759) 2023-04-25 13:12:14 +08:00
deploy-docs-cn.sh feat: update docs 2023-06-20 18:05:06 +08:00
deploy-docs.sh feat: update docs 2023-06-20 18:05:06 +08:00
docker-compose.yml feat: database view collection (#1587) 2023-04-01 21:56:01 +08:00
Dockerfile feat: node >= 18 (#3066) 2023-11-20 19:35:30 +08:00
jest.config.js feat(ci): run backend tests concurrently (#2815) 2023-10-17 22:22:45 +08:00
jest.setup.ts feat(auth): support custom authentication (#2007) 2023-06-07 23:46:42 +08:00
jest.setupAfterEnv.ts feat(ci): run backend tests concurrently (#2815) 2023-10-17 22:22:45 +08:00
lerna.json chore(versions): 😊 publish v0.16.0-alpha.6 2023-12-04 11:01:24 +08:00
LICENSE-AGPL feat: change license (#1350) 2023-01-11 11:58:47 +08:00
LICENSE-APACHE-2.0 feat: change license (#1350) 2023-01-11 11:58:47 +08:00
package.json refactor: new schema initializer and schema settings (#2802) 2023-12-04 14:56:46 +08:00
playwright.config.ts refactor: new schema initializer and schema settings (#2802) 2023-12-04 14:56:46 +08:00
README.md Update README.md 2023-11-20 20:18:11 +08:00
README.zh-CN.md Update README.zh-CN.md 2023-11-20 20:18:47 +08:00
release.sh fix: update release.sh 2023-11-01 09:52:19 +08:00
SECURITY.md Update SECURITY.md 2023-11-29 15:46:06 +08:00
testUtils.ts refactor(client)!: upgrade antd to v5 (#2078) 2023-07-08 08:26:27 +08:00
tsconfig.jest.json feat: build, cli, devtools, sdk, docs... 2022-05-19 00:40:55 +08:00
tsconfig.json refactor: plugin settings manager (#2712) 2023-11-13 11:01:18 +08:00
tsconfig.server.json feat: build, cli, devtools, sdk, docs... 2022-05-19 00:40:55 +08:00
vitest.config.ts chore: optimize locators (#2833) 2023-10-27 15:32:17 +08:00
yarn.lock refactor: new schema initializer and schema settings (#2802) 2023-12-04 14:56:46 +08:00

English | 中文

NocoBase

Note: 📌

NocoBase is in early stage of development and is subject to frequent changes, please use caution in production environments.

Recent major updates

What is NocoBase

NocoBase is a scalability-first, open-source no-code development platform.
Instead of investing years of time and millions of dollars in research and development, deploy NocoBase in a few minutes and you'll have a private, controllable, and extremely scalable no-code development platform!

Homepage:
https://www.nocobase.com/

Online Demo:
https://demo.nocobase.com/new

Documents:
https://docs.nocobase.com/

Contact Us:
hello@nocobase.com

Distinctive features

1. Model-driven, separate "user interface" from "data structure"

Most form-, table-, or process-driven no-code products create data structures directly in the user interface, such as Airtable, where adding a new column to a table is adding a new field. This has the advantage of simplicity of use, but the disadvantage of limited functionality and flexibility to meet the needs of more complex scenarios.

NocoBase adopts the design idea of separating the data structure from the user interface, allowing you to create any number of blocks (data views) for the data collections, with different type, styles, content, and actions in each block. This balances the simplicity of no-code operation with the flexibility of native development.

model

2. What you see is what you get

NocoBase enables the development of complex and distinctive business systems, but this does not mean that complex and specialized operations are required. With a single click, configuration options are displayed on the usage interface, and administrators with system configuration privileges can directly configure the user interface in a WYSIWYG manner.

wysiwyg

3. Functions as plugins

NocoBase adopts plugin architecture, all new functions can be realized by developing and installing plugins, and expanding the functions is as easy as installing an APP on your phone.

plugins

Installation

NocoBase supports three installation methods:

  • Installing With Docker (👍Recommended)

    Suitable for no-code scenarios, no code to write. When upgrading, just download the latest image and reboot.

  • Installing from create-nocobase-app CLI

    The business code of the project is completely independent and supports low-code development.

  • Installing from Git source code

    If you want to experience the latest unreleased version, or want to participate in the contribution, you need to make changes and debug on the source code, it is recommended to choose this installation method, which requires a high level of development skills, and if the code has been updated, you can git pull the latest code.

License