Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -431,7 +431,6 @@ When calling a REST service, you can run into an error. This can be one of two t
1. Error with a response
2. Error without a response


If there is no response, the default error handling is enough. This will typically occur when the endpoint is down or when you get a timeout.

If there is a response the error message will contain the error code and the reason, but not the message. For that reason, add an additional log message with the response and then rethrow the error. Add details about the request that will help the developer.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,9 @@ The guidelines to develop modules and submit them to the Marketplace as as follo

* For Java dependencies, follow the following guidelines:

* In versions Mendix 10.3.0 and above, use [managed dependencies](/refguide/managed-dependencies/) where possible. For versions below 10.3, ensure that Java dependencies are put in the `userlib` folder. You should also put any [unmanaged dependencies](/refguide/managed-dependencies/#unmanaged), that is, non-publicly-available *.jar* files, in the **userlib** folder.
* When putting *.jar* files in the **userlib** folder, make sure the name includes a version number (for example, `org.apache.commons.io-2.3.0.jar`) and is accompanied by a blank `{jarfile-including-version}.{module_name}.RequiredLib` file so that users know where the .*jar* files come from (for example, for the module *MyModule*, `org.apache.commons.io-2.3.0.jar.MyModule.RequiredLib`).
* In versions Mendix 10.3.0 and above, use [managed dependencies](/refguide/managed-dependencies/) where possible. For versions below 10.3, ensure that Java dependencies are put in the `userlib` folder. You should also put any [unmanaged dependencies](/refguide/managed-dependencies/#unmanaged), that is, non-publicly-available *.jar* files, in the **userlib** folder.

* When putting *.jar* files in the **userlib** folder, make sure the name includes a version number (for example, `org.apache.commons.io-2.3.0.jar`) and is accompanied by a blank `{jarfile-including-version}.{module_name}.RequiredLib` file so that users know where the .*jar* files come from (for example, for the module *MyModule*, `org.apache.commons.io-2.3.0.jar.MyModule.RequiredLib`).

{{< figure src="/attachments/appstore/submit-content/userlibBlankFiles_boxed.jpg" width="400" >}}

Expand All @@ -35,4 +36,4 @@ The guidelines to develop modules and submit them to the Marketplace as as follo

* Do not rename entities and attributes when creating new versions, as data in these entities will get lost (replacing an existing module is based on the entity names).

* The module must include the English language.
* The module must include the English language.
2 changes: 1 addition & 1 deletion content/en/docs/appstore/create-content/create-widgets.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ The guidelines to develop widgets submit them to the Marketplace as as follows:
* A function should contain at most 200 lines of code.
* A function should only do one thing and do it properly.
* Use hooks and functional components over class components.
* Create test pages for mobile when content is made for mobile platforms.
* Create test pages for mobile when content is made for mobile platforms.
Original file line number Diff line number Diff line change
Expand Up @@ -87,19 +87,19 @@ If you have created own product specific terms and conditions, you must host the

If your product is not licensed as an open-source component and you would like to specify certain licensing terms and conditions or end-user license agreements, Mendix recommends creating a document that covers the following topics:

- Copyright information and license conditions
* Copyright information and license conditions

- IP usage, which covers a list of OSS/commercial licenses used
* IP usage, which covers a list of OSS/commercial licenses used

Below is a declaration template you can use for terms & conditions.

| Software Name and Version | Software URL | What does the Software do? Why is it needed? | License |
| ------------------------- | ------------ | -------------------------------------------- | ------- |
| Pro Secure Net 5.0 | https://example.com/prosecurenet/9f86d081884c7d659a2feaa0c55ad915 | A network security software that protects systems from unauthorized access and cyber threats. The software is needed to ensure the safety and integrity of network data. | MIT |

- Export control
- Data Privacy, including data processing agreement, as necessary
- Customer Service Level Agreement (SLA)
* Export control
* Data Privacy, including data processing agreement, as necessary
* Customer Service Level Agreement (SLA)

#### Data Privacy

Expand Down Expand Up @@ -237,21 +237,21 @@ Follow your description by adding information on how the product solves the prob

The requirements for the product description are as follows:

* There is no limit on the characters in the description.
* Mendix recommends adding a catchy one-liner before the rich text of the description. This line is used in the product's thumbnail as plain text—a maximum of 150 characters.
* There is no limit on the characters in the description.
* Mendix recommends adding a catchy one-liner before the rich text of the description. This line is used in the product's thumbnail as plain text—a maximum of 150 characters.

Below are some tips that can help you write a proper product description:

* The product description should cover answers to the key questions that developers have when they look for content.
* The product description should cover answers to the key questions that developers have when they look for content.

* The product description should cover the product benefits. Rather than covering many technical features, which you can also cover in the **Documentation** tab, the **Overview** tab can draw attention to the benefits. Specify how your product can improve customers' app development or work life in general. What can help you is outlining the features and benefits of your product, before writing the description. For every feature you list, think about how it will directly benefit a customer.
* The product description should cover the product benefits. Rather than covering many technical features, which you can also cover in the **Documentation** tab, the **Overview** tab can draw attention to the benefits. Specify how your product can improve customers' app development or work life in general. What can help you is outlining the features and benefits of your product, before writing the description. For every feature you list, think about how it will directly benefit a customer.

* Knowing the target audience will help you understand why this person needs your product, what features or benefits interest your customer. That way, you can put the focus on the right aspects.
* Use natural language. Imagine you are telling your friend about the product. Reading the description aloud helps you see if you bring the natural tone like in the real conversation. Friendly- and easily-explained lines in the description help your customers connect to your product. 
* Knowing the target audience will help you understand why this person needs your product, what features or benefits interest your customer. That way, you can put the focus on the right aspects.
* Use natural language. Imagine you are telling your friend about the product. Reading the description aloud helps you see if you bring the natural tone like in the real conversation. Friendly- and easily-explained lines in the description help your customers connect to your product. 

* Try not to use plain text, but rather support your description with bullet points, short paragraphs, and different size fonts. That way, you will help customers skim your text faster and draw attention to the most important parts of the text.
* Try not to use plain text, but rather support your description with bullet points, short paragraphs, and different size fonts. That way, you will help customers skim your text faster and draw attention to the most important parts of the text.

* You can also add keywords to your description to optimize the content for search engines like Mendix or Google Search. That way, if someone is searching for your product using a certain word, your product may come out in the search of the potential customer.
* You can also add keywords to your description to optimize the content for search engines like Mendix or Google Search. That way, if someone is searching for your product using a certain word, your product may come out in the search of the potential customer.

### Screenshots and Assets

Expand Down Expand Up @@ -289,12 +289,12 @@ Any products listed on Mendix Marketplace must meet the following requirements:

To provide the best level of support to customers of the product. Mendix recommends that you do the following:

- Set up a Service Level Agreement (SLA). For inspiration, consider the Mendix SLA as one example.
- Provide customers 24 x 7 x 365 support with global coverage. Ideally, a dedicated support team is available. In any case, make it straightforward for customers to identify which team or contact person gives them support. Ensure proper Mendix training for the team—Mendix Advanced Certification is recommended.
- Continuously monitor customer satisfaction with both the product itself and the support you are providing.
- The support team should have a direct line of communication with the engineering team delivering the product as second- or third-line support.
- Put internal procedures in place to manage changes, incidents, and escalations.
- Make a status page like status.mendix.com available for all customers.
* Set up a Service Level Agreement (SLA). For inspiration, consider the Mendix SLA as one example.
* Provide customers 24 x 7 x 365 support with global coverage. Ideally, a dedicated support team is available. In any case, make it straightforward for customers to identify which team or contact person gives them support. Ensure proper Mendix training for the team—Mendix Advanced Certification is recommended.
* Continuously monitor customer satisfaction with both the product itself and the support you are providing.
* The support team should have a direct line of communication with the engineering team delivering the product as second- or third-line support.
* Put internal procedures in place to manage changes, incidents, and escalations.
* Make a status page like status.mendix.com available for all customers.

{{% alert color="info" %}}
Mendix reserves the right to temporarily delist any products that do not adhere to these requirements until resolved. In principle, you will be notified in advance, but for critical issues, the notification can be sent at the same time as the delisting and customer notifications.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,6 @@ You may need to use the following classes when building a more complex custom pa
| `layoutgrid--full-height` | To be added to any layoutgrid (1 row is supported) around the chat UI components |
| `dataview--display-contents` | To be added to any dataview around chat components to prevent it from breaking the flex-flow on the page |


### Token Monitor Snippets {#snippet-token-monitor}

A separate set of snippets has been made available to display and export token usage information in the running application. This is applicable for LLM connectors that follow the principles of [GenAI Commons](/appstore/modules/genai/commons/#token-usage) and as a result store token usage information. The following snippets can be added to (admin) pages independently from the conversation logic described in earlier sections.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,15 +48,21 @@ Once the Mendix Data Loader is deployed, follow these steps to configure and use
5. To view the status of your data source, check the **Details**.
6. To view the configuration status, click the **Authentication Configuration** tab.
7. To set up authentication, click **Edit**, and then provide the required information based on the selected authentication type:
* For basic authentication, enter the following information:
* **Username** – A username for basic authentication into the OData resource in your Mendix application
* **Password** – A password for basic authentication into the OData resource in your Mendix application
* For OAuth authentication, enter the following information:
* **Client ID** – A client ID from your OAuth provider
* **Client Secret** – A secret associated with the client from your OAuth provider
* **Token Endpoint** – An endpoint at which the token will be validated by your OAuth provider
* **Allowed Scopes** – Allowed and custom scopes configured on the client from your OAuth provider
* **Access Token Validity** – Duration (in seconds) for which the access token is valid

[//]: # (<!-- markdownlint-disable no-space-in-emphasis -->)

* For basic authentication, enter the following information:
* **Username** – A username for basic authentication into the OData resource in your Mendix application
* **Password** – A password for basic authentication into the OData resource in your Mendix application
* For OAuth authentication, enter the following information:
* **Client ID** – A client ID from your OAuth provider
* **Client Secret** – A secret associated with the client from your OAuth provider
* **Token Endpoint** – An endpoint at which the token will be validated by your OAuth provider
* **Allowed Scopes** – Allowed and custom scopes configured on the client from your OAuth provider
* **Access Token Validity** – Duration (in seconds) for which the access token is valid

[//]: # (<!-- markdownlint-enable no-space-in-emphasis -->)

8. Click **Generate Script**.
9. Click **Back** to return to the **Details** page.
10. Click the **Ingestion Configuration** tab to set up your ingestion destination table.
Expand All @@ -77,7 +83,7 @@ Once the Mendix Data Loader is deployed, follow these steps to configure and use
16. Click **Schedule Ingestion Task**.
17. To view the created task, go to the **Task Management** tab, where you can monitor performed ingestion jobs, suspend or enable the task, or drop it. Currently, only one ingestion task can exist at a time.
18. Grant the application **USAGE** privilege on a warehouse to enable scheduling of data ingestions. All data ingestions use the same warehouse.
You are now redirected to the **Details** page, where you can see the status of the last three ingestionse.
You are now redirected to the **Details** page, where you can see the status of the last three ingestions.
19. To view the ingested data, access the schema specified in the target database within your Snowflake environment.

The ingested data is stored in the target schema of the specified target database, created by the Mendix Data Loader application. This target schema serves as a staging area. After each ingestion, copy the tables from the target schema to the desired database and schema that you want to use to store the ingested data.
Expand Down Expand Up @@ -125,7 +131,7 @@ Additionally, you may need to verify custom claims specific to your OAuth provid

## Setting up the App Client in your OAuth Provider

When setting up the OAuth provider to be able to use it with the Mendix Data Loader, you must specify aredirect URL in order for the authorization server to redirect the user back to the application. The redirect URL from your Snowflake environment has the following format:
When setting up the OAuth provider to be able to use it with the Mendix Data Loader, you must specify a redirect URL in order for the authorization server to redirect the user back to the application. The redirect URL from your Snowflake environment has the following format:

```
https://apps-api.c1.<cloud_region_id>.<cloud>.app.snowflake.com/oauth/complete-secret
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ Once your services are registered in the Catalog, they become discoverable to ot

You can manage discoverability on a per-service basis, either from the curation pages or the service detail page. For more information, see the [Discoverable and Validated](/catalog/manage/curate/#discoverability) section of *Curate Registered Assets*.


## Read More

* [Getting Started with the Catalog](/catalog/get-started/)
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,6 @@ For setting up Postgres with Azure workload identity, follow the guide in [Azure

To configure an SQL Server, refer to the [Azure azwi SQL setup](/developerportal/deploy/private-cloud-storage-plans/#walkthrough-azure-azwi).


### Applying the Manifest

To apply the installation manifest to install the server in the Kubernetes namespace, use the following command:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -151,8 +151,8 @@ Only Portfolio Managers and Contributors from the same company as the portfolio

1. Make sure that [you have linked the Jira project to your portfolio](/developerportal/portfolio-management/integrate-with-jira/#link-jira-project).
2. At the bottom of the **Epics** section, click **+ Add Jira Epics**.
2. Select the Jira project to which the epics belong.
3. Select the Jira epics. You can search by its full key or summary.
3. Select the Jira project to which the epics belong.
4. Select the Jira epics. You can search by its full key or summary.
5. Click **Add** to link the selected epics to the initiative.
6. If you need to link epics in other Jira projects to this initiative, repeat the steps from 2 to 5, until you link all the epics. You can link up to a maximum of 20 Jira epics per initiative.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,19 +62,19 @@ To connect your portfolio to Jira, follow these steps:
* **Account**: This is the login name (the email address) of a user on the Jira platform with project access rights.
* **API Token**: This is a valid API token issued by the Jira platform and assigned to the above-mentioned account. For more information on how to get this API token, see [Manage API tokens for your Atlassian account](https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/).

5. Click **Next**.
6. Select the Jira projects you want to link to your portfolio. You can link up to a maximum of 20 Jira projects per portfolio.
7. Click **Next**.
8. Select the Jira projects you want to link to your portfolio. You can link up to a maximum of 20 Jira projects per portfolio.

{{< figure src="/attachments/developerportal/portfolio-management/integrate-with-jira/jira-configuration-wizard-page-3.png" >}}

7. Click **Save**.
9. Click **Save**.

Once the configuration is completed, your portfolio is connected to Jira, and you can see the following:

{{< figure src="/attachments/developerportal/portfolio-management/integrate-with-jira/jira-integration-linked-projects.png" >}}

* A card with the details of your Jira integration and the **Edit Configuration** button, which enables you to [edit the current configuration of the integration](#edit-configuration).
* A list with the Jira projects that are linked to this portfolio, which contains the folllowing items:
* A list with the Jira projects that are linked to this portfolio, which contains the following items:

* Project icon – This is the icon of the linked Jira project.
* **Name** – This is the name of the linked Jira project.
Expand All @@ -99,7 +99,7 @@ If you want to edit your existing Jira configuration, for example to rotate the
## Deleting Jira Configuration

{{% alert color="warning" %}}
If you already have [linked Jira projects](#link-jira-project) to the portoflio, after you delete the Jira configuration, the linked Jira projects will be unlinked from the portfolio automatically.
If you already have [linked Jira projects](#link-jira-project) to the portfolio, after you delete the Jira configuration, the linked Jira projects will be unlinked from the portfolio automatically.
{{% /alert %}}

To delete a configuration, do the following steps:
Expand Down Expand Up @@ -144,4 +144,4 @@ If you already have [linked epics from the Jira project to an initiative](/devel

{{< figure src="/attachments/developerportal/portfolio-management/integrate-with-jira/warning-jira-project-unlink.png" >}}

4. Click **Unlink** to confirm your action.
5. Click **Unlink** to confirm your action.
Loading