# Configurator **Repository Path**: mirrors/Configurator ## Basic Information - **Project Name**: Configurator - **Description**: Configurator把传统的软件配置文件如Nginx、Haproxy、Apache转变为工具 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: https://www.oschina.net/p/progrium-configurator - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-02-03 - **Last Updated**: 2026-02-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README { "$for": "@service", "in": {"$services": "*"}, "loop": ["upstream", {"@service": null}], "else": ["noupstream"] } { "$if": { "$eq": [ {"$environ": "FOOBAR"}, "foobar" ] }, "then": "Blah", "else": "Other" } {"$environ": "FOOBAR"} {"$service": "myapp", ".": "Port"} {"$ref": "#foo/bar"} {"$set": ["@foo", "value"]} remote: config store change notification (config or reference value) local: http mutation, config store pull any change should be validated before commit (going out) or apply (coming in) incoming(remote mutation): copy, validate(change, render), replace, apply outgoing(local mutation): copy, pull(copy, change, render), validate, commit(write, [pull, validate, write, ...]) any change should go through render before apply keep around last rendered TODO * full macro list * macro http interface * status of last validate for each watched key * use tigertonic? * encryption? * virtual grouping * layers