Research
Security News
Threat Actor Exposes Playbook for Exploiting npm to Build Blockchain-Powered Botnets
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.
@looker/extension-sdk-react
Advanced tools
Add dependency to your project using yarn or npm
yarn add @looker/extension-sdk-react
or
npm install @looker/extension-sdk-react
The Extension SDK for react contains a provider that allows child components to access the Extension SDK.
Add the ExtensionProvider40
near the root of the extension component tree. ExtensionProvider40 exposes the Looker 4.0 sdk.
<ExtensionProvider40
loadingComponent={<div>Loading ...</div>}
requiredLookerVersion=">=22.0.0"
>
<MyComponent />
</ExtensionProvider40>
loadingComponent
can be passed in to display while the provider is establishing a connection with the looker hostrequiredLookerVersion
indicates what version of Looker is required. Check context.initializeError
to see if a version error was detected.import React, { useContext } from "react"
import { ExtensionContext40 } from '@looker/extension-sdk-react'
export const MyComponent: React.FC<{}> = () => {
const { extensionSDK, coreSDK, initializeError } = useContext(ExtensionContext40)
The Extension SDK for React supports React Router. Due to security restrictions
of the sandboxed IFRAME only MemoryRouter is supported. The ExtensionProvider creates
the router so you can add Switch
and Route
components as childrem. The Looker host is notified
of changes to the React routes and the child route is appended to he Looker extension
route. This means that the route can be restored on a page reload or sent as a link.
The ExtensionProvider40
can also notify the extension of changes to the route using the
onPathnameChange
attribute.
export const MyExtension: React.FC<{}> = () => {
const [pathname, setPathname] = useState("")
return (
<ExtensionProvider40 onPathnameChange={setPathname}>
<MyLayout>
<MySidebar pathname={pathname} />
<Switch>
<Route path=>
<MyRoute1 />
</Route>
<Route path='/route2'>
<MyRoute2 />
</Route>
</Switch>
</MyLayout>
</ExtensionProvider40>
)
}
The Looker SDK can be accessed as follows:
The extension context exposes the following properties:
coreSDK
- SDK version 4.0The following global access methods are available:
getCore40SDK()
- SDK version 4.0There is no restriction on which SDK can be used within an extension, none, one or all of the above can be used interchangeably, context or global access. The one caveat is that it is recommended that the Looker version support SDK 4.0 if the 4.0 SDK is used (the results may be unpredictable otherwise).
If you require access to SDK version 3.1, use <ExtensionProvider/>
or <ExtensionProvider2 type={Looker31SDK}/>
. SDK version 3.1 will then globally be available through the following methods:
getCoreSDK()
- SDK version 3.1 (kept for backwards compatibility)getCore31SDK()
- SDK version 3.1The Looker SDK is available outside of the Extension provider using the getCore40SDK
method. This means that redux sagas
or redux thunks
can utilize the SDK from within a saga
or thunk
. Note that the Looker connection MUST be established before getCoreSDK
can be called. An error will be thrown if the method is called too soon. Note that children of the ExtensionProvider40
will not be rendered until after the connection has been established. As such it is safe for children of the ExtensionProvider40
to utilize sagas
or thunks
.
import { getCore40SDK } from '@looker/extension-sdk-react'
import { all, call, put, takeEvery, select } from 'redux-saga/effects'
import {
Actions,
allLooksSuccess,
runLookSuccess,
error,
Action,
State,
} from '.'
function* allLooksSaga() {
const coreSDK = getCore40SDK()
const result = yield call([coreSDK, coreSDK.all_looks])
if (result.ok) {
// Take up to the first 10 looks
const looks = result.value.slice(0, 9)
yield put(allLooksSuccess(looks))
} else {
yield put(error(result.error.message))
}
}
export function* sagaCallbacks() {
yield all([takeEvery(Actions.ALL_LOOKS_REQUEST, allLooksSaga)])
}
FAQs
Looker Extension SDK for React
The npm package @looker/extension-sdk-react receives a total of 357 weekly downloads. As such, @looker/extension-sdk-react popularity was classified as not popular.
We found that @looker/extension-sdk-react demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.
Security News
NVD’s backlog surpasses 20,000 CVEs as analysis slows and NIST announces new system updates to address ongoing delays.
Security News
Research
A malicious npm package disguised as a WhatsApp client is exploiting authentication flows with a remote kill switch to exfiltrate data and destroy files.