mirror of
				https://github.com/optim-enterprises-bv/vault.git
				synced 2025-10-31 18:48:08 +00:00 
			
		
		
		
	OpenAPI generic_mount_paths follow-up (#18663)
				
					
				
			* OpenAPI `generic_mount_paths` follow-up An incremental improvement within larger context discussed in #18560. * Following the revert in #18617, re-introduce the change from `{mountPath}` to `{<path-of-mount>_mount_path}`; this is needed, as otherwise paths from multiple plugins would clash - e.g. almost every auth method would provide a conflicting definition for `auth/{mountPath}/login`, and the last one written into the map would win. * Move the half of the functionality that was in `sdk/framework/` to `vault/logical_system.go` with the rest; this is needed, as `sdk/framework/` gets compiled in to externally built plugins, and therefore there may be version skew between it and the Vault main code. Implementing the `generic_mount_paths` feature entirely on one side of this boundary frees us from problems caused by this. * Update the special exception that recognizes `system` and `identity` as singleton mounts to also include the other two singleton mounts, `cubbyhole` and `auth/token`. * Include a comment that documents to restricted circumstances in which the `generic_mount_paths` option makes sense to use: // Note that for this to actually be useful, you have to be using it with // a Vault instance in which you have mounted one of each secrets engine // and auth method of types you are interested in, at paths which identify // their type, and for the KV secrets engine you will probably want to // mount separate kv-v1 and kv-v2 mounts to include the documentation for // each of those APIs. * Fix tests Also remove comment "// TODO update after kv repo update" which was added 4 years ago in #5687 - the implied update has not happened. * Add changelog * Update 18663.txt
This commit is contained in:
		| @@ -539,13 +539,6 @@ func (b *Backend) handleRootHelp(req *logical.Request) (*logical.Response, error | ||||
| 	// names in the OAS document. | ||||
| 	requestResponsePrefix := req.GetString("requestResponsePrefix") | ||||
|  | ||||
| 	// Generic mount paths will primarily be used for code generation purposes. | ||||
| 	// This will result in dynamic mount paths being placed instead of | ||||
| 	// hardcoded default paths. For example /auth/approle/login would be replaced | ||||
| 	// with /auth/{mountPath}/login. This will be replaced for all secrets | ||||
| 	// engines and auth methods that are enabled. | ||||
| 	genericMountPaths, _ := req.Get("genericMountPaths").(bool) | ||||
|  | ||||
| 	// Build OpenAPI response for the entire backend | ||||
| 	vaultVersion := "unknown" | ||||
| 	if b.System() != nil { | ||||
| @@ -557,7 +550,7 @@ func (b *Backend) handleRootHelp(req *logical.Request) (*logical.Response, error | ||||
| 	} | ||||
|  | ||||
| 	doc := NewOASDocument(vaultVersion) | ||||
| 	if err := documentPaths(b, requestResponsePrefix, genericMountPaths, doc); err != nil { | ||||
| 	if err := documentPaths(b, requestResponsePrefix, doc); err != nil { | ||||
| 		b.Logger().Warn("error generating OpenAPI", "error", err) | ||||
| 	} | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Max Bowsher
					Max Bowsher