func parse()

in azureappconfiguration/keyvault.go [118:142]


func parse(reference string) (*secretMetadata, error) {
	secretURL, err := url.Parse(reference)
	if err != nil {
		return nil, fmt.Errorf("invalid URL format: %w", err)
	}

	trimmedPath := strings.TrimPrefix(secretURL.Path, "/")
	segments := strings.Split(trimmedPath, "/")

	if len(segments) < 2 || strings.ToLower(segments[0]) != "secrets" || segments[1] == "" {
		return nil, fmt.Errorf("invalid Key Vault URL format: %s", reference)
	}

	secretName := segments[1]
	var secretVersion string
	if len(segments) > 2 {
		secretVersion = segments[2]
	}

	return &secretMetadata{
		host:    strings.ToLower(secretURL.Host),
		name:    secretName,
		version: secretVersion,
	}, nil
}