Portal Setup
Learn about Portals and how to set up and use them for your organization.
Last updated
Learn about Portals and how to set up and use them for your organization.
Last updated
Copyright 2024 DNAnexus
A license is required to set up and use a Portal. Contact DNAnexus Sales for more information.
A Portal is an org with special privileges that serves two purposes. First, it provides a space for your organization to showcase projects with special data sets, tools that you’ve published, news and highlights or other important links. Second, the Portal has customized branding that will follow the end-user throughout the site with a curated view of projects and tools.
To configure a new Portal for your org you will work with the DNAnexus Professional Services team. First, the Partner will need to specify the org that will host the Portal. The Portal is tied to exactly one org.
We will ask you to provide the initial configuration requirements and assets (logos or other images, brand colors, text, and links) listed below.
Once all configuration requirements and assets have been provided, the Portal will be ready to test. At this point the DNAnexus Professional Services team will provide a link to the Portal along with a brief training to orient the Org Admin to using the portal.
This section describes configurations that the Org Admin can make by editing and uploading new .json
files or new images.
branding.json
)Logo (no size limit, but it’s recommended to stay under 200px high)
(Optional) Login button color; must be conducive to white text
(Optional) Whether to hide the registration link
(Optional) Text to display under login button
branding.json
)Logo (max 100x100px)
(Optional) Register button color; must be conducive to white text
(Optional) Can disable registration page, redirecting directly back to login
(Optional) Markdown text to display under register buttons
(Optional) Add default region for users who register with this page
(Optional) Add short sentence indicating terms of acceptance
branding.json
and navigation.json
)The branding.json
controls the colors in the Header. The navigation.json
controls the navigation links and menus (with the exception of the logo navigation).
These are the items you can configure:
Header corner Logo (min 15x15px, max 50x30px)
(Optional) Logo link destination, defaults to Home page (configure in the branding.json
file)
(Optional) Whether the logo link opens in a new tab (configure in the branding.json
file)
(Optional) Support page (used when the user clicks on “Get Help” in the Help menu, default is DNAnexus Support Form)
(Optional) Color for the nav underbar, text, background, nav hover background color, landing page button color and color array for the user bubble. Currently icons do NOT change color, so do not make the background bar a dark color or text will not be visible.
(Optional) Navigation customization. You can add custom items to the ends of our Projects, Tools, and Help menus, remove those menus entirely, or add new menus and links to the nav header.
(Optional) Filters for the projects list (i.e. when the user clicks on “All Projects” in the Projects menu)
(Optional) Whether to hide the community switcher (this will “lock” the user into the current community)
home.json
)The main page is a customizable landing page with the ability to showcase in any order with any amount of widgets:
Specific projects
Specific tools
Links to external websites
Images (PNG, JPEG, TIFF, BMP, etc)
Markdown text
The home.json
file contains a list of widgets to display, and the order in which to display them.
Title
id property of “markdown”
Minimum width
Markdown text
Minimum width
id property of “image”
Image resource or location (image can be any type, e.g. PNG, JPEG, TIFF, BMP)
Alt text (when image can’t be displayed)
Title
id property of “link”
Minimum width
List of link destinations and their titles
Title
id property of “project” or “projectCards”
Minimum width
Project filter criteria - To have projects displayed here, set up a search using the system/findProjects
API method. Note that if you want all projects to be visible to all users who can access the Portal, set the level
parameter to "VIEW."
Project sub-page destination
Tool List Widget
Title
id property of “tool”
Minimum width
Tool filter criteria - To have available tools displayed here, set up a search using the /system/findApps API method.
A list of icons available to use on home.json
is available here. DNAnexus supports the use of icons introduced in version 4.3 and earlier.
Portal assets are stored with the json
files. You can easily upload json
and PNG files using the GUI on the main portal home page. The sections for each json
file describe the access permissions that each file requires.
The UI can become disabled if a flawed json
is inadvertently uploaded. Review the section below on how to validate json
files.
JSON (JavaScript Object Notation) is a lightweight data-interchange format. Most of the time, it is easy for humans to read and write but sometimes, it is extremely difficult to actually read and make sense of. We highly recommend validating your portal asset using tools such as jsonlint or jsonformatter, before using them to update the community portal.
It is mandatory to clear your browser cache after updating your portal assets with a revised JSON file.
In most browsers, you can clear the cache from the Privacy or History area in the Settings or Options menu, depending on the browser. The hotkey combination Ctrl+Shift+Del (or Cmd-Shift-Del on a Mac) works with most browsers as well.
While that hotkey combo works in most non-mobile browsers, the exact steps involved in clearing your browser's cache depend entirely on what web browser you're using. If these suggested steps do not work please refer to your browser’s documentation.
As an alternative to clearing your cache, it is possible to use ‘private’ browsing (a.k.a ‘privacy’ mode or ‘incognito’ mode) to view the asset updates. This is a privacy feature in some web browsers to disable browsing history and the web cache allowing a person to browse the Web without storing local data that could be retrieved at a later date. To launch your browser in ‘incognito’ mode, please refer to your browser's documentation.
DNAnexus can also provide you with CLI scripts to update your assets. This provides an alternative to the UI, which can become disabled if a flawed json is inadvertently uploaded. Contact support@dnanexus.com for more information and to request access to the scripts for CLI updating.
Portal assets are split into many different files, all loaded at different times by different components. Below are samples of each file. Note that several of these files contain references to images; for communities, you can either prepend a pound sign (#) to denote an image fetched from the community assets (e.g. “#logo.png” would fetch the file “logo.png” stored in the community), or you can use a normal URL to fetch an image from an external source.
branding.json
This file must be public (viewable by all users) Applies to the header and community selector, as well as the login and registration pages. colors
is optional in each section and contains information about how to change the colors of various elements in the given section.
Earlier versions of Portals had two additional files -- login.json
and register.json'
-- you do not need to remove those, but all of their information will need to be transferred to branding.json
.
In the header, logoOpensNewTab
is optional and if true will open a new tab when the user clicks on the logo in the upper left. hideCommunitySwitch
is also optional and, if true, will hide the community selector in the upper left (essentially locking the user into the current community).
In the login and registration sections, logo
specifies a logo to be used at the top of the given page and text
can be Markdown which will be rendered at the bottom of the page (below the button but above the footer).
The registration section has several optional attributes. First, disable
, which if true will hide the “Create Account” link on the login page and redirect the user to the login page if they try to manually visit the registration page. There’s also an optional agreeToText
attribute, which will be a plain text string (not Markdown) with a checkbox which the user needs to agree to before they can register. It also has an optional region
attribute which, if set, will force any user created with this login page to have the given default region instead of presenting them with an option.
homeURL
and supportURL
are optional and are the URLs used for the main community site (destination when clicking on the logo in the upper left) and support pages (destination when a user selects “Get Help” from the Help menu), respectively. description
is shown in the community selector menu.
Note that any logo images defined here must be uploaded with public permissions--logos for the login and registration pages in particular will need to be downloaded by unauthenticated users.
home.json
This file must be at least accessible to community members.
navigation.json
This file must be at least accessible to community members. Applies to the header. _filters is optional and contains information about how to alter the query sent to the server to fetch the main and featured lists of projects. _projects, _tools, and supportURL are all optional and can be:
null
to remove the item from the header
An array of objects with the following format to add items to the end of the corresponding menu:
text
is the text of the menu item
url
is the destination to take the user to
newTab
is optional and indicates that the link should be opened in a new tab
Any other entries in this file will indicate new navigation items to be added. These are defined by a key (in the example below, “A New Menu” and “A New Link”), and can be either an object with url
and optional newTab
values (in which case it will be rendered as a simple link in the navigation header), or as an array of objects with keys text, url,
and optionally newTab
(in which case it will be rendered as a dropdown menu with the listed items).