Where do i start?

Hi,

I want to understand the code. How do I go about it? The existing developer’s documents are not that useful to understand how the code is structured, how do I setup the development environment, how do I debug the code etc. I am looking for a code walkthrough of the platform. Can someone please help me so that I can learn and extend this platform and also add more features I have in mind.

Regards,
Ashwin

Hi @ashwin, and welcome!

I understand the documentation can be very lengthy and possibly confusing for first-time users.

Did you take a look at this bit of the documentation: DevOps guide :: Corteza Docs ? I believe this is a good starting spot to get an idea of the project’s overall structure and where to start setting up the environment locally.

If you already followed this guide, please let us know what the blocker is, and we’ll do our best to find a solution.

Cheers!

Hello Mia,

I have already run through the guide and set up my local environment. I can access corteza server using localhost address. I have also explored the platform by creating a namespace, building modules, pages, validations etc. While exploring the platform, I came across certain things which I thought could be improved. Some of the things that came to my mind are,

  1. Navigation: the namespace landing page can be improved by listing namespaecs, modules, pages etc in a left navigation bar.

  2. Permission model: can be improved by
    a. Allow/Deny based on current record meeting certain condition/s
    b. Allow/Deny based on the result of an expression or a set of expressions
    c. Allow/Deny based on the combination of all

  3. Client-side scripting: Ability to write scripts to perform client-side operations like:

Setting a field value

Making a field mandatory, read-only, visible/hidden

Performing complex validations using a script

Saving a record

Show a message/error/input box.

Open a modal form

Trigger server side processing from client side

etc.

Styling: Provide configurable styling (CSS) at namespace level

and so on.

Now that I like the platform, I want to learn more about it and improve it. I have been working on RAD (Rapid Application Development) platform since last 15 years and have worked on Remedy and ServiceNow platforms. These were/are the original no code low code heroes which very few people know about. I think I can leverage that expertise to improve Corteza platform which essentially follows the same principle that Remedy and ServiceNow have followed but decades ago.

I need a code walkthrough and need to know how I set up my development environment and run/debug the code in IDE.

Hi @ashwin

Thank you for your input. We’re aware that that we need to extend and polish our docs in quite a few places and make it easier to understand for every interested developer . So far it’s been mostly our internal team or people with good understanding of golang projects.

In a nutshell:

  • checkout the repo
  • run make watch to spin up Corteza in dev mode with reloading on change
  • change/fix stuff in the code

I’m fully aware that in practice is not as trivial as 3 bullets above describe.

For now, I’ll have to invite you to do some exploration on your own and if possible, maybe you write a paragraph or two on setting up the env?


Regarding the suggested improvements

  1. This is already in the making and pretty much done. I’ll let @mia.arh share some details
  2. Permissions is strictly RBAC for now. Digging into attribute-based access control would need quite a few changes in the core of RBAC and how it’s implemented. Not sure if we want to take it so far. You might want to know that RBAC is getting some upgrades in the next 1 or 2 releases: we will add support for “dynamic groups” (for the lack of the better name) that will enable setting permissions to “owners”, “creators”, …
  3. Client side scripting with functionalities you’re describing is already available through Corredor Automation server Client Scripts and to some extend via Workflow (released with 2021.3 this week). I know it’s far from easy-to-use-and-understand but it’s at the level where it needs some good examples using building blocks already available.
  4. Configurable styling is something that would really come in handy.
2 Likes

Hi guys,

For point 1 - as Denis said, we indeed are working on a similar solution with a sidebar where the user sees all the pages, can search through them and switch between namespaces - all in one place.

Here is a screenshot of a proof of concept:

I hope this makes sense!

2 Likes