> For the complete documentation index, see [llms.txt](https://docs.silkbuilder.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.silkbuilder.com/development/development_environment.md).

# Development Environment

Development happens in the SilkBuilder web application. To access it you have to have the SilkBuilder url and the account credentials. All this has to be installed and setup by the SILK System Administrator.

![Login Screen](https://3932510557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPkEcpm1RVG8e6cxUOo%2Fuploads%2Fgit-blob-ed2fbe10db18527b94e350caef58444fa2bf0350%2FSilkBuilder_login.png?alt=media)

## Dashboard

After login in the the SilkBuilder dashboard is displayed. This screen layout changes based on the user's role. The example below show the admin layout.

![Dashboard View](https://3932510557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPkEcpm1RVG8e6cxUOo%2Fuploads%2Fgit-blob-9836a1e7c615187ec1f274b36a3e8be51b4434ab%2FSilkBuilder_dashboard.png?alt=media)

## Systems

Before start developing applications using SilkBuilder a *System Holder* has to be created. SilkBuilder is designed to support multiple "Systems". Each "System" works as an applications holder or repository.

Use the "Systems" button located in the SilkBuilder dashboard to setup the systems.

![Systems Listing](https://3932510557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPkEcpm1RVG8e6cxUOo%2Fuploads%2Fgit-blob-68c7cc2b7e111076d975d26a048d23f99fb0896a%2FSilkBuilder_Systems.png?alt=media)

Clicking in the "+" button will open the system editor to add a new system, and clicking the three-dots icon in the extreme left of a row will to edit the information.

A system has the following information:

* **System Name**: The name you want to call your system.
* **Test Database**: This is the database used by SilkBuilder to test the application functionality. Ideally this database should be similar to the SilkClient database. However SilkBuilder support having different databases for the development and productions environment.
* **Template**: The name of the template use for the system. Templates are setup by the SilkBuilder admin. If not entered the system will use the SIlkBuilder template.
* **User ID**: The unique identifier for the *silkUserID* which will be use a part of the simulated testing process.
* **Menu Link**: If required here goes the URL to the system's menu which is another application.
* **Role List**: A comma separated list of role-name use for the simulated testing process.

![System Editor](https://3932510557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPkEcpm1RVG8e6cxUOo%2Fuploads%2Fgit-blob-1f7052ac429e2fb96acf754c98230aa7f93a0c8b%2FSilkBuilder_Systems_edit.png?alt=media)

## Target Host

A "System" is connected to "Target Hosts" which are web application servers containing the SilkClients environment. Silk builder uses the "Target Host" to deliver a "System" to multiple servers.

After the "System" has been setup the next step is to create a Target Host. A minimal of one Target Host is necessary because SilkBuilder needs to know the target's "Host Database" to properly define the ORM.

A Target Host has the following information:

* **Host URL**: The URL pointing to the SilkClient application server.
* **Host Database**: The database use by the SilkClient.
* **Variables**: To be used to create ORM variable modifications (Not implemented yet).
* **Private Key**: Use as authentication token during code upload from SilkBuilder to SilkClient.

![Host Editor](https://3932510557-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPkEcpm1RVG8e6cxUOo%2Fuploads%2Fgit-blob-f59bc890e9e6832e4f44a54986d49da1f9bbeba3%2FSilkBuilder_Systems_target.png?alt=media)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.silkbuilder.com/development/development_environment.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
