Rendering: Adds PDF support behind feature toggle (#81811)

* start pdf refactor

* Update AppChrome.tsx

* Update AppChrome.tsx

* add encoding param to rendering grpc service

* fix plugin mode

* clean up

* fix backend tests

* fix lint errors

* Support pdf encoding in render http api

---------

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
This commit is contained in:
Agnès Toulet
2024-02-08 13:09:34 +01:00
committed by GitHub
co-authored by Torkel Ödegaard
parent 90a26e18db
commit 28e66b4ad8
24 changed files with 189 additions and 117 deletions
+12 -2
View File
@@ -6,14 +6,23 @@ import (
"fmt"
"github.com/grafana/grafana/pkg/plugins/backendplugin/pluginextensionv2"
"github.com/grafana/grafana/pkg/services/featuremgmt"
)
func (rs *RenderingService) renderViaPlugin(ctx context.Context, renderKey string, opts Opts) (*RenderResult, error) {
func (rs *RenderingService) renderViaPlugin(ctx context.Context, renderType RenderType, renderKey string, opts Opts) (*RenderResult, error) {
if renderType == RenderPDF {
if !rs.features.IsEnabled(ctx, featuremgmt.FlagNewPDFRendering) {
return nil, fmt.Errorf("feature 'newPDFRendering' disabled")
}
opts.Encoding = "pdf"
}
// gives plugin some additional time to timeout and return possible errors.
ctx, cancel := context.WithTimeout(ctx, getRequestTimeout(opts.TimeoutOpts))
defer cancel()
filePath, err := rs.getNewFilePath(RenderPNG)
filePath, err := rs.getNewFilePath(renderType)
if err != nil {
return nil, err
}
@@ -38,6 +47,7 @@ func (rs *RenderingService) renderViaPlugin(ctx context.Context, renderKey strin
Domain: rs.domain,
Headers: headers,
AuthToken: rs.Cfg.RendererAuthToken,
Encoding: opts.Encoding,
}
rs.log.Debug("Calling renderer plugin", "req", req)