Skip to content

Commit

Permalink
fix: disable session check for billboard
Browse files Browse the repository at this point in the history
  • Loading branch information
hai-ko committed Nov 8, 2023
1 parent 3726417 commit 7f68f05
Show file tree
Hide file tree
Showing 8 changed files with 41 additions and 17 deletions.
3 changes: 2 additions & 1 deletion .github/workflows/deploy-billboard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
env:
TARGET_HOST: ${{ secrets.STAGING_HOST_BILLBOARD }}
run: |
echo "REACT_APP_ADDR_ENS_SUBDOMAIN=.beta-addr.dm3.eth" >> ./.env.react
echo "REACT_APP_ADDR_ENS_SUBDOMAIN=.bb-addr.dm3.eth" >> ./.env.react
echo "REACT_APP_BACKEND=http://${{ secrets.STAGING_HOST_BILLBOARD }}/api" >> ./.env.react
echo "REACT_APP_DEFAULT_DELIVERY_SERVICE=beta-ds.dm3.eth" >> ./.env.react
echo "REACT_APP_DEFAULT_SERVICE=http://${{ secrets.STAGING_HOST_BILLBOARD }}/api" >> ./.env.react
Expand All @@ -52,6 +52,7 @@ jobs:
echo "RPC=${{ secrets.STAGING_RPC }}" >> ./.env
echo "BILLBOARD_PRIVATE_KEY=${{ secrets.BILLBOARD_PRIVATE_KEY}}" >> ./.env
echo "interceptor=${{ secrets.INTERCEPTOR}}" >> ./.env
echo "DISABLE_SESSION_CHECK='true'" >> ./.env
envsubst '${SSL_CERTIFICATE_BASE_LOC} ${TLS_CERTIFICATE_LOCATION} ${TARGET_HOST}' < ./docker/nginx.conf > ./nginx.conf
cat ./.env
- name: Build docker image
Expand Down
4 changes: 3 additions & 1 deletion docker/billboard/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ services:
restart: always
depends_on:
- billboard-client
- backend
- ccip-resolver
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
Expand All @@ -25,6 +26,7 @@ services:
SIGNING_PRIVATE_KEY: ${SIGNING_PRIVATE_KEY}
ENCRYPTION_PUBLIC_KEY: ${ENCRYPTION_PUBLIC_KEY}
ENCRYPTION_PRIVATE_KEY: ${ENCRYPTION_PRIVATE_KEY}
DISABLE_SESSION_CHECK: ${DISABLE_SESSION_CHECK}
RPC: ${RPC}
PORT: 8081
LOG_LEVEL: 'debug'
Expand All @@ -43,7 +45,7 @@ services:
PORT: 8083
time: 0
privateKey: ${BILLBOARD_PRIVATE_KEY}
ensNames: '["billboard1.bb-user.dm3.eth"]'
ensNames: '["billboard1.bb.dm3.eth"]'
mediators: '[]'
REDIS_URL: redis://db:6379
RPC: ${RPC}
Expand Down
1 change: 1 addition & 0 deletions packages/backend/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import Profile from './profile';
import RpcProxy from './rpc/rpc-proxy';
import Storage from './storage';
import { logInfo } from 'dm3-lib-shared';
import 'dotenv/config';

import {
errorHandler,
Expand Down
6 changes: 6 additions & 0 deletions packages/backend/src/profile.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ export default () => {
method: 'POST',
url: req.url,
ensName,
disableSessionCheck:
process.env.DISABLE_SESSION_CHECK === 'true',
});

const data = await submitUserProfile(
Expand All @@ -69,6 +71,10 @@ export default () => {

res.json(data);
} catch (e) {
global.logger.warn({
message: 'POST profile',
error: JSON.stringify(e),
});
res.status(400).send({
message: `Couldn't store profile`,
error: JSON.stringify(e),
Expand Down
10 changes: 7 additions & 3 deletions packages/lib/delivery/src/UserProfile.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,35 +38,39 @@ export async function submitUserProfile(
send: (socketId: string) => void,
): Promise<string> {
const account = normalizeEnsName(ensName);
console.log('1', account, signedUserProfile);

Check failure on line 41 in packages/lib/delivery/src/UserProfile.ts

View workflow job for this annotation

GitHub Actions / code-quality

Unexpected console statement

if (!(await checkUserProfile(provider, signedUserProfile, account))) {
throw Error('Signature invalid.');
}
//TODO: remvoe DISABLE_SESSION_CHECK
console.log('2', process.env.DISABLE_SESSION_CHECK);

Check failure on line 46 in packages/lib/delivery/src/UserProfile.ts

View workflow job for this annotation

GitHub Actions / code-quality

Unexpected console statement
//TODO: remvoe DISABLE_SESSION_CHECK
// DISABLE_SESSION_CHECK is a special solution for ETH Prague
if (
process.env.DISABLE_SESSION_CHECK !== 'true' &&
(await getSession(account))
) {
throw Error('Profile exists already');
}
console.log('3');

Check failure on line 55 in packages/lib/delivery/src/UserProfile.ts

View workflow job for this annotation

GitHub Actions / code-quality

Unexpected console statement
const session: Session = {
account,
signedUserProfile,
token: uuidv4(),
createdAt: new Date().getTime(),
profileExtension: getDefaultProfileExtension(),
};
console.log('4', session);

Check failure on line 63 in packages/lib/delivery/src/UserProfile.ts

View workflow job for this annotation

GitHub Actions / code-quality

Unexpected console statement

await setSession(account.toLocaleLowerCase(), session);

console.log('5');

Check failure on line 66 in packages/lib/delivery/src/UserProfile.ts

View workflow job for this annotation

GitHub Actions / code-quality

Unexpected console statement
await handlePendingConversations(
account,
getSession,
getPendingConversations,
send,
);

console.log('6');

Check failure on line 73 in packages/lib/delivery/src/UserProfile.ts

View workflow job for this annotation

GitHub Actions / code-quality

Unexpected console statement
return session.token;
}

Expand Down
2 changes: 1 addition & 1 deletion packages/offchain-resolver/src/http/profile.ts
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ export function profile(web3Provider: ethers.providers.BaseProvider) {
}

await req.app.locals.db.setUserProfile(
`${address}.user.ethprague.dm3.eth`,
`${address}.bb-user.dm3.eth`,
signedUserProfile,
hotAddr,
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@ export type ProfileContainer = {

export function getProfileContainer(db: PrismaClient) {
return async (name: string) => {
global.logger.debug({
message: 'getProfileContainer call',
nameHash: ethers.utils.namehash(name),
name,
});
const profileContainer = await db.profileContainer.findUnique({
where: {
nameHash: ethers.utils.namehash(name),
Expand All @@ -31,15 +36,15 @@ export function getProfileContainer(db: PrismaClient) {
}
: null;
global.logger.debug({
message: 'getProfileContainer',
message: 'getProfileContainer found',
nameHash: ethers.utils.namehash(name),
profileContainerResult,
});

return profileContainerResult;
} else {
global.logger.debug({
message: 'getProfileContainer',
message: 'getProfileContainer not found',
nameHash: ethers.utils.namehash(name),
});
// try to find an alias which equlas name
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,26 +35,31 @@ export function setUserProfile(db: PrismaClient) {
const nameHash = ethers.utils.namehash(name);

try {
const id = uuidv4();
global.logger.debug({
message: 'pre setUserProfile',
id,
nameHash,
profile: JSON.stringify(profile),
address: formatAddress(address),
ensName: normalizeEnsName(name),
});
await db.profileContainer.create({
data: {
id: uuidv4(),
id,
nameHash,
profile: JSON.stringify(profile),
address: formatAddress(address),
ensName: normalizeEnsName(name),
},
});
global.logger.debug({
message: 'setUserProfile',
id: uuidv4(),
nameHash,
profile: JSON.stringify(profile),
address: formatAddress(address),
ensName: normalizeEnsName(name),
});

return true;
} catch (e) {
global.logger.warn({
message: `setUserProfile error`,
error: JSON.stringify(e),
});
return false;
}
};
Expand Down

0 comments on commit 7f68f05

Please sign in to comment.