Update SemaphoreApp to be configurable on a per-project basis