Starcounter 2.1: Breaking changes for app composition

September 22, 2015 11:42 pm Published by Leave your thoughts

Hi there!
Starting with version 2.1 we introduce the following breaking changes:

  1. In mapping URIs where “/polyjuice” prefix was used, now we use “/sc/mapping”
    For that we recommend UriMapping.MappingUriPrefix, for example:
    UriMapping.Map("/images/menu", UriMapping.MappingUriPrefix + "/menu");

  2. Polyjuice.Map and Polyjuice.OntologyMap changed to UriMapping.Map and UriMapping.OntologyMap respectively.

  3. Starcounter.Node.dll is now integrated into Starcounter.Internal.dll, meaning that first reference should be removed from your project.

  4. HTML merger URI “/polyjuice/htmlmerger?…” is changed to “/sc/htmlmerger?…”

  5. Applications are now isolated from each other on SQL level (Db.SQL calls). This means that database classes defined in one application are not accessible to another application running in the same code host. However, database classes defined in shared assembly are accessible to all applications that link this shared library. Read more here: SQL isolation

  6. Administrator SQL now forces querying database classes ONLY using their fully-namespaced name. Read more here: SQL isolation

  7. Layouts are moved from Launcher (and deprecated Polyjuice project) to Starcounter. Handlers are renamed from “/launcher/juicytilessetup…” to “/sc/layout/…”.

  8. The PolyjuiceNamespace was removed, as well as PolyjuiceFlag in database configuration.

  9. The root redirection (for example, “/products” to “/”) should now be done using URI aliasing in gateway: http://starcounter.io/guides/network/aliases-and-redirects/

  10. Polyjuice folder in StarcounterBin renamed to ClientFiles.

  11. URI aliasing API added: URI aliases

  12. The following flags (saved in database config) are added with their default values:

Should edition libraries be loaded in databases:
<LoadEditionLibraries>true</LoadEditionLibraries>

Should Json responses be wrapped in application name:
<WrapJsonInNamespaces>true</WrapJsonInNamespaces>

Should applications be forced to register handlers starting with application name prefix:
<EnforceURINamespaces>false</EnforceURINamespaces>

Should Json responses from multiple applications be merged:
<MergeJsonSiblings>true</MergeJsonSiblings>

Should URI mapping (UriMapping.Map) be enabled:
<UriMappingEnabled>true</UriMappingEnabled>

Should URI ontology mapping (UriMapping.OntologyMap) be enabled:
<OntologyMappingEnabled>true</OntologyMappingEnabled>

When codehost is running one can manipulate with these flags at runtime using special REST API. All should be called on system port.

Getter for flags: GET /sc/[fusion_builder_container hundred_percent="yes" overflow="visible"][fusion_builder_row][fusion_builder_column type="1_1" background_position="left top" background_color="" border_size="" border_color="" border_style="solid" spacing="yes" background_image="" background_repeat="no-repeat" padding="" margin_top="0px" margin_bottom="0px" class="" id="" animation_type="" animation_speed="0.3" animation_direction="left" hide_on_mobile="no" center_content="no" min_height="none"][DatabaseName]/GetFlag/[FlagName]
For example: GET /sc/default/GetFlag/WrapJsonInNamespaces

Setter for flags: GET /sc/[DatabaseName]/SetFlag/[FlagName]/[BooleanValue]
For example: GET /sc/default/SetFlag/WrapJsonInNamespaces/True[/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]

Categorised in:

This post was written by Alexey Moiseenko

Leave a Reply

Your email address will not be published. Required fields are marked *