You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+57-7Lines changed: 57 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,6 +14,17 @@ $ npm run start
14
14
15
15
This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
16
16
17
+
## Deployment
18
+
19
+
The documentation is automatically deployed when changes are pushed to the master branch. GitHub Actions will:
20
+
1. Build the documentation
21
+
2. Deploy the updated content to GitHub Pages
22
+
3. Make it available at the public URL
23
+
24
+
No manual deployment steps are required - just push your changes to master.
25
+
26
+
⚠ Build will fail if broken links / anchors are detected
27
+
17
28
## Creating New Documentation
18
29
19
30
1. Create a new markdown file (`.md` or `.mdx`) in the appropriate directory under `docs/`.
@@ -22,13 +33,52 @@ This command starts a local development server and opens up a browser window. Mo
22
33
- Place related images in this directory
23
34
- Reference images using relative paths: ``
24
35
25
-
##Deployment
36
+
### Documentation metadata
26
37
27
-
The documentation is automatically deployed when changes are pushed to the master branch. GitHub Actions will:
28
-
1. Build the documentation
29
-
2. Deploy the updated content to GitHub Pages
30
-
3. Make it available at the public URL
38
+
Markdown documents can use the following Markdown [front matter](https://docusaurus.io/docs/markdown-features#front-matter) metadata fields, enclosed by a line --- on either side.
31
39
32
-
No manual deployment steps are required - just push your changes to master.
description: How do I find you when I cannot solve this problem
52
+
keywords:
53
+
- docs
54
+
- docusaurus
55
+
tags: [docusaurus]
56
+
image: https://i.imgur.com/mErPwqL.png
57
+
slug: /myDoc
58
+
last_update:
59
+
date: 1/1/2000
60
+
author: custom author name
61
+
---
62
+
63
+
# Markdown Features
64
+
65
+
My Document Markdown content
66
+
```
67
+
68
+
### Code blocks
69
+
70
+
You can add a `title` to the code block by adding a title key after the language (leave a space between them).
71
+
```js
72
+
console.log('What a great log');
73
+
```
74
+
75
+
### Admonitions
76
+
77
+
In addition to the basic Markdown syntax, we have a special admonitions syntax by wrapping text with a set of 3 colons, followed by a label denoting its type.
78
+
79
+
See [Admonitions how-to](https://docusaurus.io/docs/markdown-features/admonitions)
80
+
81
+
82
+
### See more
33
83
34
-
> Build will fail if broken links / anchors are detected
Copy file name to clipboardExpand all lines: docs/documentation/core/basic-code-examples.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,7 @@ For more details on **Rhino** scripting you can check [the Mozilla Rhino documen
13
13
14
14
> **Note**:
15
15
>
16
-
> Object code can be written in Java (or JavaScript which will be executed by the Rhino server-side engine, just like the executed fields), but good practice is to perfer Java language which
16
+
> Object code can be written in Java (or JavaScript which will be executed by the Rhino server-side engine, just like the executed fields), but good practice is to prefer Java language which
17
17
> include a compilation step and ensure that the syntax of the script is correct. In advanced use cases that are not part of this tutorial, the use of Java gives access > to all of the classic application development tools: step-by-step debugging, unit tests, development in a Java IDE, code quality analysis with Sonar etc..
18
18
19
19
> Examples are provided both in Rhino and Java so as you can see the syntax differences.
Copy file name to clipboardExpand all lines: docs/documentation/faq.md
+13-13Lines changed: 13 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,12 +6,12 @@ title: FAQ
6
6
Frequently Asked Question
7
7
=========================
8
8
9
-
General/installation/operation
9
+
General / installation / operation
10
10
------------------------------
11
11
12
12
> Is it possible to use the _foo_ database, the _bar_ application server, the _baz_ JVM version, ...?
13
13
14
-
<!--Please refer to the [compatibily tables](/docs/documentation/compatibility).-->
14
+
Please refer to the [compatibility tables](/docs/documentation/compatibility).
15
15
16
16
For details on some specific installation/operation requirements, please refer to the miscellaneous documentation.
17
17
@@ -20,7 +20,7 @@ Versions
20
20
21
21
> What is the current maintenance status of version `x.y`?
22
22
23
-
<!--Please check [this document](/docs/versions/versioning.md) and the latest release notes of considered version.-->
23
+
Please check [this document](/docs/versions/versioning.md) and the latest release notes of considered version.
24
24
25
25
Usage
26
26
-----
@@ -36,7 +36,7 @@ Design
36
36
37
37
> Where to starts with to build my first business application?
38
38
39
-
<!--A good start is the [Getting started](/docs/tutorial/getting-started), -->
39
+
A good start is the [Getting started](/docs/tutorial/welcome.md)
40
40
41
41
### Business objects
42
42
@@ -47,7 +47,7 @@ Not yet, this is in the roadmap for next version. At that stage you still need t
47
47
> How can we set the number of rows in list ?
48
48
49
49
This is a global setting defined at user level (min and max number of rows per lists) and dynamically configurable at list level.
50
-
For business objects with few rows you can inhibitate the pagination, then all rows will be displayed
50
+
For business objects with few rows you can inhibit the pagination, then all rows will be displayed
51
51
52
52
Keep in mind that lists with a high number of rows combined with many fields visible on lists will result in huge page volumes with poor performances (and low useability).
53
53
@@ -72,25 +72,25 @@ Coding
72
72
73
73
> Where can I find general documentation and code samples on server side scripting?
74
74
75
-
<!--You can browse the [core documentations](./01-core/) for code examples (general, business objects hooks, business workflows hooks, adapters, publications, dispositions, ...).-->
75
+
You can browse the [core documentations](/docs/category/core) for code examples (general, business objects hooks, business workflows hooks, adapters, publications, dispositions, ...).
76
76
77
77
> Are there some limitations or usual traps on the server side scripts that I should be aware of?
78
78
79
-
<!--**Yes!** Please refer to [this documentation](/docs/documentation/core/basic-code-examples#javascript-engine-traps) for details on things to avoid (to avoid headhaches). -->
79
+
**Yes!** Please refer to [this documentation](/docs/documentation/core/basic-code-examples) for details on things to avoid (to avoid headaches).
80
80
81
81
### Integration/APIs
82
82
83
83
> Where can I find general documentation on integration interfaces, APIs, code samples...?
84
84
85
-
<!-- You can browse the [documentations](./): -->
86
-
87
-
<!-- * Code samples for core configuration items (business objects, workflows, disposition, adapters, ...) in the [core documentations](./01-core/) -->
88
-
<!-- * Integration interfaces usage (CLI, web services, ...) in the [integration documentations](./02-integration/) -->
89
-
<!-- * Helper libs (Ajax, ...) in the [APIs documentations](./03-apis/) -->
85
+
* Code samples for core configuration items (business objects, workflows, disposition, adapters, ...) in the [core documentation](/docs/category/core)
86
+
* Integration interfaces usage (CLI, web services, ...) in the [integration documentation](/docs/category/integration)
87
+
* Helper libs (Ajax, ...) in the [APIs documentation](/docs/category/librairies)
90
88
91
89
Configuration
92
90
-------------
93
91
92
+
>
93
+
94
94
> How can I configure the logging of the application?
95
95
96
-
<!--Please refer to [this document](/docs/documentation/misc/logging) -->
96
+
Please refer to [this document](/docs/documentation/misc/logging.md)
Copy file name to clipboardExpand all lines: docs/documentation/integration/webservices/custom-services.md
+20-22Lines changed: 20 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,11 +3,9 @@ sidebar_position: 60
3
3
title: Custom services
4
4
---
5
5
6
-
Custom services
7
-
===============
6
+
# Custom services
8
7
9
-
Introduction
10
-
------------
8
+
## Introduction
11
9
12
10
This document describes how to implement custom services (e.g. custom REST APIs) using external objects.
13
11
@@ -29,34 +27,35 @@ The calls examples are given using the `curl` command line tool
29
27
> In versions 4.0+ a technical session is used to avoid taking care of the session cookie.
30
28
31
29
For an application deployed on `myapp` webapp root, the base URL of the custom services is:
30
+
32
31
```
33
32
http[s]://<host[:<port>]>/myapp/api/ext
34
33
```
35
-
For an application deployed on the default webapp root, the base URL of the custom services is:
34
+
35
+
For an application deployed on the default webapp root, the base URL of the custom services is :
36
+
36
37
```
37
38
http[s]://<host[:<port>]>/api/ext
38
39
```
40
+
39
41
It will be noted `<base URL>` in the rest of the document.
40
42
41
43
> **Warning**: In production the services endpoint's URL should be restricted only to allowed origins e.g. using URL filtering based on request's origin IP address or similar approaches.
42
44
43
-
Scalability and performances
44
-
----------------------------
45
+
## Scalability and performances
45
46
46
47
For optimal performances under high concurrent volume it may be useful to enable the API pooling by setting the `USE_WEBSERVICES_OBJECTPOOL` to `yes`, especially
47
48
when using a single user (e.g. calls from a "public" frontend).
48
49
49
50
This allow calls to the services to be processed by a per-user pool of external objects.
50
-
The pool size can be adjusted/limied using the `WEBSERVICES_EXTOBJECTPOOL_MAXPEROBJECT`and `WEBSERVICES_EXTOBJECTPOOL_MAXTOTAL` system parameters.
51
+
The pool size can be adjusted/limied using the `WEBSERVICES_EXTOBJECTPOOL_MAXPEROBJECT` and `WEBSERVICES_EXTOBJECTPOOL_MAXTOTAL` system parameters.
51
52
52
-
Service implementation
53
-
----------------------
53
+
## Service implementation
54
54
55
55
A custom service is just a plain external object (check [this document](/docs/documentation/core/externalobject-code-examples) for general principles of external objects).
56
56
57
57
In particular this external object needs to be granted to the user that will be calling it on the API endpoint.
58
58
59
-
60
59
### Java
61
60
62
61
In **Java** as of version 4.0.P23 you can extends the more convenient `com.simplicite.webapp.services.RESTServiceExternalObject` helper class
@@ -91,34 +90,34 @@ public class MyServiceV1 extends com.simplicite.webapp.services.RESTServiceExter
91
90
92
91
> **Note**: by default the non implemented method `get/post/put/del/head` of this helper class return a plain 400 ("Bad request") error.
93
92
94
-
Service call
95
-
------------
93
+
## Service call
96
94
97
95
Then the service could be called (using `POST` method in this example) like this:
96
+
98
97
```shell
99
-
curl <credentials> -X POST -H "Content-type:application/json" -d @req.json "<base URL>/MyServiceV1"
98
+
curl <credentials> -X POST -H "Content-type:application/json" -d @req.json "<base URL>/MyServiceV1"
100
99
```
100
+
101
101
Where, for instance if `req.json` is:
102
102
103
103
```json
104
104
{
105
-
"name": "Bob"
105
+
"name": "Bob"
106
106
}
107
107
```
108
108
109
109
The result is then:
110
110
111
111
```json
112
112
{
113
-
"request": {
114
-
"name": "Bob"
115
-
},
116
-
"response": "Hello Bob!"
113
+
"request": {
114
+
"name": "Bob"
115
+
},
116
+
"response": "Hello Bob!"
117
117
}
118
118
```
119
119
120
-
Mapped business object services helper class
121
-
--------------------------------------------
120
+
## Mapped business object services helper class
122
121
123
122
As of version 4.0.P23 a high-level helper class `com.simplicite.webapp.services.RESTMappedObjectsExternalObject`
124
123
is provided to simply expose Simplicité business object CRUD in a simplified and customized way.
@@ -159,4 +158,3 @@ With the above mapping the user and responsibilities standard objects are availa
159
158
-`/api/v1/users/1/user-resps` select (GET) the responsibilities of user with row ID `1`
160
159
161
160
An OpenAPI schema is available on `/api/v1/openapi.yml`
Copy file name to clipboardExpand all lines: docs/documentation/integration/webservices/git-repositories.md
+10-14Lines changed: 10 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,17 +3,15 @@ sidebar_position: 20
3
3
title: Git repositories
4
4
---
5
5
6
-
Git repositories (/git)
7
-
================
6
+
# Git repositories (/git)
8
7
9
8
As of **version 3.2 MAINTENANCE 03**, a new endpoint is available to export/import modules using [Git](https://git-scm.com/) over HTTP(S).
10
9
11
10
This feature relies on the Eclipse [JGit](https://github.com/eclipse-jgit/jgit) library.
12
11
13
12
> **Warning**: In production this Git endpoint's URL should be restricted only to allowed origins e.g. using URL filtering on request's origin IP address or similar approaches.
14
13
15
-
Configuration
16
-
-------------
14
+
## Configuration
17
15
18
16
The Git repositories are stored on the server file system.
19
17
@@ -26,27 +24,26 @@ This can be done either:
26
24
27
25
Then you also need to set the `USE_GIT` system parameter to `yes`.
28
26
29
-
Export
30
-
------
27
+
## Export
31
28
32
29
To export the `MyModule` module as a Git repository the first thing to do is to create or update the module's repository
33
30
using the dedicated action on the _Module_ object:
34
31
35
32

The credentials you have to use in this case are the same as the one you can use for the I/O interface.
42
41
43
-
Import
44
-
------
42
+
## Import
45
43
46
44
Any `git push [origin]` on the cloned module's repository triggers a module import (e.g. after having made some local changes or to upgrade another instance by pushing on another remote).
47
45
48
-
Import from an origin remote
49
-
----------------------------
46
+
## Import from an origin remote
50
47
51
48
It is possible to configure a module that is linked to an external Git repository by adding following settings to your module:
52
49
@@ -66,7 +63,7 @@ E.g. from another instance's module repository:
66
63
Any call to the _Import module_ action will then result in either a clone or a pull on the configured remote Git repository.
67
64
68
65
> Typical use case is to link a "secondary" instance to a "primary" instance. In such a case there are 2 possible ways to export/import a module from the "primary" to the "secondary" instance:
69
-
>
66
+
>
70
67
> - Directly use the _Import module_ action from the "secondary" instance (that will be pulling last commit(s) from the "primary" instance)
71
68
> - Use a clone of the "primary" instance Git repository configured with an additional remote that points to the "secondary" instance.
72
69
> Then `git pull` will pull from the "primary" instance and `git push <remote name>` will push to the "secondary" instance.
@@ -87,8 +84,7 @@ E.g. from a **public** GitHub repository:
87
84
As of version 5.2, you can set the JVM properties (`remote.git.username/password`) or the environment variables (`REMOTE_GIT_USERNAME/PASSWORD`)
88
85
if you want to avoid configuring username/password credentials in your module's settings. A **much better approach** being to use a SSH URI with configured SSH public/private keys.
89
86
90
-
Advanced
91
-
--------
87
+
## Advanced
92
88
93
89
The Git repositories created/cloned by Simplicité:
|`6.3`|⚠️ Alpha| Not applicable |*<abbrtitle="To Be Determined">TBD</abbr>*|*<abbrtitle="To Be Determined">TBD</abbr>*|`6-alpha[-light]`|`6.3[-light]`|
13
+
|`6.3`|🚧 Alpha | Not applicable |*<abbrtitle="To Be Determined">TBD</abbr>*|*<abbrtitle="To Be Determined">TBD</abbr>*|`6-alpha[-light]`|`6.3[-light]`|
14
14
|`6.2`| ✅ **Current release**| Current | Feb 10th, 2025 |*<abbrtitle="To Be Determined">TBD</abbr>*|`6[-light]`, `6.2[-light]`, `6.2.x`|`6.2[-light]`|
15
-
|`6.1`| ☑️ Maintained | Short term (STS) | July 10th, 2024 | May 11th, 2025 |`6.1[-light]`, `6.1.x`|`6.1[-light]`|
16
-
|`6.0`| ❌ Expired!| Short term (STS) | January 31st, 2024 | October 31th, 2024 |`6.0[-light]`, `6.0.x`|`6.0[-light]`|
17
-
|`5.3`| ☑️ Maintained | Long-term (LTS) | April 24th, 2023 | January 31st, 2027 |`5[-light]`, `5.3[-light]`, `5.3.x`|`5.3[-light]`|
18
-
|`5.2`| ❌ Expired!| Short term (STS) | April 20th, 2022 | September 30th, 2023 |`5.2[-light]`, `5.2.x`|`5.2[-light]`|
19
-
|`5.1`| ❌ Expired!| Short term (STS) | September 1st, 2021 | October 31st, 2022 |`5.1[-light]`, `5.1.x`|`5.1[-light]`|
20
-
|`5.0`| ❌ Expired!| Short term (STS) | January 11th, 2021 | September 30th, 2021 |`5.0[-light]`, `5.0.x`|`5.0[-light]`|
0 commit comments