Liking cljdoc? Tell your friends :D

hydrogen.duct-template

Build Status Clojars Project

An external profile for Duct template that introduces Hydrogen code.

Usage

This template profile needs to be used in conjunction with +site and +cljs hints.

lein new duct <project name> +site +cljs +hydrogen/core

It creates an SPA app that's ready for you to run. Front to back. It comes packed with some of the features we use in most of our projects:

Additional profiles

Authentication and session management

Hydrogen also offers two profiles that provide session management using OpenID Connect ID Tokens. To use them simply add:

  • +hydrogen/session.cognito for AWS Cognito User Pools-based session management or
  • +hydrogen/session.keycloak to add Keycloak-based session management.

Keep in mind that those two profiles are mutually exclusive.

Figwheel main

Warning!

Until further notice, usage of +hydrogen/figwheel-main profile will require two manual fixes in project.clj:

  1. The are two conflicting dependencies: hydrogen/module.cljs and duct/module.cljs. Please remove the latter one.
  2. Because of yet unidentified issue, even though resource-paths include target/resources, the compiler will complain about target/resources/<project name> not found on classpath. Please add add path too.

SQL persistence boundary

Hydrogen also offers a profile that provides a boundary (based on Clojure protocols and records) for data persistence using SQL databases. By default it uses Postgresql (by adding its JDBC driver as a dependency), but can be used with any JDBC compatible database as long as you add its driver as a dependency. To use it simply add:

  • +hydrogen/persistence.sql to the list of required profiles

Job Scheduling

Hydrogen also offers a profile that provides job scheduling using Twarc scheduling library, with persistent JobStore backed by a Postgresql database, through scheduling.twarc Duct library. This profile depends on +hydrogen/persistence.sql profile, so make sure you also specify it when adding the job scheduling profile. To use it simply add:

  • +hydrogen/persistence.sql +hydrogen/scheduling.twarc to the list of required profiles

What else can it do?

In order to be able to finally share our toolset with the community, we had to cut some corners and narrow down the scope of the template's content. However we'll be delighted to highlight some of our libs, gists and blog posts with our know-how:

Running the application

Development Start the REPL.

lein repl

Then load the development environment.

user=> (dev)
:loaded

Run go to prep and initiate the system.

dev=> (go)
:duct.server.http.jetty/starting-server {:port 3000}
:initiated

By default this creates a web server at http://localhost:3000.

When you make changes to your source files, use reset to reload any modified files and reset the server.

dev=> (reset)
:reloading (...)
:resumed

Future work

For the list of our features to come please take a look at this project's issues list.

License

Copyright (c) 2018, 2019, 2020 Magnet S Coop.

The source code for the library is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.

Can you improve this documentation? These fine people already did:
Damian Hryniewicz, Iñaki Arenaza, lucassousaf & Asier Galdos
Edit on GitHub

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close