Skip to content

Better documentation for configuration properties #10930

@dsyer

Description

@dsyer

I don't know if this is completely resolvable in Spring Boot but I've noticed that quite a few important features are hard to find documentation or implementation details for. Example endpoints.default.enabled. The docs basically say that it enables endpoints (well duh). What does it actually do? How does it differ from endpoints.web.default.enabled? It's probably guarding a @Conditional somewhere. Maybe it would be useful to see where?

Part of this is features showing up in additional-spring-configuration-metadata.json (e.g. in spring-boot-actuator-autoconfigure), where the IDE (STS anyway) doesn't support linking to relevant source code. The metadata isn't there to create a link - these files are curated by hand, so I guess if there is a way for the IDE to link to something in source code it would be useful to add it.

Another problem is "deprecation" in spring-configuration-metadata.json where we have seen quite a few properties where the alternatives are not really even mentioned, never mind documented. There is a "reason" tag in the deprecation metadata, but it's not really a reason that the user needs, it's an alternative.

Configuration properties metadata is intentionally minimally formatted. This causes problems and confusion for library authors because they want to write normal javadocs. I don't know if there's anything that can be done about that, but maybe we can do something simpler that would help. Perhaps a new feature to link to some more documentation (URLs could be automatically converted to links by IDEs for instance)? That way the javadocs and the JSON could stay terse, but users would be able to find more documentation quickly, as long as it was supported in the IDEs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions